引言
安全軟體發展生命週期 (Secure Software Development Life Cycle, SSDLC) 是一套在軟體開發各階段融入安全實務的流程,旨在開發安全可靠的軟體。本教材介紹 SSDLC 的定義、階段、實務做法,並以 21 點專題的線上遊戲開發為例,展示如何保護玩家資料與系統安全。適合初學者與開發者,幫助理解安全開發並熟悉英文 專業術語 (Terminology)。
一、定義
安全軟體發展生命週期是在傳統 軟體發展生命週期 (Software Development Life Cycle, SDLC) 的基礎上,整合安全考量,確保軟體免受 漏洞 (Vulnerabilities) 與攻擊。其核心目標包括:
- 降低 安全風險 (Security Risks),保護資料與系統。
- 確保符合 合規性 (Compliance) 要求(如 GDPR)。
- 提升軟體的 可靠性 (Reliability) 與 信任度 (Trustworthiness)。
二、主要階段
SSDLC 包含以下 6 個階段,融入安全活動:
- 安全需求分析 (Secure Requirements Analysis):定義安全需求,如資料加密與身分驗證。
- 安全設計 (Secure Design):設計安全架構,識別潛在 威脅 (Threats)。
- 安全開發 (Secure Development):撰寫安全程式碼,避免常見漏洞(如 SQL 注入)。
- 安全測試 (Secure Testing):執行 滲透測試 (Penetration Testing) 與漏洞掃描。
- 安全部署 (Secure Deployment):確保部署環境安全,如使用 HTTPS。
- 安全維護 (Secure Maintenance):監控威脅,定期更新與修補。
三、安全實務
SSDLC 強調以下常見安全實務:
- 威脅建模 (Threat Modeling):
- 識別潛在威脅與弱點,如未授權存取。
- 使用工具如 STRIDE 分析風險。
- 程式碼審查 (Code Review):
- 檢查程式碼,確保無安全漏洞。
- 使用靜態分析工具輔助。
- 滲透測試 (Penetration Testing):
- 模擬攻擊,測試系統防護能力。
- 驗證修補措施有效性。
四、應用於 21 點專題
以開發線上 21 點遊戲為例,SSDLC 的應用如下:
- 安全需求分析:要求玩家資料加密,防止資料外洩。
- 安全設計:採用 OAuth 身分驗證,進行威脅建模,識別如帳號盜用風險。
- 安全開發:使用安全的 JavaScript 框架,防範 XSS 攻擊。
- 安全測試:執行滲透測試,模擬駭客嘗試竊取玩家分數。
- 安全部署:部署於 HTTPS 伺服器,啟用防火牆。
- 安全維護:監控異常登入,定期更新依賴套件。
採用 敏捷模型 (Agile Model),在每次迭代融入安全檢查,確保遊戲安全。