Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
本篇是 建構安全軟體開發 系列文的 EP20。
在 OWASP 的描述當中,可透由以下的 For Question Framework 來詰問是否做到相關的 Threat Modeling 處理:
而由於可以有各式各樣的方式或技術回答上述的問題,所以不存在 "正確" 解,只存在 "適合" 解。
可參考 OWASP: Threat Modeling 文章內容。
而由於現今主流的 SDLC,已不再是 Waterfall 的概念,取而代之的是在一定的進程時間內,進行產品/服務的發佈或更新,加速使用者取得應用所產生的價值,因此 Threat Modeling 在這樣的 SDLC 方法論(如: Agile、DevOps...等)當中也應有所調整與應對。
概念上 Agile 的進程模型如下:
上圖取自 Lean – Agile – Startup – ITIL What if everything was linked 文章。
在進行每個 Sprint 的過程當中,皆須進行 Threat Modeling (TM)的分析,並且確認該 Sprint 的 Definition of Done (DoD) 的時候是否有對應該 Sprint 分析的 TM:
上圖取自 SAFECode: Tactical Threat Modeling 第 22 頁。
而 DevOps 是當前面對快速變動的環境所發展出因應的方法,而在 DevOps 當中很重要的一環是 CI/CD 的部分,要達成 CI/CD 必然需要自動化方案,透過對應的安全性檢查工具以及威脅模型分析檢驗,在 CI/CD 自動化方案當中進行檢查。
其 CI/CD Security Pipeline 的作為處理方針整理如下:
上述整理參考自 CI/CD Security - How to Secure Your CI/CD Pipeline 的第三節論述。
而對應其活動的處理動作大多都可以透過當前的 CI/CD 平台工具進行進行整合,例如 GitHub Security、Securing Azure Pipelines...等。
上圖取自 GitHub Security 網站頁面。
漏洞掃描工具對於找出可攻擊面積的過程是非常有用的,以下介紹幾個可用的工具:
偏 Web system 的分析:
Microsoft Attack Surface Analyzer:
https://github.com/Microsoft/AttackSurfaceAnalyzer
介紹文件:
https://github.com/Microsoft/AttackSurfaceAnalyzer/wiki/
OWASP Attack Surface Detector:
https://owasp.org/www-project-attack-surface-detector/
使用上透過:
https://github.com/secdec/attack-surface-detector-zap
或
https://github.com/secdec/attack-surface-detector-burp
來進行運用。
針對 Windows 作業系統分析工具
Sandbox Attack Surface Analysis Tools:
https://github.com/googleprojectzero/sandbox-attacksurface-analysis-tools
經過各項工具掃描後,不代表高風險就一定有漏洞,但在風險越高威脅就要越先評估其影響性,並且規畫該如何進行其威脅的排除至 剩餘風險 EP13。