物聯網 (IoT) 支持基于互操作通信技術的物理和虛擬設備的互連。最終,這將導致大部分電子設備具有網絡連接性——這些設備的每個制造商都必然會進入軟件業務。這將嵌入式軟件置于物聯網技術發展的中心,因為它現在是其關鍵技術基礎。
由于物聯網的發展,由于責任范圍擴大到全新的平臺和服務類別,對安全性的需求重新定義。Gartner 預測,超過 50% 的物聯網 (IoT) 設備制造商將仍然無法解決安全實踐薄弱所帶來的威脅。雖然安全漏洞在任何情況下都是有問題的,但對于物聯網應用程序,當安全性受到威脅時,安全性可能會成為一個問題,因為其中一些為醫療設備、汽車、制造設備等安全關鍵產品提供動力。
一旦開發人員開始編寫代碼,安全漏洞就會進入產品,不幸的是,許多漏洞直到很久以后才被發現。物聯網設備通常不使用通常關注安全緩解措施的傳統互聯網協議。相反,許多人使用傳統互聯網協議和行業特定/專有協議的組合,這使得現有的滲透工具(例如針對 HTTP 接口或 SQL 注入攻擊的工具)更難應用于物聯網嵌入式設備。嵌入式協議幾乎不受現有滲透工具的影響,僅僅是因為它們不了解所使用的協議。
因此,未診斷的網絡安全漏洞可能仍然潛伏著。為了應對這種威脅,需要在開發過程中解決安全問題,因為在這些先進系統已經發貨后重新設計它們的成本太高。開發安全的應用程序需要在開發的所有階段始終保持警惕。這意味著在目標硬件上編寫代碼、集成模塊和測試編譯的二進制文件時,使用能夠檢測可能漏洞的工具。
一種識別和測試安全漏洞的新方法
當今安全測試人員最常用的工具之一是靜態應用程序安全測試 (SAST)。SAST 旨在分析應用程序源代碼、字節代碼和二進制文件中的常見漏洞,包括可能導致潛在安全漏洞的編碼和設計條件。從理論上講,采用 SAST 是一種很好的開發實踐,因為它使開發人員能夠了解軟件是否存在任何問題、有多少問題以及它們在哪里以及在哪里。
但是,此方法不是一個包羅萬象的解決方案,因為 SAST 工具實際上并不執行代碼。相反,他們試圖通過分析語法、語義和變量估計等元素以及控制和數據流來識別代碼中的問題,從而了解代碼在“幕后”所做的事情,以識別錯誤所在。
SAST 工具通常也是基于規則的,并且在開發周期的后期運行,單獨使用的結果可能會產生潛在的誤報(當工具報告可能的漏洞而不是實際漏洞時)。這通常會讓安全工程師在識別真正的漏洞時尋找“大海撈針”。此外,許多 SAST 工具僅有助于零風險部分的代碼,以幫助開發人員更有效地發現缺陷,而不是自動發現實際的安全問題。這可能導致耗時的過程和不完整的分析,這可能對軟件開發過程有害。
為了解決這些問題,有一些新的動態單元測試方法通過生成測試用例和確認可利用性來實際暴露軟件缺陷。利用 MITRE 的常見弱點枚舉 (CWE) 分類,該方法使用自動化軟件測試方法來詢問應用程序的軟件代碼并識別可能的弱點。
社區開發的 CWE 列表用作描述架構和代碼中軟件安全漏洞的通用語言,并且是用于檢測此類潛在漏洞的工具的標準通用詞典。在 CWE 分類中,使用動態測試可以突出漏洞的許多弱點 - 特別是任何具有硬錯誤的東西,例如使用空指針或除以零。
使用動態測試,一旦發現潛在的 CWE,就會生成并執行利用已識別問題的測試。執行后,測試工具可以分析執行跟蹤并確定潛在的 CWE 是否是真正的威脅。然后可以將該問題歸類為常見漏洞和暴露 (CVE)。
【圖1 | 動態單元測試方法可以通過生成測試用例并確認可利用性來暴露軟件缺陷。一旦發現潛在的 CWE,就會生成并執行利用已識別問題的測試。執行后,測試工具會分析執行軌跡并判斷潛在的 CWE 是否是真正的威脅,然后將其歸類為 CVE。]
該方法基于導致特定軟件問題的執行的“綜合”(例如,自動構建利用給定漏洞的動態測試),允許識別和自動測試未診斷的網絡安全漏洞。然后將此漏洞利用的構建與其動態執行配對,以確定漏洞是否可利用。這種類型的動態測試對代碼進行前期分析,以檢測可能包含誤報的潛在問題(類似于靜態分析器)。但是,一旦確定了潛在問題,它還會嘗試執行“自動漏洞利用構建”。
與基于靜態分析的方法不同,這種類型的軟件安全測試只會在真正可利用的情況下標記問題,從而減少誤報問題。測試工件的生成允許它們將來重新執行,以證明軟件重新設計后潛在問題的緩解。
這變得至關重要,因為隨著新技術不斷發展改變威脅格局,安全性比以往任何時候都更加重要。每個開發團隊都需要一個全面的流程來實現其應用程序安全目標。動態測試可以通過生成測試用例并確認可利用性來更明確地發現漏洞,從而進一步暴露軟件中的缺陷,最終創建更安全的產品。
審核編輯:郭婷
-
物聯網
+關注
關注
2931文章
46315瀏覽量
393704 -
IOT
+關注
關注
188文章
4309瀏覽量
202286
發布評論請先 登錄
評論