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