OWASP(Open Worldwide Application Security Project)是一個致力於推廣軟體安全的國際組織。
其中最具代表性的成果之一是 OWASP Top 10,列出了全球最常見、最具威脅性的 Web 應用程式安全風險。
這份清單不只是技術指標,更是一個教育與審查的基礎,幫助開發者與安全人員釐清「真正應該防的漏洞在哪裡」。
⸻
一、什麼是 OWASP Top 10
OWASP 每隔數年更新一次 Top 10 清單,根據實際漏洞數據與產業分析整理出最常見的安全問題。
最新版(2021)將重點放在風險層面而非單一漏洞型態,強調系統性防禦與持續性安全治理。
⸻
二、十大風險簡介
- Broken Access Control(存取控制缺陷)
應用未正確限制使用者權限,使攻擊者能存取不該接觸的資料或功能。
例:一般使用者能直接訪問管理員頁面或修改他人資料。
防範建議:
• 實施嚴格的伺服器端權限驗證。
• 禁止在前端隱藏式驗證邏輯。
• 使用框架提供的存取控管機制。
⸻
- Cryptographic Failures(加密失敗)
未妥善使用加密導致資料外洩,例如明文儲存密碼、使用弱演算法或錯誤的金鑰管理。
防範建議:
• 密碼雜湊使用 bcrypt、scrypt 或 Argon2。
• 強制啟用 TLS 1.2 以上版本。
• 禁止明文紀錄或傳輸敏感資訊。
⸻
- Injection(注入攻擊)
使用者輸入被直接拼接進查詢或命令中,導致惡意語法被執行。
包含 SQL Injection、OS Command Injection、LDAP Injection 等。
防範建議:
• 使用參數化查詢(Prepared Statements)。
• 驗證與過濾所有輸入。
• 最小化應用程式權限。
⸻
- Insecure Design(不安全設計)
系統架構本身存在安全缺陷,即使程式碼正確,也無法抵禦攻擊。
防範建議:
• 在設計階段導入威脅模型(Threat Modeling)。
• 定期安全審查與架構重評。
• 將資安需求納入開發流程。
⸻
- Security Misconfiguration(安全設定錯誤)
伺服器或應用配置不當,例如預設密碼、開啟不必要的服務、未限制錯誤訊息輸出。
防範建議:
• 定期自動化掃描與基準檢查。
• 關閉預設帳號與除錯介面。
• 採用安全的部署模板。
⸻
- Vulnerable and Outdated Components(脆弱或過期組件)
使用含漏洞的第三方套件或未更新的依賴庫。
防範建議:
• 定期執行依賴性掃描(Dependency Scanning)。
• 追蹤組件版本與 CVE 公告。
• 使用可信來源的套件。
⸻
- Identification and Authentication Failures(身分驗證缺陷)
登入流程、密碼重設機制或 Session 管理不安全。
防範建議:
• 啟用多因子驗證(MFA)。
• 使用安全 Cookie(HttpOnly, Secure)。
• 避免 Session ID 以可預測方式生成。
⸻
- Software and Data Integrity Failures(軟體與資料完整性缺陷)
應用未驗證軟體更新或資料來源的完整性,導致被植入惡意程式。
防範建議:
• 驗證所有軟體更新簽章。
• 對重要資料使用數位簽章或雜湊比對。
• 採用安全的 CI/CD 管道與簽章驗證。
⸻
- Security Logging and Monitoring Failures(記錄與監控不足)
未記錄安全事件或無法即時偵測異常行為,造成攻擊被忽視。
防範建議:
• 建立集中式日誌系統並設定告警。
• 紀錄登入、異常存取與系統錯誤。
• 與 SIEM 平台整合以進行關聯分析。
⸻
- Server-Side Request Forgery (SSRF)
應用程式接受外部 URL 請求但未驗證,攻擊者可利用該機制對內網或其他服務發送惡意請求。
防範建議:
• 嚴格限制可訪問的 URL 目標。
• 使用白名單策略。
• 在應用層增加回應驗證。
⸻
三、OWASP Top 10 的價值
OWASP Top 10 不僅是漏洞清單,更是一種 安全開發文化指引。
它提醒開發者安全不只是寫完再補,而是應從設計、實作到維運的每一階段都考慮風險。
實務上,許多企業會將 Top 10 納入開發標準、稽核流程與教育訓練,作為安全成熟度的基礎。
⸻
結語
OWASP Top 10 是 Web 資安領域的基礎知識。它涵蓋了程式設計、系統設定、權限管理與監控治理等多層面議題。
真正的防護不是單點修補,而是從開發到部署都保持安全意識,讓「安全」成為軟體品質的一部分。