目前,,軟件開(kāi)發(fā)人員在兼顧軟件性能、功能,、易用性、架構(gòu)和可觀測(cè)性等的同時(shí),,還需要重點(diǎn)關(guān)注系統(tǒng)應(yīng)用的安全問(wèn)題,。面對(duì)復(fù)雜的工作需要,軟件專(zhuān)業(yè)人員可以采取工具進(jìn)行協(xié)助,,而威脅建模正是確保系統(tǒng)應(yīng)用安全的工具之一,。本文將主要對(duì)威脅建模的定義、價(jià)值以及威脅建模的應(yīng)用等進(jìn)行詳細(xì)介紹,。
威脅建模的定義
威脅建模是識(shí)別并評(píng)估如何管理系統(tǒng)中的安全弱點(diǎn)的過(guò)程,。安全弱點(diǎn)好比一場(chǎng)戰(zhàn)斗,威脅建模能夠幫助開(kāi)發(fā)人員知道敵人可能在哪里發(fā)動(dòng)攻擊,,將會(huì)受到多大的傷亡,,從而幫助企業(yè)建立有效的防御體系。
威脅建模的應(yīng)用價(jià)值主要包括:
更清楚地了解安全需求
威脅建模將幫助企業(yè)明確精力應(yīng)該優(yōu)先投入在哪里,、應(yīng)該優(yōu)先考慮哪些方面等,。
反饋更快速、修復(fù)更省錢(qián)
威脅建??梢詭椭髽I(yè)盡早發(fā)現(xiàn)設(shè)計(jì)過(guò)程中的問(wèn)題,,在漏洞出現(xiàn)之前消除,這意味著不會(huì)失去客戶(hù)的信任,。
增加信心
恐懼未知會(huì)導(dǎo)致非理性的危險(xiǎn)行為,。整體安全常常給人以迷宮的感覺(jué),但威脅建??梢詭椭髽I(yè)可以走出迷宮,,讓企業(yè)有信心迅速采取行動(dòng),推進(jìn)創(chuàng)新的計(jì)劃,。
改進(jìn)產(chǎn)品質(zhì)量
安全歷來(lái)是一種看不見(jiàn)的特性,,很難量化。當(dāng)開(kāi)發(fā)人員急于向客戶(hù)交付產(chǎn)品時(shí),,常常將安全拋在設(shè)計(jì)的后面,。最近的許多數(shù)據(jù)泄露事件就是佐證。威脅建模讓安全可以量化,,被賦予相應(yīng)的優(yōu)先級(jí),。
威脅建模的類(lèi)型與方法
以資產(chǎn)為中心的威脅模型,,側(cè)重于系統(tǒng)的不同部分或資產(chǎn)(通常是攻擊面或信任邊界)。然后分析資產(chǎn)可能面臨的各種潛在攻擊途徑,。
以攻擊者為中心的威脅模型,,讓組織洞察威脅/攻擊者的思維模式。他們?cè)谡沂裁??他們?nèi)绾卧谙到y(tǒng)中找到信息并利用它,?然后組織把這些想法與可能有關(guān)的攻擊面聯(lián)系起來(lái)。
以軟件為中心的威脅模型,,使用設(shè)計(jì)和圖表來(lái)直觀呈現(xiàn)威脅和攻擊面,。這是主流的威脅建模方法,可以更全面,、更清晰地洞察漏洞,。
威脅建模有許多方法,但在團(tuán)隊(duì)選擇一種或多種方法之前,,有必要從更簡(jiǎn)單的方面入手,,重點(diǎn)考慮關(guān)鍵問(wèn)題:
1. 我們?cè)陂_(kāi)發(fā)什么?
先要了解我們?cè)陂_(kāi)發(fā)什么:新軟件,、物聯(lián)網(wǎng)生態(tài)系統(tǒng)還是功能,?為此創(chuàng)建數(shù)據(jù)流程圖也很有用,然后我們可以標(biāo)注系統(tǒng)的信任邊界,。
2. 會(huì)出現(xiàn)什么問(wèn)題,?
針對(duì)數(shù)據(jù)流圖中的每個(gè)要素或聯(lián)系列出潛在的威脅。在這一步還可以充分利用安全卡,、STRIDE或殺傷鏈等方法,。
3. 應(yīng)該如何做?
根據(jù)系統(tǒng)的當(dāng)前狀態(tài)和潛在威脅,,開(kāi)始跟蹤漏洞,,并確定優(yōu)先級(jí)。具體表現(xiàn)為需求中的惡意用戶(hù)故事或測(cè)試用例,。制定管理這些漏洞的措施:
緩解:使系統(tǒng)更難被利用,比如默認(rèn)要求身份驗(yàn)證才可訪問(wèn)應(yīng)用程序,。
消除:盡量減少功能,,以縮小應(yīng)用程序的攻擊面。
轉(zhuǎn)移:轉(zhuǎn)移處理風(fēng)險(xiǎn)的責(zé)任,。比如,,利用API管理器來(lái)處理身份驗(yàn)證。
接受:緩解,、消除或轉(zhuǎn)移風(fēng)險(xiǎn)可能成本過(guò)高,;接受風(fēng)險(xiǎn)是最后的手段,。我們?nèi)孕枰獙⒋擞涗浵聛?lái),以便所有人意識(shí)到剩余風(fēng)險(xiǎn),。
確保上面的第1步到第3步足夠具體,、可操作,以便將來(lái)針對(duì)發(fā)現(xiàn)的新威脅作修訂調(diào)整,。這好比敏捷方法中的回顧,。數(shù)據(jù)流程圖是活文檔,我們可以定期更新,、管理控制版本,。
威脅建模的常見(jiàn)模型
安全卡
安全卡方法不是很全面,但可以對(duì)開(kāi)發(fā)的系統(tǒng)和威脅的具體例子提出探索性問(wèn)題,。該方法由華盛頓大學(xué)的Tamara Denning,、Batya Friedman和Tadayoshi Kohno于2013年開(kāi)發(fā),包括四個(gè)維度的探索性問(wèn)題:
對(duì)手的動(dòng)機(jī)
對(duì)手的資源
對(duì)手的方法
人員的影響
STRIDE模型
微軟的Praerit Garg和Loren Kohnfelder開(kāi)發(fā)了STRIDE,,這種方法列出了系統(tǒng)威脅的一般類(lèi)別:
欺騙:我們?nèi)绾未_保用戶(hù)的真實(shí)性,?
篡改:我們?nèi)绾魏瞬閿?shù)據(jù)的完整性?
拒絕:我們?nèi)绾螌徲?jì)系統(tǒng)中的操作,,驗(yàn)證某人有沒(méi)有企圖做某事,?
信息泄露:我們?nèi)绾伪苊鈾C(jī)密信息被不應(yīng)該看到的人看到?
拒絕服務(wù):我們?nèi)绾畏乐官Y源被惡意耗盡,?
權(quán)限提升:我們?nèi)绾巫柚鼓橙双@得不應(yīng)該被授權(quán)獲得的額外權(quán)限,?
DREAD
DREAD用于量化威脅帶來(lái)的風(fēng)險(xiǎn),每個(gè)字母代表計(jì)算風(fēng)險(xiǎn)時(shí)考慮的因素,。DREAD風(fēng)險(xiǎn)=損害+可重現(xiàn)性+可利用性+受影響用戶(hù)+可發(fā)現(xiàn)性,。DREAD在確定威脅優(yōu)先級(jí)方面非常有用。如果企業(yè)面臨眾多威脅,,又不清楚當(dāng)前面臨的風(fēng)險(xiǎn),,DREAD是明智的選擇。
PASTA
PASTA代表“攻擊模擬和威脅分析流程”,。它是2012年開(kāi)發(fā)的一種以風(fēng)險(xiǎn)為中心的威脅建模方法,。PASTA包括以下步驟:
1. 定義業(yè)務(wù)目標(biāo):目前的里程碑或產(chǎn)品目標(biāo)是什么?
2. 定義技術(shù)范圍:這些目標(biāo)的故事圖或書(shū)面功能需求是什么,?
3. 分解應(yīng)用程序:如果需要,,將應(yīng)用程序的架構(gòu)分解為可部署的構(gòu)件、基礎(chǔ)架構(gòu),,甚至更小的組件,。
4. 威脅分析:查看信任邊界和攻擊面;可能會(huì)有哪些潛在的攻擊?
5. 弱點(diǎn)和漏洞分析:查看當(dāng)前狀態(tài),,看看已分析的威脅在哪個(gè)環(huán)節(jié)可能缺少防御,。
6. 攻擊枚舉和建模:模擬潛在的攻擊途徑??纯唇Y(jié)果會(huì)怎樣,。
7. 風(fēng)險(xiǎn)和影響分析:找出每個(gè)漏洞面臨的風(fēng)險(xiǎn),優(yōu)先處理高風(fēng)險(xiǎn)漏洞,。
如果企業(yè)有不確定的潛在風(fēng)險(xiǎn)時(shí),,PASTA是一種全面的建模方法,非常有用,。IT人員可以幫助描述組織安全的整體狀況,,并將安全列為設(shè)計(jì)的核心。
殺傷鏈
殺傷鏈?zhǔn)且环N軍事技術(shù),,由洛克希德,?馬丁公司稍加改動(dòng)用于網(wǎng)絡(luò)安全。它描述了整條攻擊鏈:偵察,、武器化,、投放、利用,、安裝,、指揮和控制以及對(duì)目標(biāo)實(shí)施的行動(dòng)。它還描述了殺傷鏈每個(gè)階段可能出現(xiàn)的步驟:檢測(cè),、拒絕,、破壞、降級(jí),、欺騙和遏制,。
殺傷鏈可以清楚地回答“會(huì)出什么問(wèn)題?”和“我們?cè)撛趺醋??”這類(lèi)問(wèn)題,。一旦組織確定了特定的威脅、攻擊面或信任邊界,,就可以對(duì)殺傷鏈和防御進(jìn)行建模,。
MITRE ATT&CK
MITRE ATT&CK圍繞收錄已知威脅和歷史攻擊的資料庫(kù),組織可以將其應(yīng)用于目前的系統(tǒng)中,。沒(méi)有什么比實(shí)際經(jīng)歷更能幫助防御了,。在這種模式下,我們可以汲取以往教訓(xùn),,防止未來(lái)出現(xiàn)類(lèi)似的安全問(wèn)題。
更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<