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