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