自動化在開發安全物聯網產品中的關鍵作用

衆所周知,物聯網漏洞經常暴露在連接的產品中,開發團隊爲了確保物聯網產品的機密性、完整性和可用性,在開發過程中不斷的接受到挑戰。開發人員通常缺乏識別和關閉新漏洞所需的專業知識和時間。這就需要幫助開發人員和安全工程師實現其安全物聯網產品目標的工具。
在軟件開發的早期,需要對代碼進行質量缺陷和漏洞的手動分析。這種類型的代碼檢查在同行的評審過程中依然可以使用,並且可能用於應用程序中的高價值代碼,但不能擴展到滿足現代技術的需求。麥肯錫公司的一份報告指出,例如,現代汽車中有超過1.5億條軟件代碼行(SLOC)。如果手動檢查此代碼,產品是不可能按時上市的。
確定安全要求
爲了定義自動化安全測試,團隊必須首先了解產品的威脅因素。威脅模型應該是任何開發團隊進行的第一個活動。威脅模型通常是很少被讀取的靜態文檔,但是,現在有一些工具將威脅模型數據與用戶故事鏈接起來,並支持創建可以在整個開發過程中運行的自動測試。
一個案例是來自WE45的機器人腳本庫。團隊想要使質量得到保證,通過使用機器人框架來創建行爲驅動開發(BDD)測試。WE45開發了腳本,允許工程師定義附加到威脅模型中的用戶故事的誤用案例,然後將這些誤用案例直接鏈接到自動化測試。這個方法就是是基於其他工具的使用,如yaml腳本、owasp-zap和其他sast/dast工具。
無論是使用這樣的框架還是從頭開始,團隊都必須能夠構建一個安全需求用於積壓工作。安全性需求可以從許多來源得到。產品團隊根據法規要求、最佳實踐指南、安全技術實施指南(Stigs)以及當然的威脅模型來定製需求。這些需求被捕獲爲功能用戶案例或產品積壓工作中的驗收測試。
這有效地創建了一個安全需求跟蹤矩陣(SRTM),可用於支持自動安全測試的創建和執行。安全用戶案例可以標記爲積壓工作中的安全案例。此外,這些故事應包括元數據,該元數據允許鏈接回安全需求的源(例如IA控制編號或stig標識符),還應包括與從需求派生的自動化測試相關的元數據(例如,自動化測試ID)。這使得自動化框架或其他工具能夠完全追溯到最初的需求。
當需要測試物聯網啓用的新功能類型時,基礎設施或對等應用模擬器也可以證明是有用的。一個例子,之前開發的一個模擬器,用於測試支持車對車(V2V)通信的複雜的汽車密碼證書管理系統。測試團隊在項目開始時定義了MIS用例,並設計了一個模擬器來自動運行這些MIS用例。這是通過在應用程序層識別系統的功能安全性需求,然後在測試整個功能線程的模擬器中構建負面測試用例來實現的。例如,該工具可以自動並連續地嘗試啓動證書管理事務,然後分析是否存在適當的訪問限制,以及是否將事件寫入日誌文件。

自動化在開發安全物聯網產品中的關鍵作用

將安全性集成到產品設計中
一旦記錄了安全需求,產品設計階段就可以從基於模型的安全測試(MBST)等方法中獲益。MBST可用於驗證產品設計是否滿足安全要求。MBST基於需求的正式建模。今天的產品團隊採用敏捷開發方法,這意味着設計過程在一系列的開發衝刺中是迭代的。這使得設計人員能夠根據在Sprint期間開發的代碼上執行的安全工具的反饋,不斷地重新評估其設計的網絡安全態勢。
例如,對物聯網產品的掃描可能會發現對敏感配置文件的讀取訪問沒有在設備中受到適當限制。結果告訴開發人員需要在文件系統中實現更多的限制權限。還可以設置工具,根據適用的行業最佳實踐建議,自動打開JIRA中的問題,重新設計產品的訪問控制模型,例如“實施基於角色的訪問控制”和“需要提升訪問SE的權限”。敏感數據”,允許設計團隊更新安全架構。
在每個sprint期間執行這些掃描的安全工具可以配置爲自動運行。開源自動化框架(如guantlt)直接向Git提供插件,以支持預提交檢查,該檢查會自動提醒桌面上的開發人員已引入基本錯誤。這允許開發人員在提交之前更正錯誤。
可以設置Jenkins、Bamboo、Travis、BuildBot、ThoughtWorks等持續集成工具,以集成自動在每個構建上運行的安全測試工具。例如,Jenkins集成了警告下一代插件,該插件收集並可視化各種安全分析工具收集的問題。這包括代碼分析和運行時應用程序安全工具。還提供了有效管理多個靜態分析測試工具的執行和報告的工具(例如,CodeBurner)。
不同的安全工具可以自動識別已知的漏洞。例如,靜態代碼分析可以識別和報告代碼中已知的簽名。這些對於識別配置問題、硬編碼憑證、漏洞等問題很有用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章