iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
Security

建構安全軟體開發系列 第 17

建構安全軟體開發 EP 17

  • 分享至 

  • xImage
  •  

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

本篇是 建構安全軟體開發 系列文的 EP17。


建立威脅模型的工具、方法與流程

威脅模型的對於鑑別、溝通與了解威脅,也更有效的保護其資產價值。而威脅模型設計時可涵蓋的範圍相當廣泛,包含軟體、應用程式、系統、網路、分散式系統、IoT 設備,甚至可說沒有任何技術性的產品沒有威脅模型的存在。

要在開發的流程當中何時去規劃都可以,當然盡早將把威脅模型建立出來,就能越早提供檢視並發現問題所在加以防範。

而軟體威脅模型的建立指引概念為:

  • 選擇建立威脅模型的參與者
  • 在生命週期早期先設計
  • 決定什麼是高風險威脅
  • 將威脅模型文件化
  • 定期更新威脅模型

威脅模型的工具介紹

業界有幾個透過軟體開發社群就能取得的威脅模型工具,最常被提出來使用的為以下三者:

  1. Microsoft Threat Modeling Tool
  2. OWASP Threat Dragon
  3. Threatspec

Microsoft Threat Modeling Tool

https://docs.microsoft.com/azure/security/develop/threat-modeling-tool

約莫在 2000 年左右,微軟就設計了這個威脅模型工具供開發者去識別其軟體開發過程當中的威脅。

Microsoft Threat Modeling Tool
上圖取自 微軟官網 Threat Modeling Tool feature overview 的介紹。

若有需要透過 Click-to-Download 安裝。

Microsoft Thread Modeling Tool 內建提供了兩種範本模型:
Microsoft Thread Modeling Tool

軟體 DSL 範本較適合一般軟體開發使用:
Microsoft Thread Modeling Tool for DSL Model

Azure 的範本就較適合有使用 Azure 雲端應用的分析使用:
Microsoft Thread Modeling Tool for Azure Model

在微軟的 GitHub 存放庫中也可以找到其他的 Threat Modeling Templates 可供下載使用,有更多興趣可以到微軟的 Thread Modeling 網頁介紹中了解更多。

Thread Modeling

OWASP Threat Dragon

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/ 取得。
OWASP Threat Dragon

例如針對 "OpenID Connect, OAuth 2.0" 透過 OWASP Threat Dragon 所繪製的威脅模型:
OpenID-Connect-Data-flow-diagram-authorization-code-grant-flow
上圖取自 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/ 來了解,但請勿使用在正式的威型模型設計中。
OWASP Threat Dragon v2.0 Draft

BTW,由於 OWASP Threat Dragon 有個很可愛的吉祥物,以至於寫這篇文章的時候電腦畫面停在吉祥物身上很久,一直被小朋友狂打擾^^"

Threatspec

Threatspec 是一套開源軟體,希望透過此 Threadspec 的使用能進一步減少軟體與安全之間的距離。
https://github.com/threatspec/threatspec

threatspec
上圖取自 Threatspec Github 的 ThreadModel 的介紹。

官網宣稱使用上有三大特點:

  1. 可在程式碼當中加入安全威脅註記。
  2. 透過指令模式執行。
  3. 可指令直接產生其報表。

threatspec

也可至其展示官網直接進行線上展示:
https://threatspec.org/website-dev/

不過,其優點沒有很吸引人就是...

若要挑上述三個工具的哪套來用呢?

"OWASP Threat Dragon" 可能是首選(可整合應用到相關開發生命週期方法論),但 "Microsoft Threat Modeling Tool" 則是可以拿來做學習 Threat Modeling 的部分。



上一篇
建構安全軟體開發 EP 16
下一篇
建構安全軟體開發 EP 18
系列文
建構安全軟體開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言