安全測試與弱點掃描報告範本(Security Scan Report Template)

安全測試與弱點掃描報告範本(Security Scan Report Template) 適用標準:OWASP Testing Guide v4.2、CVSS 3.1(Common Vulnerability Scoring System)、CWE 適用階段:測試驗證階段(Testing Phase) 負責角色:AppSec 工程師、資安測試人員、QA Lead 📑 章節目錄 文件資訊 測試摘要 測試範圍與方法 弱點總覽 弱點詳細報告 合規檢核結果 修復計畫 結論與建議 附錄 📝 範本 1. 文件資訊 項目 內容 文件名稱 [系統名稱] 安全測試報告 文件編號 [專案代碼]-STR-[版本號]-[日期] 版本 v[X.Y] 測試日期 [YYYY-MM-DD] ~ [YYYY-MM-DD] 測試人員 [AppSec 團隊 / 外部廠商] 審核者 [CISO / 資安主管] 資料分級 Confidential 2. 測試摘要 項目 內容 測試類型 [SAST / DAST / SCA / Penetration Test / 組合] 受測版本 [Application version / Commit hash] 測試結果總評 [✅ PASS / ⚠️ CONDITIONAL PASS / ❌ FAIL] 上線決策 [可上線 / 修復後可上線 / 不可上線] 弱點統計 嚴重度 數量 已修復 待修復 接受風險 Critical [N] [N] [N] [N] High [N] [N] [N] [N] Medium [N] [N] [N] [N] Low [N] [N] [N] [N] Info [N] — — — Total [N] [N] [N] [N] 3. 測試範圍與方法 3.1 測試範圍 項目 內容 目標系統 [系統名稱 + URL/IP] 測試範圍 [In-scope modules / endpoints] 排除範圍 [Out-of-scope,如第三方元件] 認證帳號 [測試用帳號角色清單(不含密碼)] 3.2 測試方法 測試類型 工具 版本 說明 SAST(靜態分析) [SonarQube / Checkmarx / Semgrep] [ver] 原始碼分析 DAST(動態分析) [OWASP ZAP / Burp Suite Pro] [ver] 執行期掃描 SCA(套件分析) [Snyk / OWASP Dependency-Check / Trivy] [ver] 第三方套件弱點 手動測試 [Burp Suite / Custom scripts] — 邏輯弱點 Container Scan [Trivy / Aqua] [ver] 容器映像掃描 3.3 測試依據 標準/指南 涵蓋項目 OWASP Top 10 (2021) A01~A10 OWASP API Security Top 10 (2023) 全部 OWASP ASVS v4.0.3 [Level 1 / Level 2 / Level 3] CWE Top 25 (2023) 常見弱點 4. 弱點總覽 4.1 依嚴重度分佈 嚴重度 CVSS 分數範圍 修復 SLA 數量 Critical 9.0 – 10.0 24 小時 [N] High 7.0 – 8.9 7 天 [N] Medium 4.0 – 6.9 30 天 [N] Low 0.1 – 3.9 90 天 [N] Info 0.0 視需要 [N] 4.2 依類型分佈 弱點類型(CWE) 數量 嚴重度分佈 [CWE-XXX: 弱點名稱] [N] [C:N / H:N / M:N / L:N] [CWE-XXX: 弱點名稱] [N] [C:N / H:N / M:N / L:N] 4.3 依 OWASP Top 10 分佈 OWASP Category 弱點數量 最高嚴重度 A01: Broken Access Control [N] [Critical/High/…] A02: Cryptographic Failures [N] A03: Injection [N] A04: Insecure Design [N] A05: Security Misconfiguration [N] A06: Vulnerable Components [N] A07: Auth Failures [N] A08: Software & Data Integrity [N] A09: Logging & Monitoring Failures [N] A10: SSRF [N] 5. 弱點詳細報告 VULN-[NNN]: [弱點標題] 項目 內容 弱點 ID VULN-[NNN] 嚴重度 [Critical / High / Medium / Low] CVSS 分數 [N.N] CVSS Vector [CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H] CWE CWE-[NNN]: [名稱] OWASP [A01 / A02 / …] 發現工具 [SAST / DAST / Manual] 受影響元件 [模組/檔案/API endpoint] 狀態 [Open / Fixed / Accepted / False Positive] 描述: ...

