自動化在開發(fā)物聯(lián)網(wǎng)產(chǎn)品時起到什么作用
眾所周知,物聯(lián)網(wǎng)漏洞經(jīng)常暴露在連接的產(chǎn)品中,開發(fā)團(tuán)隊為了確保物聯(lián)網(wǎng)產(chǎn)品的機(jī)密性、完整性和可用性,在開發(fā)過程中不斷的接受到挑戰(zhàn)。開發(fā)人員通常缺乏識別和關(guān)閉新漏洞所需的專業(yè)知識和時間。這就需要幫助開發(fā)人員和安全工程師實(shí)現(xiàn)其安全物聯(lián)網(wǎng)產(chǎn)品目標(biāo)的工具。
在軟件開發(fā)的早期,需要對代碼進(jìn)行質(zhì)量缺陷和漏洞的手動分析。這種類型的代碼檢查在同行的評審過程中依然可以使用,并且可能用于應(yīng)用程序中的高價值代碼,但不能擴(kuò)展到滿足現(xiàn)代技術(shù)的需求。麥肯錫公司的一份報告指出,例如,現(xiàn)代汽車中有超過1.5億條軟件代碼行(SLOC)。如果手動檢查此代碼,產(chǎn)品是不可能按時上市的。
確定安全要求
為了定義自動化安全測試,團(tuán)隊必須首先了解產(chǎn)品的威脅因素。威脅模型應(yīng)該是任何開發(fā)團(tuán)隊進(jìn)行的第一個活動。威脅模型通常是很少被讀取的靜態(tài)文檔,但是,現(xiàn)在有一些工具將威脅模型數(shù)據(jù)與用戶故事鏈接起來,并支持創(chuàng)建可以在整個開發(fā)過程中運(yùn)行的自動測試。
一個案例是來自WE45的機(jī)器人腳本庫。團(tuán)隊想要使質(zhì)量得到保證,通過使用機(jī)器人框架來創(chuàng)建行為驅(qū)動開發(fā)(BDD)測試。WE45開發(fā)了腳本,允許工程師定義附加到威脅模型中的用戶故事的誤用案例,然后將這些誤用案例直接鏈接到自動化測試。這個方法就是是基于其他工具的使用,如yaml腳本、owasp-zap和其他sast/dast工具。
無論是使用這樣的框架還是從頭開始,團(tuán)隊都必須能夠構(gòu)建一個安全需求用于積壓工作。安全性需求可以從許多來源得到。產(chǎn)品團(tuán)隊根據(jù)法規(guī)要求、最佳實(shí)踐指南、安全技術(shù)實(shí)施指南(Stigs)以及當(dāng)然的威脅模型來定制需求。這些需求被捕獲為功能用戶案例或產(chǎn)品積壓工作中的驗(yàn)收測試。
這有效地創(chuàng)建了一個安全需求跟蹤矩陣(SRTM),可用于支持自動安全測試的創(chuàng)建和執(zhí)行。安全用戶案例可以標(biāo)記為積壓工作中的安全案例。此外,這些故事應(yīng)包括元數(shù)據(jù),該元數(shù)據(jù)允許鏈接回安全需求的源(例如IA控制編號或sTIg標(biāo)識符),還應(yīng)包括與從需求派生的自動化測試相關(guān)的元數(shù)據(jù)(例如,自動化測試ID)。這使得自動化框架或其他工具能夠完全追溯到最初的需求。
當(dāng)需要測試物聯(lián)網(wǎng)啟用的新功能類型時,基礎(chǔ)設(shè)施或?qū)Φ葢?yīng)用模擬器也可以證明是有用的。一個例子,之前開發(fā)的一個模擬器,用于測試支持車對車(V2V)通信的復(fù)雜的汽車密碼證書管理系統(tǒng)。測試團(tuán)隊在項(xiàng)目開始時定義了MIS用例,并設(shè)計了一個模擬器來自動運(yùn)行這些MIS用例。這是通過在應(yīng)用程序?qū)幼R別系統(tǒng)的功能安全性需求,然后在測試整個功能線程的模擬器中構(gòu)建負(fù)面測試用例來實(shí)現(xiàn)的。例如,該工具可以自動并連續(xù)地嘗試啟動證書管理事務(wù),然后分析是否存在適當(dāng)?shù)脑L問限制,以及是否將事件寫入日志文件。
將安全性集成到產(chǎn)品設(shè)計中
一旦記錄了安全需求,產(chǎn)品設(shè)計階段就可以從基于模型的安全測試(MBST)等方法中獲益。MBST可用于驗(yàn)證產(chǎn)品設(shè)計是否滿足安全要求。MBST基于需求的正式建模。今天的產(chǎn)品團(tuán)隊采用敏捷開發(fā)方法,這意味著設(shè)計過程在一系列的開發(fā)沖刺中是迭代的。這使得設(shè)計人員能夠根據(jù)在Sprint期間開發(fā)的代碼上執(zhí)行的安全工具的反饋,不斷地重新評估其設(shè)計的網(wǎng)絡(luò)安全態(tài)勢。
例如,對物聯(lián)網(wǎng)產(chǎn)品的掃描可能會發(fā)現(xiàn)對敏感配置文件的讀取訪問沒有在設(shè)備中受到適當(dāng)限制。結(jié)果告訴開發(fā)人員需要在文件系統(tǒng)中實(shí)現(xiàn)更多的限制權(quán)限。還可以設(shè)置工具,根據(jù)適用的行業(yè)最佳實(shí)踐建議,自動打開JIRA中的問題,重新設(shè)計產(chǎn)品的訪問控制模型,例如“實(shí)施基于角色的訪問控制”和“需要提升訪問SE的權(quán)限”。敏感數(shù)據(jù)”,允許設(shè)計團(tuán)隊更新安全架構(gòu)。
在每個sprint期間執(zhí)行這些掃描的安全工具可以配置為自動運(yùn)行。開源自動化框架(如guantlt)直接向Git提供插件,以支持預(yù)提交檢查,該檢查會自動提醒桌面上的開發(fā)人員已引入基本錯誤。這允許開發(fā)人員在提交之前更正錯誤。
可以設(shè)置Jenkins、Bamboo、Travis、BuildBot、ThoughtWorks等持續(xù)集成工具,以集成自動在每個構(gòu)建上運(yùn)行的安全測試工具。例如,Jenkins集成了警告下一代插件,該插件收集并可視化各種安全分析工具收集的問題。這包括代碼分析和運(yùn)行時應(yīng)用程序安全工具。還提供了有效管理多個靜態(tài)分析測試工具的執(zhí)行和報告的工具(例如,CodeBurner)。
不同的安全工具可以自動識別已知的漏洞。例如,靜態(tài)代碼分析可以識別和報告代碼中已知的簽名。這些對于識別配置問題、硬編碼憑證、漏洞等問題很有用。
來源:朗銳智科





