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