引言
安全軟體發展生命週期 (Secure Software Development Life Cycle, SSDLC) 將安全實務融入軟體開發的每個階段,確保系統免受 漏洞 (Vulnerabilities) 與攻擊。本教材透過實務範例與解析,介紹 SSDLC 的各階段做法,以 21 點線上遊戲開發為例,展示如何保護玩家資料與遊戲安全。適合開發者與學生,幫助實踐安全開發並熟悉英文 專業術語 (Terminology)。
一、分析階段
工作內容:辨識系統的 安全需求 (Security Requirements) 與潛在 風險 (Risks)。
實務範例(21 點遊戲):
- 玩家資料(如帳號、積分)是否需 加密儲存 (Encrypted Storage)?
- 遊戲中是否有金流功能(如內購)?如何防止 資料外洩 (Data Breach)?
解析:
- 若未提早考慮安全性,後期修補成本高且風險大。
- 使用 威脅建模 (Threat Modeling) 工具(如 Microsoft Threat Modeling Tool)識別攻擊面,例如未授權存取玩家資料。
二、設計階段
工作內容:設計安全的 資料處理 (Data Processing)、存取控制 (Access Control) 與防禦機制。
實務範例(21 點遊戲):
- 玩家密碼使用 bcrypt 演算法 (bcrypt Algorithm) 加密儲存。
- 導入 角色權限控管 (Role-based Access Control, RBAC),區分玩家與管理員權限。
解析:
- 採用 安全設計模式 (Secure Design Patterns),如最小權限原則。
- 避免 安全反模式 (Security Anti-patterns),如硬編密碼或全開放 API。
三、開發階段
工作內容:撰寫安全的程式碼,避免常見 漏洞 (Vulnerabilities)。
實務範例(21 點遊戲):
- 玩家輸入表單進行 HTML 編碼 (HTML Encoding),防止 跨站腳本攻擊 (Cross-Site Scripting, XSS)。
- 使用 物件關聯映射 (Object-Relational Mapping, ORM) 工具(如 Sequelize)避免 SQL 注入 (SQL Injection)。
解析:
- 遵循 安全編碼指南 (Secure Coding Guidelines),如 OWASP 標準。
- 在 CI/CD 流程中引入 靜態分析 (Static Analysis) 工具(如 SonarQube)掃描程式碼弱點。
四、測試階段
工作內容:進行 安全測試 (Security Testing) 與 滲透測試 (Penetration Testing),找出潛在弱點。
實務範例(21 點遊戲):
- 使用 OWASP ZAP 或 Burp Suite 進行自動化 漏洞掃描 (Vulnerability Scanning)。
- 模擬攻擊者進行 登入爆破 (Brute Force Attack) 或繞過 身分驗證 (Authentication) 機制。
解析:
- 滲透測試不僅驗證功能,更聚焦 資安風險 (Security Risks)。
- 與第三方 資安顧問 (Security Consultants) 合作,取得客觀測試報告。
五、部署階段
工作內容:安全地部署系統,避免暴露 風險 (Risks)。
實務範例(21 點遊戲):
- 部署至雲端時,啟用 防火牆 (Firewall) 與 網頁應用防火牆 (Web Application Firewall, WAF)。
- 禁用預設帳號與密碼,確保無 硬編憑證 (Hardcoded Credentials)。
解析:
- CI/CD 流程應加入 安全審查關卡 (Security Gates)。
- 記錄 審計日誌 (Audit Log),追蹤部署版本與變更。
六、維護階段
工作內容:定期更新、修補漏洞、持續監控。
實務範例(21 點遊戲):
- 定期更新 第三方函式庫 (Third-Party Libraries),避免使用含漏洞版本(如 Log4j)。
- 使用 安全事件監控 (Security Incident Monitoring) 系統(如 ELK Stack)追蹤異常登入。
解析:
- 維護期需長期進行 風險管理 (Risk Management)。
- 導入 CVE 掃描 (CVE Scanning) 與自動修補(如 GitHub Dependabot)。
七、小結
SSDLC 透過系統性安全實務,顯著提升軟體安全性。以下為 SSDLC 與傳統 SDLC 的比較:
| 面向 | 傳統 SDLC | SSDLC |
|---|---|---|
| 安全性處理 | 開發後補救 | 開發中預防 |
| 成本 | 高風險高修補成本 | 初期投入,長期節省 |
| 資安風險 | 隨機事件反應 | 系統性風險管理 |