安全軟體發展生命週期 (SSDLC) 基礎概念

掌握 安全軟體發展生命週期 (Secure Software Development Life Cycle) 的核心指南

弘光科技大學智慧科技應用系 助理教授 陳富國

引言

安全軟體發展生命週期 (Secure Software Development Life Cycle, SSDLC) 是一套在軟體開發各階段融入安全實務的流程,旨在開發安全可靠的軟體。本教材介紹 SSDLC 的定義、階段、實務做法,並以 21 點專題的線上遊戲開發為例,展示如何保護玩家資料與系統安全。適合初學者與開發者,幫助理解安全開發並熟悉英文 專業術語 (Terminology)。

一、定義

安全軟體發展生命週期是在傳統 軟體發展生命週期 (Software Development Life Cycle, SDLC) 的基礎上,整合安全考量,確保軟體免受 漏洞 (Vulnerabilities) 與攻擊。其核心目標包括:

  • 降低 安全風險 (Security Risks),保護資料與系統。
  • 確保符合 合規性 (Compliance) 要求(如 GDPR)。
  • 提升軟體的 可靠性 (Reliability) 與 信任度 (Trustworthiness)。

二、主要階段

SSDLC 包含以下 6 個階段,融入安全活動:

  1. 安全需求分析 (Secure Requirements Analysis):定義安全需求,如資料加密與身分驗證。
  2. 安全設計 (Secure Design):設計安全架構,識別潛在 威脅 (Threats)。
  3. 安全開發 (Secure Development):撰寫安全程式碼,避免常見漏洞(如 SQL 注入)。
  4. 安全測試 (Secure Testing):執行 滲透測試 (Penetration Testing) 與漏洞掃描。
  5. 安全部署 (Secure Deployment):確保部署環境安全,如使用 HTTPS。
  6. 安全維護 (Secure Maintenance):監控威脅,定期更新與修補。

三、安全實務

SSDLC 強調以下常見安全實務:

  • 威脅建模 (Threat Modeling):
    • 識別潛在威脅與弱點,如未授權存取。
    • 使用工具如 STRIDE 分析風險。
  • 程式碼審查 (Code Review):
    • 檢查程式碼,確保無安全漏洞。
    • 使用靜態分析工具輔助。
  • 滲透測試 (Penetration Testing):
    • 模擬攻擊,測試系統防護能力。
    • 驗證修補措施有效性。

四、應用於 21 點專題

以開發線上 21 點遊戲為例,SSDLC 的應用如下:

  • 安全需求分析:要求玩家資料加密,防止資料外洩。
  • 安全設計:採用 OAuth 身分驗證,進行威脅建模,識別如帳號盜用風險。
  • 安全開發:使用安全的 JavaScript 框架,防範 XSS 攻擊。
  • 安全測試:執行滲透測試,模擬駭客嘗試竊取玩家分數。
  • 安全部署:部署於 HTTPS 伺服器,啟用防火牆。
  • 安全維護:監控異常登入,定期更新依賴套件。

採用 敏捷模型 (Agile Model),在每次迭代融入安全檢查,確保遊戲安全。