專家論道:如何利用威脅模式
威脅模式是能夠讓隱藏的安全威脅和機制變成明顯的威脅和機制的有效方式,這樣安全人員就可以編寫安全要求以及架構和測試安全工具。作為開始,筆者想使用STRIDE的修正版,它可以清晰的將威脅到機制繪制處理。這樣的話,當開始新項目時(如SOA Web服務等),我們就可以確定哪些標準可以幫助項目進行。
威脅 |
機制 |
示例標準 |
Spoofing |
驗證 |
WS-Security |
篡改數據 |
數字簽名、Hash |
WS-Security + XML Signature |
爭議 |
審計日志 |
無 |
信息暴露 |
加密 |
WS-Security + XML Encryption |
拒絕服務 |
可用性服務 |
無 |
特權的提升 |
授權 |
無 |
威脅模式通常都被誤解了,他們并不是關于建構威脅的。作為防御性程序員,我們幾乎不能控制威脅,我們的工作只是超出漏洞并修復漏洞。漏洞基本上是被動的系統缺陷,威脅是利用漏洞的各種操作,那么我們就能夠1)確認威脅;2)處理威脅。威脅建模的最終結果不是威脅列表,而是解決方法的列表。并且不僅僅是通用列表,積極的威脅還能夠幫助我們在架構中找出對策。
此外,如果我們對比構建軟件的架構/設計早期階段的方法,威脅模式其實是一種對比/比較的結構化方法。例如,如果我們正在建立一套Web服務并在SOA風格(WS-*)和REST風格間進行選擇,我們可能會想看看每種軟件安全棧支持的現行標準。
威脅 |
機制 |
示例SOA標準 |
示例REST標準 |
Spoofing |
驗證 |
WS-Security |
XML Signature (僅響應) |
篡改數據 |
數字簽名、Hash |
WS-Security + XML Signature |
XML Signature (僅響應) |
爭議 |
審計日志 |
無 |
無 |
信息暴露 |
加密 |
WS-Security + XML Encryption |
XML Encryption (僅響應) |
拒絕服務 |
可用性服務 |
無 |
無 |
特權的提升 |
授權 |
無 |
無 |
威脅建模幫助我們將非常抽象的對象(如分析服務中的軟件安全功能等)描繪出具體的結構,但是如你所見,威脅建模并不是關于威脅,而是關于安全架構元素。這只是個示例,并不是完整的威脅模型,但是它能夠提供有效的的方式來查找安全架構中的問題。