安全需求清單範本(Security Requirements Checklist)

參照標準:OWASP ASVS 4.0.3(Application Security Verification Standard)/ ISO/IEC 27001:2022 Annex A
文件用途:定義系統應滿足的安全需求,確保設計與開發階段納入安全考量
適用階段:需求分析階段(Requirements Phase)— Security by Design


📋 章節目錄

  1. 文件資訊
  2. 安全需求概述
  3. 認證需求
  4. 授權與存取控制
  5. 資料保護需求
  6. 輸入驗證與輸出編碼
  7. Session 管理
  8. 日誌與監控需求
  9. 通訊安全
  10. 組態安全
  11. 合規性需求
  12. 附錄

1. 文件資訊

📝 範本

項目內容
文件編號SR-{專案代碼}-{序號}
文件名稱{系統名稱} 安全需求清單
版本v{主版本}.{次版本}
狀態草稿 / 審核中 / 核定
建立日期{YYYY-MM-DD}
撰寫者{姓名/角色}
資安審核者{資安人員姓名}
ASVS LevelLevel 1 / Level 2 / Level 3

📖 使用說明

  • 依據 OWASP ASVS 4.0.3 標準,安全需求分為三個驗證等級:
    • Level 1:所有應用程式的最低標準
    • Level 2:處理敏感資料的應用程式
    • Level 3:最高安全等級(金融、醫療、關鍵基礎設施)
  • 本清單在需求階段制定,貫穿整個 SDLC(設計需遵循、開發需實作、測試需驗證)

💡 範例

項目內容
文件編號SR-HRM-001
系統名稱人力資源管理系統
ASVS LevelLevel 2(處理員工個資與薪資資料)

2. 安全需求概述

📝 範本

2.1 系統安全分類

項目評估
資料敏感度一般 / 敏感 / 高度敏感
系統曝露面內部 / 外部 / 混合
使用者類型內部員工 / 外部客戶 / 合作夥伴
法規要求{適用法規}
安全等級ASVS Level {1/2/3}

2.2 安全需求追溯矩陣

安全需求 ID需求描述ASVS 章節對應 FRD優先級
SEC-{xxx}{描述}V{x}.{x}FR-{xxx}高/中/低

📖 使用說明

  • 安全分類決定應套用的 ASVS Level
  • 追溯矩陣確保每個安全需求可連結到 FRD 需求與 ASVS 標準章節
  • 優先級考量:法規強制 > 高風險 > 一般防護

💡 範例

2.1 系統安全分類

項目評估
資料敏感度高度敏感(身分證字號、薪資、銀行帳號)
系統曝露面混合(內部網路 + VPN 遠端存取)
使用者類型內部員工(全體) + HR 管理人員
法規要求個人資料保護法、勞動基準法
安全等級ASVS Level 2

3. 認證需求(Authentication)

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-AUTH-001{認證需求描述}V2.{x}L{N}必須/建議
SEC-AUTH-002{認證需求描述}V2.{x}L{N}必須/建議

📖 使用說明

  • 對應 OWASP ASVS V2(Authentication)章節
  • Level 1:基本密碼安全;Level 2:多因子認證(MFA);Level 3:硬體認證
  • 認證需求需涵蓋:密碼策略、帳號鎖定、MFA、SSO

💡 範例

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-AUTH-001密碼長度至少 12 字元V2.1.1L1必須
SEC-AUTH-002帳號連續 5 次登入失敗後鎖定 30 分鐘V2.2.1L1必須
SEC-AUTH-003管理員帳號啟用多因子認證(MFA)V2.8.1L2必須
SEC-AUTH-004整合企業 AD 實現 SSO 登入V2.7.1L2必須
SEC-AUTH-005密碼不儲存明文,使用 bcrypt/Argon2 雜湊V2.4.1L1必須
SEC-AUTH-006Token 過期時間 ≤ 15 分鐘(Access Token)V2.8.5L2必須

4. 授權與存取控制(Authorization)

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-AUTHZ-001{授權需求描述}V4.{x}L{N}必須/建議

📖 使用說明

  • 對應 OWASP ASVS V4(Access Control)章節
  • 遵循最小權限原則(Principle of Least Privilege)
  • 需求涵蓋:RBAC/ABAC 模型、水平/垂直權限控制、API 授權

💡 範例

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-AUTHZ-001實施 RBAC 角色權限控制(Admin/Manager/Employee)V4.1.1L1必須
SEC-AUTHZ-002使用者僅能存取自己的薪資/假勤資料(水平權限)V4.1.2L1必須
SEC-AUTHZ-003API 端點實施授權檢查,拒絕未授權請求回傳 403V4.1.3L1必須
SEC-AUTHZ-004管理功能(帳號管理、系統設定)限 Admin 角色V4.2.1L1必須
SEC-AUTHZ-005所有權限變更需記錄稽核日誌V4.3.1L2必須

