本文來(lái)自微信公眾號(hào)“安全牛”。
網(wǎng)絡(luò)安全的本質(zhì)是攻防雙方的對(duì)抗與博弈。然而,由于多種攻防之間的不對(duì)稱性因素存在,使得攻擊者總能在對(duì)抗過(guò)程中搶占先機(jī)。為了更好地了解潛在的威脅和缺陷,實(shí)現(xiàn)主動(dòng)式防御,企業(yè)需要重新考慮他們的網(wǎng)絡(luò)防護(hù)方法,而威脅建模(Threat modeling)正是網(wǎng)絡(luò)安全武器庫(kù)中關(guān)鍵防御武器。
威脅建模的必要性
威脅建模是指識(shí)別并評(píng)估如何管理應(yīng)用系統(tǒng)中安全弱點(diǎn)的過(guò)程,可以幫助企業(yè)更快速地發(fā)現(xiàn)信息化系統(tǒng)應(yīng)用過(guò)程中的安全隱患,更清楚地了解安全建設(shè)需求,從而更有效地建立安全防御體系。
顧名思義,威脅建模會(huì)產(chǎn)生一個(gè)或多個(gè)模型。OWASP將威脅模型定義為:“影響應(yīng)用程序安全性的所有信息的結(jié)構(gòu)化表示。從本質(zhì)上講,它是從風(fēng)險(xiǎn)防御的視角來(lái)評(píng)估應(yīng)用程序及其環(huán)境的安全性。”通過(guò)威脅建模的實(shí)踐,可以為組織的而網(wǎng)絡(luò)安全決策提供更全面的信息,并幫助構(gòu)建和支持網(wǎng)絡(luò)威脅情報(bào)(CTI)。
組織可以將威脅建模廣泛地應(yīng)用于軟件應(yīng)用程序、網(wǎng)絡(luò)系統(tǒng)、分布式系統(tǒng)、物聯(lián)網(wǎng)設(shè)備和數(shù)字化業(yè)務(wù)流程。概括來(lái)說(shuō),使用威脅建??梢越o企業(yè)組織如下好處:
?明確組織的安全需求。傳統(tǒng)的最佳實(shí)踐和頂級(jí)威脅列表只是網(wǎng)絡(luò)安全工作的指導(dǎo)方針,它們不能考慮到組織的具體情況。而威脅建??梢愿嬖V組織應(yīng)該優(yōu)先考慮什么以及在哪里投入資源。
?更快的反饋,更低的成本。遵循“安全左移”的防護(hù)理念,威脅建??梢栽趹?yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程的早期發(fā)現(xiàn)問(wèn)題,甚至在漏洞萌芽之前消除它們,從而大大降低修復(fù)成本。
?更優(yōu)質(zhì)的產(chǎn)品+增強(qiáng)的信心。許多數(shù)據(jù)泄露事件凸顯了安全團(tuán)隊(duì)對(duì)安全的忽視。威脅建模使您的缺陷直觀可見(jiàn),因此您可以制定創(chuàng)新計(jì)劃并實(shí)際量化威脅。
正如安全技術(shù)專家Adam Shostack所認(rèn)為的:“威脅建模是實(shí)現(xiàn)網(wǎng)絡(luò)安全集中化防御的關(guān)鍵。如果沒(méi)有威脅建模,企業(yè)的網(wǎng)絡(luò)安全工作就是無(wú)休止的打地鼠游戲。”
威脅建模的過(guò)程
從廣義上講,威脅建模涉及從日常的安全工作中退一步,以了解企業(yè)的系統(tǒng)、評(píng)估網(wǎng)絡(luò)和數(shù)字資源、識(shí)別威脅環(huán)境中的漏洞并優(yōu)先考慮涵蓋保護(hù)、響應(yīng)、補(bǔ)救和恢復(fù)的計(jì)劃。威脅建模團(tuán)隊(duì)的核心成員主要由安全專業(yè)人員和架構(gòu)師組成。在更廣泛的情況下,組織可以將各種利益相關(guān)者聚集在一起,包括應(yīng)用程序所有者、技術(shù)支持人員、管理員等。
這些團(tuán)隊(duì)有許多明確定義的框架需要遵循,例如STRIDE,它是1999年由Microsoft開(kāi)發(fā)的。STRIDE中的威脅建模會(huì)議通常以類似于白板會(huì)議的方式開(kāi)始,安全專家和利益相關(guān)者在會(huì)上討論風(fēng)險(xiǎn)因素,并集思廣益怎么辦。然而,這種方式目前必須要改變。
傳統(tǒng)的威脅建模方法在當(dāng)前的計(jì)算和威脅環(huán)境中,它們的擴(kuò)展性和實(shí)際應(yīng)用效果都不夠好。特別隨著越來(lái)越多的業(yè)務(wù)運(yùn)營(yíng)轉(zhuǎn)向數(shù)字化,解決組織的所有高優(yōu)先級(jí)威脅變得非常耗時(shí),導(dǎo)致太多漏洞未得到解決。如何簡(jiǎn)化這個(gè)過(guò)程?組織或許應(yīng)該反向進(jìn)行改變,從另一端(攻擊端)開(kāi)始威脅建模過(guò)程。組織可以掃描現(xiàn)有系統(tǒng),整合有關(guān)當(dāng)前和可能威脅的數(shù)據(jù),而不是從白板和人聲鼎沸的會(huì)議開(kāi)始,安全團(tuán)隊(duì)需要像黑客一樣思考,試圖識(shí)別潛在威脅。
在實(shí)際應(yīng)用中,威脅建模過(guò)程一般遵循以下步驟:
?設(shè)定風(fēng)險(xiǎn)分析目標(biāo),確定需要保護(hù)的內(nèi)容;
?創(chuàng)建安全風(fēng)險(xiǎn)架構(gòu)概況,繪制系統(tǒng)或應(yīng)用程序架構(gòu)圖;
?利用可視化技術(shù)來(lái)識(shí)別系統(tǒng)面臨的網(wǎng)絡(luò)安全威脅;
?評(píng)估威脅的優(yōu)先級(jí),并針對(duì)重點(diǎn)網(wǎng)絡(luò)安全威脅優(yōu)先提出緩解措施;
?驗(yàn)證所識(shí)別的威脅是否已被實(shí)際緩解。
威脅建??蚣芗胺椒?/strong>
威脅建模的方法有多種,每種方法均有其獨(dú)特的特點(diǎn)和架構(gòu),可指導(dǎo)安全專家識(shí)別和減輕相應(yīng)的潛在威脅。這些威脅建模方法所提供的框架概括了如何應(yīng)對(duì)復(fù)雜的威脅分析任務(wù),能夠幫助組織對(duì)安全風(fēng)險(xiǎn)進(jìn)行全方位、系統(tǒng)的審查。
1
NIST威脅模型框架
NIST威脅模型是由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)開(kāi)發(fā)的一種威脅建??蚣?。它主要基于NIST發(fā)布的SP 800-30《風(fēng)險(xiǎn)管理指南》中的威脅建模指南。NIST威脅建??蚣馨ㄒ韵玛P(guān)鍵步驟:
?建立上下文規(guī)則:定義組織的上下文,包括業(yè)務(wù)目標(biāo)、關(guān)鍵資產(chǎn)和相關(guān)利益相關(guān)者。
?威脅識(shí)別:分析系統(tǒng),識(shí)別可能的威脅,包括自然災(zāi)害、人為活動(dòng)和技術(shù)故障等。
?威脅評(píng)估:對(duì)識(shí)別的威脅進(jìn)行評(píng)估,包括威脅的概率、影響和風(fēng)險(xiǎn)。
?制定風(fēng)險(xiǎn)緩解策略:根據(jù)評(píng)估的風(fēng)險(xiǎn)水平,制定適當(dāng)?shù)娘L(fēng)險(xiǎn)緩解策略,包括接受、轉(zhuǎn)移、降低或避免。
?監(jiān)控和更新:持續(xù)監(jiān)控威脅環(huán)境,根據(jù)變化的情況更新風(fēng)險(xiǎn)管理策略。
2
STRIDE Model框架
STRIDE是威脅建模理念的最早實(shí)踐者,也是最流行的威脅建模框架之一,由微軟安全研究人員于1999年創(chuàng)建。它能夠從攻擊者的角度出發(fā),將威脅分為以下6個(gè)類別:
?欺騙(Spooling):攻擊者試圖冒充與系統(tǒng)某些部分交互的實(shí)體(例如,用戶、服務(wù))。
?篡改(Tampering):攻擊者試圖修改數(shù)據(jù)以操縱某些結(jié)果。
?抵賴(Repudiation):攻擊者否認(rèn)其操作或交易,使其難以追蹤或追究責(zé)任。
?信息泄露(Information Disclosure):攻擊者可能獲取系統(tǒng)中的敏感信息,如用戶憑據(jù)、業(yè)務(wù)數(shù)據(jù)等。
?拒絕服務(wù)(DoS):限制或阻止對(duì)系統(tǒng)的正常訪問(wèn)。
?特權(quán)提升(Elevation of privilege):攻擊者試圖獲取比其正常權(quán)限更高的權(quán)限級(jí)別,從而可能導(dǎo)致未經(jīng)授權(quán)的訪問(wèn)和操作系統(tǒng)的敏感功能。
3
DREAD框架
DREAD是一種用于評(píng)估和量化安全風(fēng)險(xiǎn)的威脅建??蚣?,它考慮了以下五個(gè)關(guān)鍵方面:
?損害(Damage):攻擊成功發(fā)生后可能對(duì)系統(tǒng)造成的實(shí)際損害程度,包括數(shù)據(jù)泄露、服務(wù)中斷、財(cái)務(wù)損失等。
?可重復(fù)性(Reproducibility):攻擊的復(fù)雜度以及攻擊者是否能夠輕松地重復(fù)該攻擊。高可重復(fù)性意味著攻擊很容易被多次執(zhí)行。
?可利用性(Exploitability):衡量攻擊者實(shí)施攻擊的難度,以及攻擊是否需要先前的專業(yè)知識(shí)或技能。較低的可利用性表示攻擊相對(duì)難以實(shí)現(xiàn)。
?受影響用戶(Affected Users):攻擊可能影響的用戶數(shù)量,如果攻擊影響廣泛的用戶群體,風(fēng)險(xiǎn)程度可能會(huì)更高。
?可發(fā)現(xiàn)性(Discoverability):衡量攻擊是否容易被檢測(cè)或發(fā)現(xiàn)。低可發(fā)現(xiàn)性表示攻擊者不易被發(fā)現(xiàn)。
4
PASTA流程
攻擊模擬和威脅分析流程(PASTA)是一種以風(fēng)險(xiǎn)為中心的威脅分析方法,在模擬和測(cè)試威脅的可行性時(shí)始終與業(yè)務(wù)流程聯(lián)系在一起。它采用以風(fēng)險(xiǎn)為中心的方法,根據(jù)威脅的可能性和潛在影響確定威脅的優(yōu)先級(jí)。具體分為以下七個(gè)階段:
?為風(fēng)險(xiǎn)分析定義目標(biāo)。這包括對(duì)組織核心任務(wù)、服務(wù)、產(chǎn)品及其他關(guān)鍵業(yè)務(wù)方面的認(rèn)知;
?定義技術(shù)范圍,包括系統(tǒng)、網(wǎng)絡(luò)、應(yīng)用程序等;
?分解和分析應(yīng)用程序,識(shí)別關(guān)鍵組件及其相互關(guān)系;
?威脅分析,識(shí)別系統(tǒng)可能面臨的威脅;
?弱點(diǎn)和脆弱性分析;
?攻擊建模與模擬;
?風(fēng)險(xiǎn)分析和管理;
5
LINDDUN框架
對(duì)于主要擔(dān)心數(shù)據(jù)隱私的組織,可以采用更集中的威脅建模方法。LINDDUN就是這樣一個(gè)框架,它提供了一個(gè)隱私威脅的目錄,以便對(duì)可能影響隱私的廣泛設(shè)計(jì)問(wèn)題進(jìn)行調(diào)查。
“LINDDUN”是以下隱私威脅類型的首字母縮略詞,主要包括:
?關(guān)聯(lián)(Linking):將數(shù)據(jù)或操作關(guān)聯(lián)到個(gè)人或組的能力。
?識(shí)別(Identifying):了解個(gè)體的身份。
?不可抵賴性(Nonrepudiation):能夠?qū)⒛稠?xiàng)主張歸于某個(gè)人。
?偵測(cè)(Detecting):通過(guò)觀察推斷數(shù)據(jù)主體對(duì)系統(tǒng)的參與情況。
?數(shù)據(jù)泄露(Data disclosure):過(guò)度收集、存儲(chǔ)、處理或共享個(gè)人數(shù)據(jù)。
?不知情(Unawareness):在處理個(gè)人數(shù)據(jù)時(shí),沒(méi)有充分告知、涉及或授權(quán)個(gè)人。
?不合規(guī)(Noncompliance):偏離安全和數(shù)據(jù)管理最佳實(shí)踐、標(biāo)準(zhǔn)和法規(guī)。
6
TRIKE知識(shí)庫(kù)
TRIKE是一種基于知識(shí)庫(kù)的開(kāi)源建模方法,通過(guò)收集、整理和分析威脅情報(bào),構(gòu)建一個(gè)全面的知識(shí)庫(kù),主要包括威脅漏洞、攻擊向量等信息,來(lái)幫助組織理解和管理其面臨的威脅和風(fēng)險(xiǎn)。該方法側(cè)重于定義可接受的風(fēng)險(xiǎn)水平,同時(shí)分配風(fēng)險(xiǎn)等級(jí),以確定制定的利益相關(guān)方是否可以接受風(fēng)險(xiǎn),并根據(jù)這些等級(jí)調(diào)整安全工作。
7
安全決策樹(shù)
安全決策樹(shù)(Security decision trees)是一種以攻擊者為中心的威脅建模技術(shù),它允許團(tuán)隊(duì)使用樹(shù)形結(jié)構(gòu)對(duì)攻擊如何展開(kāi)進(jìn)行建模。攻擊場(chǎng)景模擬攻擊者在攻擊的每個(gè)階段可能采取的行動(dòng),以及系統(tǒng)可以做些什么來(lái)對(duì)抗攻擊者。這種方法可以幫助團(tuán)隊(duì)理解攻擊者的心態(tài)和決策過(guò)程,以及攻擊的投資回報(bào)(ROI)。
威脅建模應(yīng)用實(shí)踐
雖然威脅建模優(yōu)勢(shì)明顯,但想要在組織內(nèi)成功采用威脅建模卻并不容易。為了最大程度地發(fā)揮威脅建模的作用,組織可以采取以下一些關(guān)鍵步驟:
首先,必須把重點(diǎn)放在培訓(xùn)和意識(shí)上。這意味著要投入時(shí)間和資源來(lái)教育開(kāi)發(fā)團(tuán)隊(duì)、安全人員和其他受眾,讓他們了解威脅建模的重要性以及用于進(jìn)行威脅建模的各種技術(shù)。徹底理解威脅建模在識(shí)別和預(yù)防安全漏洞中的作用,對(duì)于在團(tuán)隊(duì)中培養(yǎng)具有安全意識(shí)的文化至關(guān)重要。
其次,要將威脅建模集成到開(kāi)發(fā)生命周期中。通過(guò)在軟件開(kāi)發(fā)的早期階段威脅建模,組織可以確保安全性考慮不是“事后考慮事項(xiàng)”,而是開(kāi)發(fā)過(guò)程的基本組成部分。在早期嵌入威脅建模有助于識(shí)別潛在的安全問(wèn)題,因?yàn)檫@些問(wèn)題通常更容易解決,而且成本更低。
最后,網(wǎng)絡(luò)安全的本質(zhì)要求威脅模型并非靜態(tài)的。隨著網(wǎng)絡(luò)威脅和軟件系統(tǒng)的不斷發(fā)展,定期審查是必不可少的。組織應(yīng)該通過(guò)定期審查來(lái)更新和改進(jìn)威脅模型,確保它們準(zhǔn)確地反映當(dāng)前的威脅環(huán)境和系統(tǒng)本身的任何變化,從而保持一個(gè)強(qiáng)大的、響應(yīng)性強(qiáng)的安全狀態(tài),以適應(yīng)不斷涌現(xiàn)的新挑戰(zhàn)。
將這些實(shí)踐整合到組織的安全策略中并非一次性的任務(wù),而是一個(gè)持續(xù)努力的過(guò)程。隨著威脅的演變以及系統(tǒng)的日益復(fù)雜,威脅建模也必須跟上網(wǎng)絡(luò)安全的動(dòng)態(tài)特性。如果企業(yè)想將威脅建模涵蓋自身的所有業(yè)務(wù),那么就應(yīng)該通過(guò)優(yōu)先使用自動(dòng)化工具和大量可用威脅信息評(píng)估企業(yè)安全風(fēng)險(xiǎn)的方式,更快地解決所有高風(fēng)險(xiǎn)威脅,同時(shí)也不要忽視任何細(xì)小威脅。