6步教你搞定網絡威脅建模
當今社會,許多組織機構面臨前所未有的網絡威脅及內部威脅,其數據存儲、處理與傳輸均存在高危風險。由于存在這些威脅,企業日益關注網絡安全,使其成為信息系統安全認證專業人員(CISSP或CISP)必需掌握的概念。
即使非常重視保護業務流程安全的企業也可能成為網絡犯罪的受害者。遵守狹隘的安全標準也許不足以阻止或檢測復雜的網絡攻擊。威脅建模讓企業對最可能影響系統的各種網絡威脅進行系統性識別和評價。有了這些信息,您就可以按照一定的邏輯順序,利用適當的對策來處理現存的威脅,并從具有最大風險的威脅開始。
開始之前
開始威脅建模過程之前,我們要了解以下基本概念?
- 風險是基于對組織機構構成的威脅。
- 威脅關注的是有價值的資源。
什么是威脅建模
威脅建模是一種結構化方法,用來識別、量化并應對威脅。威脅建模允許系統安全人員傳達安全漏洞的破壞力,并按輕重緩急實施補救措施。
威脅建模主要包括三大主要元素:
1. 資產:應保護哪些有價值的數據和設備?
2. 威脅:攻擊者可能對系統實施的行為?
3. 漏洞:有哪些漏洞讓攻擊者對系統構成威脅?
組織機構內部,不同層次組織結構和環境要應對的威脅大不相同。威脅目標有三個主要層次:
- 網絡:此威脅包括假冒、惡意數據包等。
- 主機:此威脅包括緩沖區溢出、惡意文件等。
- 應用程序:此威脅包括SQL注入、XSS、輸入篡改等。
誰負責威脅模型,何時執行?
理想情況下,在系統設計過程中(部署之前)創建威脅模型。在實踐中,通常是為現有系統創建威脅模型,使其成為維護的一部分。安全經驗豐富的系統設計人員最有資格識別威脅。
威脅建模步驟
1. 識別資產
2. 描述架構
3. 分解應用程序
4. 識別威脅
5. 歸檔并分類威脅
6. 評價威脅
1、識別資產:
識別對組織機構具有價值的潛在資產:
- 入口和出口點
- 系統資產和資源
- 信任級別(訪問類別)
2、描述架構:
在這個過程中,描述處理價值資產的架構,可能包括軟件架構、版本和其它架構詳情。
3、分解應用程序:
分解與過程有關的應用程序,所有運行應用程序的子過程。
4、識別威脅:
以描述方式羅列威脅,以便審核,作進一步處理。
5、將威脅分類:
按照預定義分類對威脅進行分類,預定義分類如下:
- 假冒身份
- 篡改數據
- 否認
- 信息泄露
- 拒絕服務
- 特權提升
評價威脅通過Microsoft的DREAD模型對威脅的嚴重性進行評價:
- 破壞潛力:如果漏洞被利用,損失有多大?
- 再現性: 重復被利用的難度有多大?
- 可利用性:漏洞被利用的難度有多大?
- 受影響的用戶:多少用戶可能受到影響?
- 可發現性:漏洞容易被發現嗎?
例子:
某公司具有數據收集Web應用程序,允許用戶登錄,訪問或修改個人數據。
此應用程序收集的信息如下:
架構:
- Web應用程序——ASP.Net
- 數據庫——SQL服務器2000
資產:
- 用戶登錄憑證
- 用戶個人信息
- 行政資源
- 系統硬件
微軟威脅報告模板:
- ID – 威脅的唯一ID #
- 名稱 – 資產威脅的簡短名稱
- 描述 – 威脅及其重要性的詳細描述
- STRIDE – 如何對威脅進行分類?
- 緩解– 應用程序是否有威脅?
- 已知緩解 –如何免遭威脅?
- 調查說明– 目前對威脅的了解有多少?
- 入口點– 對手可能采取的手段有哪些?
- 資產– 哪些資產可能會被損壞?
- 威脅樹– 如何將威脅形象化?(可選)
威脅描述:
ID: 1
- 名稱: Login Subversion
- 描述:對手試圖通過請求進入應用程序注入SQL命令,從而繞過登錄過程。
- STRIDE分類:篡改數據,提升特權
- 緩解:無
- 已知緩解:存儲過程,參數化查詢
- 調查說明:審查了應用程序的數據庫調用,并在登錄查詢使用字符串連接。
- 入口點:登錄頁面
- 資產:訪問支持的數據庫
- 威脅樹:無
通過STRIDE對威脅分類
通過Microsoft標準化簡易表格將威脅分類。
- 假冒身份
- 篡改數據
- 否認
- 信息泄露
- 拒絕服務
- 提升特權
使用DREAD評價威脅
使用Microsoft DREAD模型評價威脅等級。根據每個項目的等級范圍進行評價,對大多數項目來說,等級范圍為1-3。
- 破壞潛力—如果漏洞被利用,損失有多大?
- 再現性:重復被利用的難度有多大?
- 可利用性:漏洞被利用的難度有多大?
- 受影響的用戶:多少用戶可能受到影響?
- 可發現性:容易被發現嗎?
破壞潛力
1. 攻擊者可以獲取極其敏感的數據,并損壞或破壞數據。
2. 攻擊者可以獲取敏感數據,但破壞性小。
3. 攻擊者只能獲取危害小或不具破壞潛力的數據。
再現性
1. 每次都再現;而且不需要時間間隔或特定的極端情形
2. 有時間間隔;僅在時間間隔內運行
3. 很少再現
可利用性
1. 任何人都能利用
2. 攻擊者必須具備一定的知識和技能
3. 攻擊者必須具備非常專業的知識和技能
受影響的用戶
1. 大多數或所有用戶
2. 一些用戶
3. 極少用戶
可發現性
1. 攻擊者可以輕易發現漏洞
2. 攻擊者也許能發現漏洞
3. 攻擊者必須深挖才能發現漏洞
威脅建模之后該做何工作?
威脅建模過程的輸出包括應用程序體系結構安全方面的記錄和評價過的威脅列表。威脅模型有助于您協調開發小組成員,并將精力集中在最有影響的威脅上。
要點 威脅建模是一個不斷重復的過程。威脅模型是一種發展的文檔,并且各種不同的小組成員都可以參與。
下列小組的人員都可以使用威脅模型:
- 設計者可以利用它來進行技術與功能方面的安全設計選擇決策。
- 編寫代碼的開發人員可以利用它來降低風險。
- 測試人員可以編寫測試案例來測試應用程序是否容易受分析所找出的威脅的攻擊。
生成工作項目報告
從最初的威脅模型,您可以創建一個更正式的工作項目報告,它可以包括其他的屬性,例如 Bug ID,可用它把您喜好的錯誤跟蹤系統和威脅連接起來。實際上,您可以選擇在錯誤跟蹤系統中輸入找出的威脅,利用它的報告工具來生成報告。也可以用一個狀態欄來表明錯誤是否已經被修復。您應當確保報告包括用來連接威脅模型文檔的原始威脅編號。
在報告中,根據網絡、主機和應用程序種類來組織威脅。這可以使不同角色的不同小組成員更方便地使用該報告。每一類中,按優先順序排列威脅,最先的是評價具有最大危險的威脅,緊跟的是危險較小的威脅。
總結
雖然您可以降低攻擊帶來的危險,但是卻不能減少或者消除實際的威脅。不管您采取何種安全措施以及采用何種對策,威脅仍舊存在。安全界的現實就是,承認威脅的存在并控制危險。威脅建??梢詭椭刂瓢踩L險并在團隊中間溝通這些安全風險,并做出有效響應。威脅建模在過程的整個周期(從初始化到部署,還包括維護過程)進行。至于CISSP及CISP培訓學員必須了解威脅建模的所有過程,并應掌握如何通過威脅建模技術以最有效的方式緩解威脅。
要將威脅建??闯梢粋€不斷循環的過程。您的威脅模型應當是動態模型,應隨著時間的推移不斷更改,以適應發現的新型威脅與攻擊。它還要能夠適應應用程序為適應業務變更的需求而不斷完善與更改的自然發展過程。