5. 資料保護需求(Data Protection)

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-DATA-001{資料保護需求描述}V6.{x}/V8.{x}L{N}必須/建議

敏感資料識別

資料欄位敏感等級加密方式遮罩方式保留期限
{欄位}高/中/低{加密}{遮罩}{期限}

📖 使用說明

  • 對應 OWASP ASVS V6(Stored Cryptography)與 V8(Data Protection)
  • 敏感資料需先識別、再定義保護策略
  • 保護措施包含:傳輸加密、靜態加密、資料遮罩、存取控制、保留/銷毀策略

💡 範例

敏感資料識別

資料欄位敏感等級加密方式遮罩方式保留期限
身分證字號AES-256 (靜態)A1234****9離職後 5 年
銀行帳號AES-256 (靜態)--1234離職後 5 年
薪資金額AES-256 (靜態)不遮罩(權限控制)永久
手機號碼無(權限控制)09xx-xxx-789離職後 2 年
Email離職後 2 年
需求 ID需求描述ASVS 參照Level必須/建議
SEC-DATA-001個資欄位靜態加密儲存(AES-256)V6.2.1L2必須
SEC-DATA-002所有傳輸使用 TLS 1.2+V9.1.1L1必須
SEC-DATA-003日誌中禁止記錄敏感資料明文V8.3.1L1必須
SEC-DATA-004資料庫備份亦需加密V6.2.3L2必須

6. 輸入驗證與輸出編碼

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-INPUT-001{輸入驗證需求}V5.{x}L{N}必須/建議

📖 使用說明

  • 對應 OWASP ASVS V5(Validation, Sanitization and Encoding)
  • 防禦 OWASP Top 10 中的注入攻擊(SQL Injection、XSS、Command Injection)
  • 原則:永不信任使用者輸入,伺服器端必須驗證

💡 範例

需求 ID需求描述ASVS 參照Level必須/建議
SEC-INPUT-001所有使用者輸入在伺服器端進行驗證(白名單)V5.1.1L1必須
SEC-INPUT-002使用參數化查詢防止 SQL InjectionV5.3.4L1必須
SEC-INPUT-003HTML 輸出使用 Context-Aware 編碼防止 XSSV5.3.3L1必須
SEC-INPUT-004檔案上傳驗證副檔名、MIME Type、大小限制V5.1.4L1必須
SEC-INPUT-005API 輸入限制 Content-Length,防止 DoSV5.1.5L1必須

7. Session 管理

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-SESS-001{Session 管理需求}V3.{x}L{N}必須/建議

📖 使用說明

  • 對應 OWASP ASVS V3(Session Management)
  • Session 管理攸關身份劫持風險
  • 需求涵蓋:Session ID 強度、過期設定、Cookie 安全屬性

💡 範例

需求 ID需求描述ASVS 參照Level必須/建議
SEC-SESS-001Session ID 長度 ≥ 128 bits,由加密安全亂數產生V3.2.1L1必須
SEC-SESS-002Cookie 設定 HttpOnly、Secure、SameSite=StrictV3.4.1L1必須
SEC-SESS-003閒置 30 分鐘後自動登出V3.3.1L1必須
SEC-SESS-004登入後重新產生 Session ID(防 Fixation)V3.2.3L1必須
SEC-SESS-005支援使用者查看與終止其他裝置 SessionV3.3.4L2建議

8. 日誌與監控需求

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-LOG-001{日誌監控需求}V7.{x}L{N}必須/建議

稽核事件定義

事件類型記錄內容保留期限
{事件}{需記錄的欄位}{期限}

📖 使用說明

  • 對應 OWASP ASVS V7(Error Handling and Logging)
  • 日誌是事後追查與即時偵測的基礎
  • 重點:記什麼、不記什麼(禁止記錄密碼/Token)、保存多久

💡 範例

需求 ID需求描述ASVS 參照Level必須/建議
SEC-LOG-001記錄所有認證事件(登入成功/失敗/登出)V7.1.1L1必須
SEC-LOG-002記錄所有授權失敗事件V7.1.2L1必須
SEC-LOG-003日誌中禁止包含 Session Token、密碼、個資V7.1.3L1必須
SEC-LOG-004日誌保留 ≥ 90 天,不可竄改V7.3.1L2必須
SEC-LOG-005連續 5 次認證失敗觸發即時告警V7.4.1L2必須

稽核事件定義

事件類型記錄內容保留期限
登入成功時間、帳號、IP、User-Agent180 天
登入失敗時間、帳號、IP、失敗原因180 天
權限變更時間、操作者、變更內容365 天
個資存取時間、帳號、存取的個資類型365 天
資料匯出時間、帳號、匯出範圍、筆數365 天

9. 通訊安全

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-COMM-001{通訊安全需求}V9.{x}L{N}必須/建議

