Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
本篇是 建構安全軟體開發 系列文的 EP17。
威脅模型的對於鑑別、溝通與了解威脅,也更有效的保護其資產價值。而威脅模型設計時可涵蓋的範圍相當廣泛,包含軟體、應用程式、系統、網路、分散式系統、IoT 設備,甚至可說沒有任何技術性的產品沒有威脅模型的存在。
要在開發的流程當中何時去規劃都可以,當然盡早將把威脅模型建立出來,就能越早提供檢視並發現問題所在加以防範。
而軟體威脅模型的建立指引概念為:
業界有幾個透過軟體開發社群就能取得的威脅模型工具,最常被提出來使用的為以下三者:
https://docs.microsoft.com/azure/security/develop/threat-modeling-tool
約莫在 2000 年左右,微軟就設計了這個威脅模型工具供開發者去識別其軟體開發過程當中的威脅。
上圖取自 微軟官網 Threat Modeling Tool feature overview 的介紹。
若有需要透過 Click-to-Download 安裝。
Microsoft Thread Modeling Tool 內建提供了兩種範本模型:
軟體 DSL 範本較適合一般軟體開發使用:
Azure 的範本就較適合有使用 Azure 雲端應用的分析使用:
在微軟的 GitHub 存放庫中也可以找到其他的 Threat Modeling Templates 可供下載使用,有更多興趣可以到微軟的 Thread Modeling 網頁介紹中了解更多。
https://owasp.org/www-project-threat-dragon/
約莫在 2010 年左右,OWASP 就推出了此工具,透過使用此工具可以記錄可能的威脅與決定損害控制。
目前正式釋出的版本為 v1.6.1:
https://github.com/OWASP/threat-dragon/releases/tag/v1.6.1
相關的參考文件可透過 https://threatdragon.github.io/ 取得。
例如針對 "OpenID Connect, OAuth 2.0" 透過 OWASP Threat Dragon 所繪製的威脅模型:
上圖取自 Threat modeling OpenID Connect, OAuth 2.0 for beginners using OWASP Threat Dragon 系列文章 Part 1
可透過該系列文作者的 GitHub 存放庫 取得此 OpenID Connect, OAuth 2.0 相關的 OWASP Thread Dragon Demo 匯入檔案。
PS: 目前 OWASP Threat Dragon 的 v2.0 正在草擬設計中,可前往 https://www.threatdragon.com/docs/ 來了解,但請勿使用在正式的威型模型設計中。
BTW,由於 OWASP Threat Dragon 有個很可愛的吉祥物,以至於寫這篇文章的時候電腦畫面停在吉祥物身上很久,一直被小朋友狂打擾^^"
Threatspec 是一套開源軟體,希望透過此 Threadspec 的使用能進一步減少軟體與安全之間的距離。
https://github.com/threatspec/threatspec
上圖取自 Threatspec Github 的 ThreadModel 的介紹。
官網宣稱使用上有三大特點:
也可至其展示官網直接進行線上展示:
https://threatspec.org/website-dev/
不過,其優點沒有很吸引人就是...
若要挑上述三個工具的哪套來用呢?
"OWASP Threat Dragon" 可能是首選(可整合應用到相關開發生命週期方法論),但 "Microsoft Threat Modeling Tool" 則是可以拿來做學習 Threat Modeling 的部分。