Web 應用程式已成駭客主要攻擊面,OWASP Top 10 (2021) 列出最關鍵風險類別,開發與營運團隊必須建立對應防禦:
- A01:2021 – 存取控制失效
使用者可存取未授權資源 (IDOR、路徑遍歷、提權)。
→ 防禦:集中授權檢查 (Policy/Permission 屬性)、伺服器端驗證物件層級權限、拒絕預設、最小權限原則。
- A02:2021 – 加密失效
敏感資料未加密、弱演算法 (MD5/SHA1/DES)、金鑰管理不當。
→ 防禦:TLS 1.2/1.3 強制、AES-256-GCM / ChaCha20-Poly1305、HSM/KMS 管理金鑰、資料庫欄位層級加密 (TDE/Always Encrypted)。
- A03:2021 – 注入攻擊
SQLi、NoSQLi、OS Command Injection、LDAP Injection、XPath Injection。
→ 防禦:參數化查詢/預備陳述式、ORM 正確使用、輸入驗證白名單、WAF 規則集 (ModSecurity CRS)。
- A04:2021 – 不安全設計
架構層面缺乏威脅模型、業務邏輯缺陷 (價格篡改、流程繞過)。
→ 防禦:威脅建模 (STRIDE/PASTA)、安全設計審查、業務邏輯單元測試、安全編碼標準 (OWASP ASVS)。
- A05:2021 – 安全設定錯誤
預設帳密、不必要功能啟用、錯誤訊息洩露堆疊追蹤、雲端儲存桶公開。
→ 防禦:基準強化 (CIS Benchmarks)、自動化合規掃描、錯誤頁面友善化、最小安裝原則。
- A06:2021 – 易受攻擊且過時的元件
第三方套件已知 CVE 未修補、框架版本落後。
→ 防禦:SBOM (Software Bill of Materials)、Dependabot/Snyk/OWASP Dependency-Check 持續掃描、依賴更新自動化 (Renovate)。
- A07:2021 – 身分識別與驗證失效
弱密碼、Session Fixation、Token 不失效、MFA 缺失。
→ 防禦:多因子驗證 (MFA) 強制、Session 安全旗標 (HttpOnly, Secure, SameSite=Strict)、JWT 短效期 + Refresh Token 旋轉、帳號鎖定/風險偵測。
- A08:2021 – 軟體與資料完整性失效
CI/CD 管線遭竄改、未簽名套件、自動更新無驗證。
→ 防禦:供應鏈安全 (SLSA)、套件簽名驗證 (cosign/sigstore)、不可變基礎設施、完整性檢查 (Subresource Integrity)。
- A09:2021 – 安全記錄與監控失效
關鍵事件未記錄、日誌未集中、告警規則缺失、事件回應流程缺口。
→ 防禦:結構化日誌 (JSON/Serilog)、集中式 SIEM、關鍵事件即時告警 (登入失敗、權限異動、注入特徵)、事件回應手冊演練。
- A10:2021 – 伺服器端請求偽造 (SSRF)
伺服器被誘導存取內部資源 (中繼資料服務、內網 API、雲端控制平面)。
→ 防禦:輸出連線白名單、拒絕私有/回環/Link-Local IP、網路分段 (Egress Proxy)、IMDSv2 強制 (AWS/Azure/GCP)。
隱藏表單欄位、後門、除錯程式碼 — 經典仍在發生
- 隱藏欄位 (
<input type="hidden" name="price" value="100">) 易被竄改 → 伺服器端重新計算價格/權限。
- 除錯端點 (
/actuator/env, /debug, /trace) 生產環境必關閉。
- 通用後門帳號 (admin/123456) → 部署管線自動掃描並阻擋。
防禦三大支柱
- 左移:程式碼掃描 (SAST/SCA/Secrets)、威脅建模、安全單元測試整合 CI/CD。
- 執行期防護:WAF (ModSecurity/AWS WAF/Cloudflare)、RASP (Contrast/Seeker)、Runtime 完整性監控。
- 持續營運:滲透測試 (年 1~2 次)、紅隊演練、漏洞管理週期 (SLA 修補)、事件回應演練。
Web 應用安全非一次性專案,而是持續營運能力。建立上述三支柱,才能在威脅演進中保持韌性。