總覽
OWASP SAMM(軟體保障成熟度模型)是一套開放框架,協助組織針對自身面臨的特定風險,擬定並落實軟體安全策略。它提供一種可量測、以風險為導向的方式,用以分析並改善組織整個安全軟體開發生命週期(SDLC),且刻意保持技術與流程中立,因此可適用於任何開發方法論、程式語言或工具鏈。
SAMM 是 OWASP 旗艦級專案,由 Seba Deleersnyder 與 Bart De Win 領導。它不規定建置軟體唯一「正確」的做法,而是讓組織評估現有實務、以明確定義的迭代來建立平衡的安全保障計畫,並隨時間展現具體、可量測的改善成果。
SAMM 為各類型組織提供一種有效且可量測的方式,以分析並改善其軟體安全態勢。
模型結構
SAMM v2 模型以五大核心業務功能(Business Functions)為架構,每一項代表建置與營運軟體時的關鍵活動領域。每個業務功能再細分為三項安全實務(Security Practices),合計共 15 項實務。
- 治理(Governance):策略與指標、政策與合規、教育與指引
- 設計(Design):威脅評估、安全需求、安全架構
- 實作(Implementation):安全建置、安全部署、缺陷管理
- 驗證(Verification):架構評估、需求導向測試、安全測試
- 營運(Operations):事件管理、環境管理、營運管理
15 項安全實務又各自細分為兩條工作流(Streams),即兩組相關但不同、並行成熟的活動。每條工作流中的活動對應到三個成熟度等級(1 至 3 級),呈現從初步、臨時性的採用(第 1 級)逐步進展到全面精通與持續改善(第 3 級)的成長路徑。
評估
組織可使用 SAMM 評估工具箱(Assessment Toolbox)量測目前的態勢,該試算表同時提供 Microsoft Excel 與 Google 試算表兩種版本。其中「Interview」分頁針對模型中每項活動提出問題,當記錄答案時,「Scorecard」分頁會自動計算每項安全實務的成熟度分數。評估可採輕量自評,或透過利害關係人訪談與工作坊進行更詳細的評鑑。
- 依三個成熟度等級為 15 項實務評分,以掌握現況
- 將現況分數與目標成熟度進行比較,執行差距分析
- 建立優先排序的活動路線圖,於連續迭代中逐步彌補差距
- 定期重新評估以追蹤進度,並展現可量測的改善成效
- (選用)將匿名化結果提交至 SAMM Benchmarking,以與同業比較
使用方式
SAMM 的設計是反覆迭代使用,而非一次性稽核。典型導入流程會先量測組織當前的軟體安全態勢,接著依業務風險設定務實的目標成熟度等級,最後建立改善路線圖,將活動排序成可達成的階段。透過連續迭代,在最關鍵之處提升成熟度。
- 對現有能力進行基準量測,辨識最薄弱的實務並排定優先順序
- 依組織的風險胃納定義目標成熟度輪廓
- 以共通、共享的詞彙推動並治理企業級應用安全(AppSec)計畫
- 與同業比較成熟度,並向高階主管回報進度
發展歷程
SAMM 最初是由 Pravir Chandra 於 2009 年發布的 OpenSAMM 1.0。專案後續納入 OWASP 旗下,並沿著 1.x 系列演進(含 v1.5)。2020 年 2 月,專案團隊發布 SAMM v2.0,這是一次徹底改寫,引入工作流(Streams)概念並重整各項實務,目前模型維護在 v2.0.3(2022 年)。該框架以 CC BY-SA 4.0 授權發布,並以社群貢獻方式公開開發。