SSDLC 是什麼?安全軟體開發生命週期的階段、安全活動與 DevSecOps 差異

SSDLC 是什麼?安全軟體開發生命週期的階段、安全活動與 DevSecOps 差異

資安事件發生後才補洞,成本往往是開發階段就處理的數十倍。SSDLC(Secure Software Development Life Cycle,安全軟體開發生命週期)的核心精神就是「安全左移」:把安全要求放進需求、設計、開發、測試到維運的每個階段。這篇整理 SSDLC 的階段劃分、各階段該做的安全工作,以及和 DevSecOps、相關標準的關係。

SSDLC是安全軟體開發生命週期,是一套完整面向Web和APP開發的安全開發方法。幫助軟體企業降低安全問題,提升軟體安全品質。SSDLC的理念來源於微軟SDL,最終目標是幫助使用者減少安全性問題,並使用該方法從每個階段提高總體安全等級。

根據各階段定義可分為:

  1. 分析設計(Define)
  2. 架構設計(Design)
  3. 程式實作(Develop)
  4. 系統測試(Test)
  5. 分發部署(Deploy)
  6. 運作與維護(Maintain)
  7. 變更管理(Change)

特性

SSDLC與SDLC的差異多了個Secure,也就是導入安全性的思維,降低了系統後續維護的成本,以及遭受到攻擊行為的損失。

各階段安全之安全工作要求

  1. 分析設計階段:資安措施的分析與規劃
  2. 架構設計階段:系統任務目標、功能關聯、邊界範圍,作為程式實作階段的基礎
  3. 程式實作階段:資安防護最重要的一環,針對可能入侵手法建立防護機制
  4. 系統測試階段:已知的攻擊手法是否能夠防禦
  5. 分發部署階段:軟體控管以及人員教育訓練
  6. 運作與維護階段:資安防護措施的持續維護
  7. 變更管理階段:因應變化定期更改各階段的程序

如何測試

可參考本網站提供之Web類別使用工具文章。

Web

其他資源

推薦這部YT,講得很詳細。

參考資料

  1. 賴溪松 – 安全的系統發展生命週期(SSDLC)介紹

SSDLC 各階段常見的安全活動

階段安全活動常用工具或產出
需求分析定義安全需求、資料分類、法規遵循要求安全需求清單、OWASP ASVS
架構設計威脅建模、安全架構審查、權限設計STRIDE、Microsoft Threat Modeling Tool
程式實作安全程式碼規範、靜態程式碼分析(SAST)、套件弱點檢查(SCA)SonarQube、Semgrep、Dependabot
系統測試動態測試(DAST)、弱點掃描、滲透測試OWASP ZAP、Burp Suite、OpenVAS
分發部署安全組態檢查、機敏資料與金鑰管理CIS Benchmark、Secrets 管理工具
運作維護弱點修補、日誌監控、事件應變SIEM、ELK、WAF
變更管理變更前安全評估、回歸測試變更紀錄、Code Review

SSDLC 和 DevSecOps 有什麼不同?

兩者目標一致,差別在落實方式。SSDLC 是一套階段性的開發方法論,強調每個階段都要有安全檢查點;DevSecOps 則是在 CI/CD 自動化流程中嵌入安全檢測,讓 SAST、SCA、容器掃描在每次提交時自動執行。實務上常以 SSDLC 定義「要做什麼」,再用 DevSecOps 的工具鏈決定「怎麼自動化做」。

相關標準與框架

  • Microsoft SDL:SSDLC 概念的主要源頭
  • NIST SP 800-218(SSDF):美國政府採購軟體時參考的安全開發框架
  • OWASP SAMM:評估組織安全開發成熟度的模型
  • 台灣資通安全管理法:資通系統防護基準要求依系統防護等級,在開發生命週期各階段落實安全要求,公部門委外開發專案常會要求廠商提出 SSDLC 文件

延伸閱讀

You may also like