May 18, 2026 · 4 min · 770 words · Eric Cheng

安全設計文件範本(Security Design Document Template)

安全設計文件範本(Security Design Document Template) 適用標準:OWASP SAMM 2.0、ISO/IEC 27034(應用安全)、NIST SP 800-53、ISO/IEC 27001:2022 適用階段:系統設計階段(Design Phase) 負責角色:資安架構師、系統架構師(SA)、AppSec 工程師 📑 章節目錄 文件資訊 安全設計目標 身分驗證設計(Authentication) 授權與存取控制(Authorization) 資料保護設計 API 安全設計 Session 管理 輸入驗證與輸出編碼 日誌與稽核設計 安全組態基線 安全測試策略 📝 範本 1. 文件資訊 項目 內容 文件名稱 [系統名稱] 安全設計文件 文件編號 [專案代碼]-SDD-[版本號] 版本 v[X.Y] 建立日期 [YYYY-MM-DD] 撰寫者 [資安架構師] 審核者 [CISO / 資安團隊] 資料分級 [Confidential / Internal] 關聯文件 文件 關係 威脅模型(Threat Model) 風險識別來源 安全需求清單 需求依據 系統架構文件(SAD) 架構背景 2. 安全設計目標 2.1 安全原則 原則 說明 實施方式 Defense in Depth 多層防禦 [每層防護機制] Least Privilege 最小權限 [RBAC + 預設拒絕] Fail Secure 安全失敗 [錯誤處理不暴露資訊] Separation of Duties 職責分離 [設計/部署/維運分離] Zero Trust 零信任 [每次存取都驗證] 2.2 合規需求 法規/標準 適用條款 設計對應 [個資法 / GDPR] [條款] [§5 資料保護] [ISO 27001] [A.8 / A.9] [§3, §4] [OWASP Top 10] [全部] [§6, §8] [PCI DSS] [條款,如適用] [§5] 3. 身分驗證設計(Authentication) 3.1 驗證機制 項目 設計 驗證協定 [OAuth 2.0 + OIDC / SAML 2.0 / Custom] IdP 選擇 [Azure AD / Keycloak / Auth0 / 自建] MFA 策略 [強制 / 條件式 / 僅特權帳號] MFA 方式 [TOTP / SMS / Push / FIDO2] 密碼政策 [長度/複雜度/歷史/鎖定策略] 3.2 密碼儲存 項目 設計 Hash 演算法 [bcrypt / Argon2id / PBKDF2] Cost Factor [rounds / iterations] Salt [Per-user random salt] 3.3 Token 設計 Token 類型 格式 有效期 儲存位置 備註 Access Token [JWT / Opaque] [N min] [Memory / HttpOnly Cookie] Refresh Token [Opaque] [N days] [HttpOnly Secure Cookie] 單次使用 ID Token [JWT] [N min] [Memory] 不傳給後端 API 3.4 驗證流程圖 sequenceDiagram participant U as User participant C as Client App participant IDP as Identity Provider participant API as API Server U->>C: 點擊登入 C->>IDP: Authorization Request (PKCE) IDP->>U: 顯示登入頁面 U->>IDP: 輸入帳號/密碼 + MFA IDP->>C: Authorization Code C->>IDP: Token Exchange (code + code_verifier) IDP->>C: Access Token + Refresh Token + ID Token C->>API: API Request + Access Token (Bearer) API->>API: Validate Token (signature + claims) API->>C: Response 4. 授權與存取控制(Authorization) 4.1 存取控制模型 項目 設計 模型 [RBAC / ABAC / ReBAC / 混合] 角色層級 [平面 / 階層式] 權限粒度 [功能級 / 資料級 / 欄位級] 4.2 角色定義 角色 ID 角色名稱 說明 預設權限 [ROLE_ID] [名稱] [角色描述] [權限摘要] 4.3 權限矩陣 功能/資源 [角色A] [角色B] [角色C] [Admin] [功能1] R CRUD R CRUD [功能2] — R CRUD CRUD [功能3] RU (own) RU (dept) CRUD CRUD 4.4 資料級權限 規則 描述 實施方式 Row-Level Security [使用者只能看自己的資料] [DB RLS / Application Filter] Column-Level Security [敏感欄位依角色遮罩] [View / API 過濾] 部門隔離 [只能存取所屬部門資料] [tenant_id / dept_id filter] 5. 資料保護設計 5.1 加密策略 場景 方法 演算法 金鑰管理 傳輸中(In Transit) TLS [TLS 1.3 / 1.2] [憑證管理方式] 靜態儲存(At Rest) [TDE / Application-level] [AES-256-GCM] [KMS / Vault] 欄位加密 Application-level [AES-256-GCM] [KMS / Vault] 備份加密 File-level [AES-256] [KMS] 5.2 金鑰管理 項目 設計 KMS 工具 [AWS KMS / Azure Key Vault / HashiCorp Vault] 金鑰輪換 [每 N 天自動輪換] 金鑰存取控制 [IAM Policy / RBAC] 金鑰備份 [異地備份策略] 5.3 個資處理 個資欄位 蒐集目的 保留期限 匿名化方式 刪除策略 [欄位] [用途] [N 年] [Masking / Hashing / Tokenization] [Hard delete / Crypto-shred] 6. API 安全設計 6.1 API 認證授權 項目 設計 認證方式 [Bearer Token (JWT) / API Key / mTLS] 授權檢查點 [API Gateway / Application / Both] Scope/Permission [resource:action 格式] 6.2 API 防護 防護措施 設計 工具 Rate Limiting [N requests / minute per user] [API Gateway / Redis] Request Size Limit [N MB] [Nginx / Gateway] IP Whitelist(如適用) [特定 API 限制來源 IP] [WAF / NSG] CORS [Allowed origins 清單] [Application config] API Versioning [URL path / Header] [設計規範] 6.3 OWASP API Security Top 10 對策 風險 對策 Broken Object Level Authorization [每次存取驗證資源所有權] Broken Authentication [Token 正確驗證 + MFA] Broken Object Property Level Authorization [回應過濾敏感欄位] Unrestricted Resource Consumption [Rate limit + pagination] Broken Function Level Authorization [角色權限矩陣嚴格檢查] Server Side Request Forgery [禁止 URL 參數直接存取內部資源] Security Misconfiguration [安全組態基線檢核] Lack of Protection from Automated Threats [Bot detection + CAPTCHA] 7. Session 管理 項目 設計 Session 機制 [Stateless (JWT) / Stateful (Server-side)] Session 有效期 [Idle: N min / Absolute: N hr] Session 儲存 [Redis / Database / Memory] Cookie 設定 HttpOnly, Secure, SameSite=Strict, Path=/ 並行 Session [允許 N 個裝置 / 新登入踢出舊 Session] Session Fixation 防護 [登入後重新產生 Session ID] 登出機制 [清除 Token + Server-side invalidation] 8. 輸入驗證與輸出編碼 8.1 輸入驗證策略 驗證層 位置 方式 Client-side 前端 UI 即時驗證(UX 用途,非安全邊界) Server-side API Controller 必須:Whitelist 驗證 + Schema validation Database DB Layer 型別約束 + Check constraints 8.2 常見攻擊防護 攻擊類型 防護措施 SQL Injection Parameterized queries / ORM XSS Output encoding (context-aware) + CSP CSRF SameSite cookie + CSRF token (if needed) Path Traversal 白名單驗證路徑,禁止 ../ XXE 停用 external entity parsing Deserialization 不接受不信任的序列化資料 8.3 Content Security Policy Content-Security-Policy: default-src 'self'; script-src 'self' [trusted CDN]; style-src 'self' 'unsafe-inline'; img-src 'self' data: [image CDN]; connect-src 'self' [API domain]; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; 9. 日誌與稽核設計 9.1 安全事件日誌 事件類型 記錄內容 儲存位置 保留期 登入成功/失敗 UserID, IP, Timestamp, UserAgent [SIEM / Log store] [N 年] 權限變更 Who, What, When, Previous/New value [Audit DB] [N 年] 資料存取 UserID, Resource, Action, Timestamp [Audit DB] [N 年] 敏感操作 [詳細描述] [Audit DB] [N 年] 9.2 日誌安全 項目 設計 日誌不得包含 密碼、Token、PII 明碼、信用卡號 日誌完整性 [HMAC / Append-only storage] 日誌存取控制 [僅 Security Team + Auditor 可存取] 竄改偵測 [Hash chain / WORM storage] 10. 安全組態基線 10.1 HTTP Security Headers Header 值 說明 Strict-Transport-Security max-age=31536000; includeSubDomains HSTS X-Content-Type-Options nosniff 防 MIME 嗅探 X-Frame-Options DENY 防 Clickjacking X-XSS-Protection 0 由 CSP 取代 Referrer-Policy strict-origin-when-cross-origin Permissions-Policy camera=(), microphone=() 限制瀏覽器功能 10.2 TLS 組態 項目 設計 最低版本 TLS 1.2(建議 TLS 1.3) 允許 Cipher Suites [列出安全的 cipher suites] 憑證類型 [RSA 2048+ / ECDSA P-256+] HSTS Preload [是/否] 11. 安全測試策略 測試類型 工具 頻率 負責人 SAST [SonarQube / Checkmarx / Semgrep] 每次 CI build Dev Team DAST [OWASP ZAP / Burp Suite] 每個 Sprint AppSec SCA [Snyk / Dependabot / OWASP Dep-Check] 每次 CI build Dev Team Penetration Test [外部廠商] [每年/每版本] AppSec Security Review Code Review + Design Review 每個 PR + 每階段 AppSec + Dev 📖 使用說明 各章節填寫指引 章節 填寫時機 負責人 重點說明 §2 安全目標 專案啟動時 資安 對齊合規需求 §3 身分驗證 設計初期 SA/資安 從威脅模型導出需求 §4 授權控制 配合功能設計 SA 權限矩陣需業務確認 §5 資料保護 設計階段 SA/DBA/資安 PII 處理需法務確認 §6 API 安全 API 設計時 SA/FE/BE 配合 API Spec §7-8 Session/驗證 詳細設計 BE 遵循 OWASP 建議 §9 稽核 設計階段 SA/資安 法規保留需求 §10 組態基線 部署前 DevOps/資安 定期掃描驗證 §11 測試策略 開發啟動前 資安/QA 整合至 CI/CD 💡 範例(以 HRMS 人力資源管理系統為例) 範例:角色與權限矩陣 功能 員工 主管 HR 系統管理員 查看個人資料 R (own) R (dept) R (all) R (all) 編輯個人資料 U (partial) — U (all) U (all) 申請請假 CRU (own) CRU (own) CRUD (all) CRUD (all) 審核請假 — U (dept) U (all) U (all) 查看薪資 R (own) — R (all) R (all) 管理員工 — — CRUD CRUD 系統設定 — — — CRUD 範例:API 安全設計 API Endpoint 認證 授權 Rate Limit 備註 POST /auth/login Public — 5/min per IP 防暴力破解 GET /api/employees/{id} Bearer JWT own or dept_manager or HR 100/min Row-level check POST /api/leave-requests Bearer JWT Employee role 10/min PUT /api/leave-requests/{id}/approve Bearer JWT Manager of requestor 30/min 層級驗證 GET /api/salary/{id} Bearer JWT own or HR 20/min 敏感資料加密回傳 DELETE /api/employees/{id} Bearer JWT Admin only 5/min Soft delete + 稽核 範例:稽核日誌設計 { "timestamp": "2026-04-10T08:30:15.123Z", "event_type": "DATA_ACCESS", "user_id": "EMP-001", "user_role": "HR", "action": "VIEW", "resource": "employee.salary", "resource_id": "EMP-042", "source_ip": "10.0.10.45", "user_agent": "Mozilla/5.0...", "result": "SUCCESS", "metadata": { "fields_accessed": ["base_salary", "bonus"], "reason": "Monthly payroll processing" } } 📌 審閱重點 ...

May 18, 2026 · 6 min · 1157 words · Eric Cheng