威脅建模對于軟件開發(fā)的生命周期是一個(gè)很重要的過程,但是這個(gè)詞的使用并不局限于軟件。
在此,我們將關(guān)注如何為物聯(lián)網(wǎng)建立威脅模型。本文首先所關(guān)注的是由物聯(lián)網(wǎng)的客戶端所帶來的新威脅面,以及不斷增加的終端所帶來的日漸增加的安全風(fēng)險(xiǎn)。
不能把物聯(lián)網(wǎng)安全當(dāng)成是一個(gè)簡單的消費(fèi)者的安全問題。物聯(lián)網(wǎng)安全對于所有的部門和領(lǐng)域都至關(guān)重要,不妨考慮一下:
政府:城市的規(guī)劃者們正忙于設(shè)計(jì)所謂的智能城市,其中布滿了可以使服務(wù)更高效的傳感器和連接器。物聯(lián)網(wǎng)可以優(yōu)化地面交通,可以為智能城市提供運(yùn)力和動力。
工業(yè):重工業(yè)可以連接到互聯(lián)網(wǎng)的傳感器網(wǎng)絡(luò),從而監(jiān)視工人是否暴露在自然的或人造的危險(xiǎn)化學(xué)物品中。工廠中的傳感器可以為預(yù)測性維護(hù)提供幫助,并且可以將運(yùn)營數(shù)據(jù)提供給分析引擎。例如,航空單位可以利用飛機(jī)發(fā)動機(jī)引擎生成的海量數(shù)據(jù),進(jìn)而優(yōu)化飛行路線和燃料計(jì)劃。
企業(yè):物聯(lián)網(wǎng)使得企業(yè)的外圍世界更加復(fù)雜。幾乎有一半的新技術(shù)員工是常常在其住處工作的遠(yuǎn)程雇員。不妨想象一下其房間充滿了大量的“準(zhǔn)安全”的有可能搭上單位VPN便車的物聯(lián)網(wǎng)設(shè)備。IT部門已經(jīng)在清理為臨時(shí)用戶服務(wù)的網(wǎng)絡(luò),因?yàn)橐恍阂獾奈锫?lián)網(wǎng)設(shè)備已經(jīng)出現(xiàn)。
無論是消費(fèi)者、政府、工業(yè)界,還是企業(yè)都會受到影響,有時(shí)甚至被物聯(lián)網(wǎng)改變。為物聯(lián)網(wǎng)構(gòu)建威脅模型可以將單位及其他群體的環(huán)境變?yōu)橐粋€(gè)整體上安全的物聯(lián)網(wǎng)。
就像最初的互聯(lián)網(wǎng)一樣,物聯(lián)網(wǎng)可能會改變一切。但與互聯(lián)網(wǎng)不同的是,我們有了安全意識,而且有機(jī)會將安全性構(gòu)建到物聯(lián)網(wǎng)中。
圖1 物聯(lián)網(wǎng)生態(tài)系統(tǒng)威脅面
綜上所述,物聯(lián)網(wǎng)需要一種比當(dāng)前更加強(qiáng)健的安全應(yīng)用,否則,我們構(gòu)建的將是一個(gè)遍布補(bǔ)丁的卻又漏洞百出的系統(tǒng),正如現(xiàn)在的互聯(lián)網(wǎng)一樣。物聯(lián)網(wǎng)絕對不僅僅是消費(fèi)者的問題,它涉及到企業(yè)、工業(yè)界和政府等主體。
將安全性應(yīng)用到任何系統(tǒng)開發(fā)中的一種方法是通過威脅建模過程。威脅模型的評估可以使系統(tǒng)設(shè)計(jì)者和安全專家能夠做到:
1.分類記錄在用資產(chǎn);
2.確認(rèn)潛在威脅;
3.給資產(chǎn)和威脅評級和打分。
這也許聽起來很復(fù)雜。但如果有正確的態(tài)度和適當(dāng)?shù)娜藛T,完成這些任務(wù)就頗為激動人心。下面就來看一下威脅建模的機(jī)理,然后提供一些啟動一次新威脅模型項(xiàng)目的技巧。
第一步:分類記錄在用資產(chǎn)
對于一個(gè)物聯(lián)網(wǎng)項(xiàng)目,資產(chǎn)的范圍不僅包括設(shè)備自身,還有支持該設(shè)備的所有系統(tǒng)。
一個(gè)典型的物聯(lián)網(wǎng)項(xiàng)目架構(gòu)要有只讀性的傳感器,要有一些控制,還要通過一個(gè)控制器節(jié)點(diǎn)來進(jìn)行通信。這個(gè)節(jié)點(diǎn)將會通過本地網(wǎng)絡(luò)或公有云亦或私有云來發(fā)布數(shù)據(jù)。云中的數(shù)據(jù)收集節(jié)點(diǎn)實(shí)施數(shù)據(jù)處理和分析,并且還可能有一個(gè)與項(xiàng)目接口的Web應(yīng)用。最后,還需要平板電腦及其應(yīng)用程序,以便于與Web應(yīng)用或控制器進(jìn)行接口。擁有成熟的安全過程的任何一家單位都應(yīng)當(dāng)已經(jīng)在其Web應(yīng)用和云端內(nèi)容中建立過威脅模型。那么,只需將一個(gè)新的威脅模型應(yīng)用到設(shè)備和控制器上。但是,很多新的物聯(lián)網(wǎng)廠商和創(chuàng)立者并沒有成熟的項(xiàng)目,也沒有為整個(gè)系統(tǒng)建立威脅模型。
如今,已經(jīng)有許多安全專家關(guān)注到了這個(gè)問題。開放式的Web應(yīng)用程序安全項(xiàng)目(OWASP)有一個(gè)物聯(lián)網(wǎng)項(xiàng)目頁面,其中確認(rèn)了物聯(lián)網(wǎng)系統(tǒng)的很多資產(chǎn),如圖1所示。
管理員不妨考慮每一個(gè)威脅面,并且確認(rèn)單位項(xiàng)目中的資產(chǎn),然后列示出來,以此作為威脅模型評估的一部分。
第二步:確認(rèn)潛在威脅
幸運(yùn)的是,很多潛在的威脅已經(jīng)為人所知。我們只需將其應(yīng)用到項(xiàng)目中。早期的威脅建模中,其利用的模型之一就是“六面”威脅分類,其目的在于幫助我們?nèi)ピ儐柸缦铝鶄€(gè)問題(如圖2):
欺騙:攻擊者是否能夠假裝是另一個(gè)人呢?
篡改:攻擊者是否能夠成功地將篡改后的數(shù)據(jù)注入到系統(tǒng)中?
否認(rèn):用戶是否能夠偽裝交易并未發(fā)生?
信息泄露:應(yīng)用程序是否會將數(shù)據(jù)泄露給外部?
拒絕服務(wù):應(yīng)用程序是否能夠被惡意關(guān)閉呢?
特權(quán)提升:用戶是否能夠獲得超級用戶權(quán)限?
很多眾所周知的攻擊,如中間人攻擊或是重放攻擊,就屬于這些類型。
圖2 “六面”威脅分類的六個(gè)問題
在第二步中,單位的威脅模型團(tuán)隊(duì)(當(dāng)然可以是一個(gè)虛擬的團(tuán)隊(duì))可以實(shí)施頭腦風(fēng)暴,為每項(xiàng)資產(chǎn)提出盡可能多的威脅,并且需要一位主持人來記錄一切。為了保證這個(gè)步驟盡可能做到真正的“頭腦風(fēng)暴”,管理者需要在討論中只考慮威脅,而不是減輕威脅的方法。在此時(shí)不要評價(jià),也不要判斷。如果某人說,“這是不可能發(fā)生的”,或者“我們可以通過那種方法來解決……”,管理員就要說,“我們在這兒只是盡可能多的提出可能性和問題,下一步將會為這些威脅評級,最后一步才是如何減輕以及解除威脅”,從而確?!邦^腦風(fēng)暴”不脫離軌道。
第三步:威脅和資產(chǎn)評級
在所有的威脅都被集思廣益并記錄后,就需要對其評級。查看威脅清單并決定每種威脅的風(fēng)險(xiǎn)評估。選擇一種有序的量化系統(tǒng),如設(shè)置為1到3(1為最低風(fēng)險(xiǎn))。然后再從如下五方面對上述變量進(jìn)行打分:
破壞力:這種威脅可能引起的破壞力有多大?
可再生性:這種威脅的繁殖能力或可再生能力如何?
漏洞可利用性:有沒有不太可能被利用漏洞的極限條件?
受影響的用戶數(shù)量:是所有用戶,還是一些用戶或單個(gè)用戶受到影響?
可被發(fā)現(xiàn)性:這種威脅被發(fā)現(xiàn)的可能性有多大?
這種評級系統(tǒng)并不是新鮮事物,很多現(xiàn)代的從業(yè)者們一直認(rèn)為可再生性和可被發(fā)現(xiàn)性可以取最大值。這是因?yàn)檎麄€(gè)市場和漏洞資金項(xiàng)目都已經(jīng)在教育研究者和攻擊者們,要將時(shí)間用于發(fā)現(xiàn)漏洞,并且準(zhǔn)備好應(yīng)對的武器。我們應(yīng)該是假設(shè)存在一個(gè)漏洞,那么就會有人發(fā)現(xiàn)它,并且想辦法實(shí)施漏洞利用。
在建立威脅建模系統(tǒng)后,要注意,你要分析的是威脅和資產(chǎn),而不是人。
下面看一個(gè)威脅建模案例,其中涉及一個(gè)智能泊車計(jì)量系統(tǒng)。如前所述,我們將分三步進(jìn)行。
第一步,確認(rèn)在用資產(chǎn)
對于智能泊車計(jì)量系統(tǒng)的部署來說,資產(chǎn)的清單相對較短并且容易定義:
信用卡的付款信息;金錢(硬幣);泊車計(jì)量時(shí)間;泊車空間。
計(jì)量系統(tǒng)的制造商可以擁有不同的威脅模型,其中包括設(shè)備自身的物理方面:諸如設(shè)備內(nèi)存、固件接口以及生態(tài)系統(tǒng)的通信等。
第二步:分類記錄各種威脅
在前面的“六面”威脅分類模型中,我們通過考量資產(chǎn)的六個(gè)方面來幫助確認(rèn)一個(gè)系統(tǒng)的威脅。在將這個(gè)模型應(yīng)用到智能泊車計(jì)量系統(tǒng)的資產(chǎn)時(shí),可以發(fā)現(xiàn)如下的威脅清單:
當(dāng)然,還有更多威脅,但為行文的簡短,在此僅關(guān)注上述威脅。
第三步:利用上文提到的量化系統(tǒng)給威脅評級和打分
下一步就是用一種升序計(jì)數(shù)模式來量化這些威脅。量化系統(tǒng)的計(jì)數(shù)可以從1到3,也可以從1到10。在此,我們用1來表示最小的威脅。下面用1到3的威脅量化模式。
圖3 評級打分方法
圖4 行動計(jì)劃建議
假設(shè)威脅的可再生性和可發(fā)現(xiàn)性都取最大值,就只需要給破壞力、漏洞可利用性和受影響的用戶數(shù)量來評級和打分,如圖3所示。
威脅建模的要點(diǎn)在于創(chuàng)建類似于以上表格的一個(gè)表,要列舉出全部威脅,并且確定其優(yōu)先處理的等級。減輕每種威脅也就成了一個(gè)自然跟進(jìn)的過程。確定優(yōu)先次序?qū)τ谠谫Y源稀少的情況下制定決策是有益的,并不是任何威脅都需要立即解決。有時(shí),證明其存在或者只是簡單地接受風(fēng)險(xiǎn)也是可以采取的正確策略。
在部署物聯(lián)網(wǎng)泊車系統(tǒng)的例子中,運(yùn)營商選擇了下面的一些減輕威脅的措施,其中也包含了作者提供的一些建議,如圖4所示。
雖然這種威脅模型主要關(guān)注傳統(tǒng)的信息安全威脅,但運(yùn)營商也從法律的角度進(jìn)行風(fēng)險(xiǎn)分析。單位還應(yīng)對智能城市的其他項(xiàng)目進(jìn)行檢查。
運(yùn)營商還在考慮由項(xiàng)目的子廠商帶來的風(fēng)險(xiǎn);物聯(lián)網(wǎng)的制造商還在將微服務(wù)作為后端的解決方案,以用于集成和分析所有傳感器的數(shù)據(jù)。
但是,這只是廠商將一些代碼交給云并且進(jìn)行維護(hù)的方法。在此,必須考慮到存在的各種風(fēng)險(xiǎn),其中包括在廠商破產(chǎn)時(shí)會發(fā)生什么?再設(shè)想一下,陳舊的微服務(wù)代碼會不會不利于升級,從而導(dǎo)致通信的大量失敗。
一個(gè)適當(dāng)?shù)奈锫?lián)網(wǎng)模型包括了現(xiàn)有基礎(chǔ)架構(gòu)、Web應(yīng)用、Web服務(wù)、云、傳輸安全以及人員的全部范圍。適當(dāng)?shù)耐{模型必須考慮到人的因素。因?yàn)槲覀冇肋h(yuǎn)不知道一個(gè)具有破壞力的人會在什么時(shí)候會損害物聯(lián)網(wǎng)系統(tǒng)的安全。