來(lái)源:貿(mào)澤電子 物聯(lián)網(wǎng)(IoT)應(yīng)用在將外圍傳感器、網(wǎng)關(guān)和云資源結(jié)合起來(lái)的同時(shí),也將遭到前所未有的攻擊,因?yàn)檫@會(huì)引入大量潛在的攻擊面和安全漏洞。隨著IoT應(yīng)用與企業(yè)基礎(chǔ)設(shè)施的關(guān)聯(lián)愈發(fā)緊密,這就需要對(duì)這些威脅、所引發(fā)的可能性及影響有一個(gè)清楚的了解。通過(guò)有條不紊的對(duì)威脅和風(fēng)險(xiǎn)進(jìn)行評(píng)估,開(kāi)發(fā)團(tuán)隊(duì)可以在必要時(shí)加強(qiáng)安全性,或者對(duì)可接受的風(fēng)險(xiǎn)做出明智的決策。 連接系統(tǒng)中廣泛存在的安全漏洞已被頻頻報(bào)道。即使是快速瀏覽新聞?lì)^條,也可以看出攻擊范圍之大,從公開(kāi)的大規(guī)模分布式拒絕服務(wù)(DDoS)攻擊到極為隱蔽的高級(jí)持久性威脅(APT),這些威脅會(huì)駐留并悄悄地提取有價(jià)值的數(shù)據(jù),或?yàn)楦鼧O端的攻擊做準(zhǔn)備。 這些聳人聽(tīng)聞的攻擊讓我們意識(shí)到,使用安全機(jī)制和創(chuàng)建安全系統(tǒng)不是一回事。黑客能成功侵入各種安全機(jī)制構(gòu)建的系統(tǒng),即使是最注重安全性的開(kāi)發(fā)團(tuán)隊(duì)也可能會(huì)在設(shè)計(jì)中不知不覺(jué)地留下開(kāi)放式攻擊面。 事實(shí)上,當(dāng)今設(shè)計(jì)的復(fù)雜性導(dǎo)致可利用的開(kāi)放式攻擊面增加,特別是諸如IoT應(yīng)用的多層連接系統(tǒng)。當(dāng)大量不同類型的可編程設(shè)備連接到云時(shí),端到端的安全性就更像是一種統(tǒng)計(jì)概率問(wèn)題,而不是絕對(duì)的確定性。在這樣一個(gè)相互關(guān)聯(lián)的系統(tǒng)體系中,每個(gè)元件不僅可提供特定功能,還會(huì)引入一組安全漏洞。 通過(guò)充分了解每個(gè)漏洞如何對(duì)整個(gè)應(yīng)用造成威脅,企業(yè)可以判斷出該漏洞所來(lái)的風(fēng)險(xiǎn)是否超出了可承受范圍,以及是否需要進(jìn)行后續(xù)緩解。 這種預(yù)測(cè)風(fēng)險(xiǎn)的能力所具有的戰(zhàn)略價(jià)值是難以盡述的。同時(shí),通過(guò)將安全漏洞與風(fēng)險(xiǎn)評(píng)估相結(jié)合,開(kāi)發(fā)團(tuán)隊(duì)可以設(shè)計(jì)出一個(gè)戰(zhàn)略路線圖,開(kāi)發(fā)一種實(shí)用的方法來(lái)幫助連接系統(tǒng)應(yīng)對(duì)幾乎源源不斷的威脅。事實(shí)上,如果沒(méi)有通過(guò)威脅和風(fēng)險(xiǎn)評(píng)估獲得較高的認(rèn)知,即使是最有經(jīng)驗(yàn)的開(kāi)發(fā)團(tuán)隊(duì)也不敢完全保證系統(tǒng)和應(yīng)用的安全。然而,要獲得這些知識(shí),首先要構(gòu)建一個(gè)有據(jù)可查的威脅模型,以便清楚地了解系統(tǒng)所面臨的潛在威脅。 威脅模型可以捕獲與系統(tǒng)設(shè)計(jì)相關(guān)的特定安全漏洞。從理論上看,創(chuàng)建威脅模型可以說(shuō)是很簡(jiǎn)單,比如,開(kāi)發(fā)人員通過(guò)分析設(shè)計(jì),就能識(shí)別與每個(gè)底層組件相關(guān)的安全漏洞。然而,我們會(huì)發(fā)現(xiàn)在實(shí)踐中,威脅建模所涉及的工作、研究和策略遠(yuǎn)遠(yuǎn)超出了最初的想法,而且還會(huì)帶來(lái)一系列技術(shù)安全問(wèn)題。在廣泛應(yīng)用后,威脅建模還可以識(shí)別與物聯(lián)網(wǎng)應(yīng)用相關(guān)的生命周期和總體安全策略中的漏洞。最后,可接受威脅模型的內(nèi)容可能會(huì)隨著它們所服務(wù)的物聯(lián)網(wǎng)應(yīng)用和組織的不同而變化。即便如此,不同的威脅模型也有某些共同的特點(diǎn),任何威脅建模方法都會(huì)遵循一些共同的步驟。 威脅建模 威脅建模首先是對(duì)系統(tǒng)的準(zhǔn)確描述,即所謂的評(píng)估目標(biāo)(TOE),與特定的用例相關(guān),例如公用水表的操作。如果說(shuō)威脅模型描繪出了系統(tǒng)漏洞的畫面,那么TOE描述就是畫布。通過(guò)擴(kuò)大或縮小TOE范圍,威脅建模團(tuán)隊(duì)可以在威脅識(shí)別過(guò)程中擴(kuò)大或縮小關(guān)注點(diǎn)。例如,Arm最近發(fā)布的智能水表威脅模型嚴(yán)格地限制了它的TOE,只關(guān)注系統(tǒng)核心(圖1)。 圖1:Arm的水表威脅模型(來(lái)源:Arm) 當(dāng)然,將TOE限制在更大、更復(fù)雜的系統(tǒng)或應(yīng)用的一個(gè)子系統(tǒng)中,意味著識(shí)別威脅、評(píng)估風(fēng)險(xiǎn)和構(gòu)建有效緩解計(jì)劃的能力就會(huì)受到限制。對(duì)于物聯(lián)網(wǎng)應(yīng)用等復(fù)雜系統(tǒng),經(jīng)驗(yàn)豐富的威脅建模師可能會(huì)創(chuàng)建一系列威脅模型,從對(duì)整個(gè)系統(tǒng)非常的抽象描述到對(duì)組織具有特殊意義或需要關(guān)注的子系統(tǒng)日益詳細(xì)的描述。 無(wú)論采用何種方法,都不會(huì)對(duì)TOE描述的詳細(xì)程度提出絕對(duì)要求。旨在提供每個(gè)組件詳盡細(xì)節(jié)的建模方法可能會(huì)耗盡流程參與者的所有精力。另一方面,過(guò)于抽象的模型可能會(huì)隱藏微妙的漏洞,或阻止識(shí)別深深隱藏在依賴關(guān)系鏈或第三方軟件庫(kù)中的漏洞。 一種有效的折中方法就是只收集所需的詳細(xì)信息,以捕獲在系統(tǒng)的特定獨(dú)立區(qū)域之間跨“信任邊界”的所有交互(圖2)。 圖2:不同區(qū)域之間可能跨信任邊界示例(來(lái)源:Microsoft) 例如,物聯(lián)網(wǎng)應(yīng)用可以包含多個(gè)與云資源、網(wǎng)關(guān)、物聯(lián)網(wǎng)終端設(shè)備和用戶鏈接的區(qū)域?缧湃芜吔绮僮鞯氖聞(wù)特別容易受到一系列針對(duì)傳輸數(shù)據(jù)、安全憑證或協(xié)議的異常攻擊。即使是看似無(wú)安全問(wèn)題的跨信任邊界的通信嘗試,也會(huì)為“指紋”攻擊創(chuàng)造一條路徑,黑客會(huì)利用系統(tǒng)響應(yīng)中包含的已知指示器來(lái)確定系統(tǒng)的底層組件,為更直接的攻擊做好準(zhǔn)備。 當(dāng)然,如果其中一些組件來(lái)自第三方,那么理解每個(gè)區(qū)域底層組件之間的交互就變得尤為重要。例如,使用第三方傳感器驅(qū)動(dòng)程序的物聯(lián)網(wǎng)設(shè)備,會(huì)受到驅(qū)動(dòng)程序邊界的威脅(圖3)。 圖3:數(shù)據(jù)流程圖(來(lái)源:Microsoft) 雖然適當(dāng)?shù)脑敿?xì)描述對(duì)于威脅建模是必不可少的,但卻無(wú)法識(shí)別與這些詳細(xì)信息相關(guān)的特定威脅。在Arm的水表威脅模型中,建模者提供了與每個(gè)資產(chǎn)相關(guān)的威脅簡(jiǎn)表,如固件、測(cè)量數(shù)據(jù)以及與可能觸及TOE的外部實(shí)體(如用戶、管理員和攻擊者)的交互信息。 對(duì)于固件來(lái)說(shuō),該模型可以描述特定威脅,包括安裝受損固件、修改用于驗(yàn)證固件更新、克隆等的相關(guān)安全證書所帶來(lái)的威脅。開(kāi)發(fā)團(tuán)隊(duì)可以根據(jù)資產(chǎn)和已識(shí)別漏洞列表,列出一組相應(yīng)的安全目標(biāo)和緩解方法。例如,Arm的水表模型最后列出了一系列包括針對(duì)固件的安全需求,例如需要安全引導(dǎo)、固件驗(yàn)證、對(duì)驗(yàn)證失敗的響應(yīng)等。 可用資源 在識(shí)別潛在威脅時(shí),很少有開(kāi)發(fā)組織能夠?qū)崟r(shí)識(shí)別其TOE描述中的詳細(xì)資產(chǎn)和流程可能會(huì)面臨的每一個(gè)潛在威脅。然而工程師可以利用一些公開(kāi)的資源來(lái)完成這部分操作。開(kāi)發(fā)人員可以利用公共資源,如通用攻擊模式枚舉和分類(CAPEC)列表,自上而下地審查最可能的攻擊類型。然后,自下而上地識(shí)別公共弱點(diǎn)枚舉(CWE)列表中列出的可能攻擊目標(biāo),該列表描述了系統(tǒng)設(shè)計(jì)方法中固有的缺陷,例如使用硬編碼憑據(jù)時(shí)。設(shè)計(jì)人員在確定其設(shè)計(jì)中使用的特定硬件或軟件組件時(shí),可以求助于通用漏洞披露(CVE)列表,該列表列出了可用硬件或軟件組件中的特定軟件缺陷或潛在漏洞。 對(duì)于風(fēng)險(xiǎn)評(píng)估,通用脆弱性評(píng)分系統(tǒng)(CVSS)等資源為評(píng)估與特定脆弱性相關(guān)的風(fēng)險(xiǎn)提供了一致的方法。雖然風(fēng)險(xiǎn)與特定漏洞的性質(zhì)有關(guān),但它也包括其他因素,例如用于執(zhí)行攻擊的途徑(向量)、利用漏洞所需的攻擊復(fù)雜性等。例如,通過(guò)網(wǎng)絡(luò)執(zhí)行的攻擊比物理訪問(wèn)攻擊帶來(lái)的風(fēng)險(xiǎn)要大得多。同樣,簡(jiǎn)單的攻擊比高度復(fù)雜的攻擊具有更大的風(fēng)險(xiǎn)。使用CVSS計(jì)算器,工程師可以快速計(jì)算出這些不同的影響因素,得出與特定威脅或威脅類別相關(guān)的風(fēng)險(xiǎn)等級(jí)的分?jǐn)?shù)值。對(duì)于Arm水表,CVSS計(jì)算器計(jì)算出固件攻擊所涉及的因素具有9.0的臨界風(fēng)險(xiǎn)值(圖4)。 圖4:CVSS計(jì)算器(來(lái)源:FIRST.org) 由于廣泛的需求和技術(shù)問(wèn)題,帶動(dòng)了各種自動(dòng)化工具的出現(xiàn),如開(kāi)源Web應(yīng)用程序安全項(xiàng)目(OWASP)Threat Dragon項(xiàng)目、Mozilla的SeaSponge和Microsoft的威脅建模工具,以幫助開(kāi)發(fā)人員借助于建模工作。每種工具都采用不同的威脅建模方法,從Threat Dragon項(xiàng)目和SeaSponge中的系統(tǒng)圖到Microsoft的詳細(xì)STRIDE(即“欺騙”、“篡改”、“拒絕”、“信息披露”、“拒絕服務(wù)”和“特權(quán)提升”)。盡管這些工具已經(jīng)有好幾年的歷史,而且通常是為企業(yè)軟件系統(tǒng)構(gòu)建,但是威脅建模是一個(gè)廣泛適用的持久過(guò)程,更多地依賴于當(dāng)前的攻擊向量、弱點(diǎn)和漏洞列表,而不是特定的方法論。盡管如此,還是一直有新的工具不斷涌現(xiàn),有望在系統(tǒng)描述和威脅識(shí)別之間建立更緊密的聯(lián)系。然而,盡管深度學(xué)習(xí)技術(shù)在快速占領(lǐng)其他領(lǐng)域,但在將這些技術(shù)應(yīng)用于自動(dòng)威脅和風(fēng)險(xiǎn)評(píng)估方面仍然存在重大挑戰(zhàn)。即便如此,智能建模和評(píng)估工具仍將很快被廣泛應(yīng)用。 同時(shí),開(kāi)發(fā)人員還可以找到包含安全弱點(diǎn)、漏洞和攻擊模式的各種列表,以至于信息量過(guò)于龐大,特別是對(duì)于那些剛剛開(kāi)始進(jìn)行威脅建模的人來(lái)說(shuō)。事實(shí)上,過(guò)于復(fù)雜也是不進(jìn)行威脅建模的常用借口之一。工程師們可以利用較為溫和的方法,專注于最常見(jiàn)的威脅,而不是深入到細(xì)節(jié)。截至本文撰寫之時(shí),OWASP仍在回顧其2018年的10大物聯(lián)網(wǎng)安全漏洞,而其之前的10大物聯(lián)網(wǎng)安全漏洞列表也非常有用。也就是說(shuō),開(kāi)發(fā)人員只需在他們常用的資訊網(wǎng)站上找到這些漏洞和攻擊的現(xiàn)成目錄即可。 然而,對(duì)于能夠快速突破基礎(chǔ)攻擊的組織來(lái)說(shuō),也可以將這些方法用于解決物聯(lián)網(wǎng)設(shè)計(jì)中的安全相關(guān)問(wèn)題。例如,機(jī)器控制回路中使用的系統(tǒng)通常面臨與功能安全相關(guān)的任務(wù)關(guān)鍵型需求。在這類系統(tǒng)中,防護(hù)和功能安全交織在一起,因此威脅模型可能需要考慮到防護(hù)或安全方面的漏洞會(huì)造成人身安全風(fēng)險(xiǎn)的情況。同樣,防護(hù)和隱私也在許多方面有重疊之處,任何一方的漏洞都可能導(dǎo)致個(gè)人身份信息泄漏。 結(jié)論 威脅建模和風(fēng)險(xiǎn)評(píng)估在復(fù)雜系統(tǒng)中的有效應(yīng)用遠(yuǎn)遠(yuǎn)超出了可用選項(xiàng)和技術(shù)的任何簡(jiǎn)單列表。與每個(gè)特定系統(tǒng)一樣,每個(gè)開(kāi)發(fā)組織都擁有自己獨(dú)特的約束機(jī)制和能力。在滿足某個(gè)系統(tǒng)或組織的需求的同時(shí),可能會(huì)完全忽略另一個(gè)系統(tǒng)或組織的需求。唯一共同的要求可能是需要先進(jìn)行威脅和風(fēng)險(xiǎn)評(píng)估。即便如此,企業(yè)是否應(yīng)該嘗試創(chuàng)建一個(gè)“完整”的威脅模型和風(fēng)險(xiǎn)評(píng)估呢?答案是否定的,因?yàn)檫@種嘗試并不能得到一個(gè)完美的結(jié)果。 世界自然混亂的進(jìn)程,系統(tǒng)漏洞緩解與黑客利用之間的抗衡,最終使任何追求完美的嘗試都無(wú)法實(shí)現(xiàn)。但如果不根據(jù)威脅模型和風(fēng)險(xiǎn)評(píng)估建立安全路線圖,將無(wú)法避免導(dǎo)致常見(jiàn)安全漏洞的一些陷阱和彎路。 作者:Stephen Evanczuk 在電子行業(yè)有20多年的寫作經(jīng)驗(yàn),涉及廣泛的主題,包括硬件、軟件、系統(tǒng)和物聯(lián)網(wǎng)等應(yīng)用。他獲得了神經(jīng)網(wǎng)絡(luò)神經(jīng)科學(xué)博士學(xué)位,并在航空航天行業(yè)從事大規(guī)模分布式安全系統(tǒng)和算法加速方法的研究。目前,他在寫技術(shù)和工程方面的文章的閑暇之時(shí),還在研究深度學(xué)習(xí)在識(shí)別和推薦系統(tǒng)中的應(yīng)用。 |