📖 使用說明

  • 對應 OWASP ASVS V9(Communication)
  • 保護傳輸中資料不被竊聽或竄改
  • 涵蓋:TLS 版本、憑證管理、HSTS、內部通訊加密

💡 範例

需求 ID需求描述ASVS 參照Level必須/建議
SEC-COMM-001所有外部通訊使用 TLS 1.2 以上V9.1.1L1必須
SEC-COMM-002啟用 HSTS(max-age ≥ 1 年)V9.1.2L1必須
SEC-COMM-003伺服器憑證由受信任 CA 簽發V9.2.1L1必須
SEC-COMM-004服務間(微服務)通訊使用 mTLSV9.2.2L2建議
SEC-COMM-005禁用 SSL 3.0、TLS 1.0/1.1V9.1.3L1必須

10. 組態安全

📝 範本

需求 ID需求描述ASVS 參照Level必須/建議實作狀態
SEC-CFG-001{組態安全需求}V14.{x}L{N}必須/建議

📖 使用說明

  • 對應 OWASP ASVS V14(Configuration)
  • 安全組態確保系統不因錯誤設定而暴露弱點
  • 涵蓋:預設帳號、除錯模式、HTTP 安全標頭、依賴管理

💡 範例

需求 ID需求描述ASVS 參照Level必須/建議
SEC-CFG-001正式環境禁止開啟除錯模式 / 詳細錯誤訊息V14.1.1L1必須
SEC-CFG-002移除或停用所有預設帳號與密碼V14.1.2L1必須
SEC-CFG-003設定安全 HTTP Headers(CSP, X-Frame-Options 等)V14.4.1L1必須
SEC-CFG-004第三方依賴無已知 High/Critical CVEV14.2.1L1必須
SEC-CFG-005機敏設定(DB 連線字串、API Key)使用 Secret ManagerV14.1.5L2必須

11. 合規性需求

📝 範本

法規/標準適用條款系統需求對應實作狀態
{法規名稱}{條款}{系統需滿足的具體需求}

📖 使用說明

  • 列出系統需遵循的法規、產業標準、企業政策
  • 每條法規要求需轉化為可驗證的技術需求
  • 常見法規:個人資料保護法、GDPR、PCI DSS、ISO 27001

💡 範例

法規/標準適用條款系統需求對應實作狀態
個人資料保護法第 27 條(安全維護措施)個資加密儲存、存取控制、稽核日誌
個人資料保護法第 11 條(當事人權利)提供個資查詢、更正、刪除功能
ISO 27001:2022A.8.3(存取控制)RBAC 實作
ISO 27001:2022A.8.24(密碼學使用)TLS 1.2+、AES-256 加密
公司資安政策密碼政策 v3.012 字元 + 複雜度 + 90 天更換

12. 附錄

📝 範本

12.1 安全需求完成度統計

類別總需求數已實作未實作完成率
認證(AUTH){N}{N}{N}{%}
授權(AUTHZ){N}{N}{N}{%}
資料保護(DATA){N}{N}{N}{%}
輸入驗證(INPUT){N}{N}{N}{%}
Session(SESS){N}{N}{N}{%}
日誌監控(LOG){N}{N}{N}{%}
通訊安全(COMM){N}{N}{N}{%}
組態安全(CFG){N}{N}{N}{%}
合計{N}{N}{N}{%}

12.2 OWASP ASVS 對照表

ASVS 章節主題本文件對應章節
V2Authentication第 3 章
V3Session Management第 7 章
V4Access Control第 4 章
V5Validation第 6 章
V6Stored Cryptography第 5 章
V7Error Handling & Logging第 8 章
V8Data Protection第 5 章
V9Communication第 9 章
V14Configuration第 10 章

📖 使用說明

  • 完成度統計用於追蹤安全需求落實進度
  • 所有「必須」等級的需求需在上線前 100% 實作
  • ASVS 對照表協助資安審核人員快速定位驗證範圍

💡 範例

12.1 安全需求完成度統計

類別總需求數已實作未實作完成率
認證(AUTH)65183%
授權(AUTHZ)54180%
資料保護(DATA)440100%
輸入驗證(INPUT)550100%
Session(SESS)54180%
日誌監控(LOG)53260%
通訊安全(COMM)550100%
組態安全(CFG)54180%
合計4034685%

📌 範本使用注意事項

  1. 本範本依據 OWASP ASVS 4.0.3 與 ISO/IEC 27001:2022 Annex A 編製
  2. 安全需求清單需在需求分析階段完成,並貫穿整個 SDLC
  3. 「必須」等級需求為上線前必須滿足的最低標準
  4. 搭配「威脅模型範本」使用,將威脅分析結果轉化為安全需求
  5. 定期更新(至少每半年),因應新威脅與法規變更