前言
OWASP Top 10 : 2021 已 Release ,新增了3項,其他的則由原本的項目合併或是調整了順序。
圖片來自 https://owasp.org/Top10/
以下就分別來看看各個項目
A01:2021 – Broken Access Control
包含資訊被沒權限的使用者取得、在傳輸過程中暴露敏感信息以及跨站請求偽造,例如,
- 功能權限沒有管控好,導致使用者可以使用不允許使用的功能,操作請參考 透過漏洞來偷用管理功能。
- 資料權限控管沒有做好,使用者A可以存取自已的資料,但透過修改 QueryString 後,也可以存取到他人的資料,操作請參考 A5: Broken Access Control。
- API CORS 設置不對,導致不受信任的來源呼叫。
A02:2021 – Cryptographic Failures
主要跟加密的錯誤或是缺少加密,導致機敏資料外洩。
包含寫死密碼,損壞或有風險的加密算法及熵不足(使用RandomNumberGenerator取代Random)。
所以要確保資料及傳輸過程中機敏資料的保護,例如密碼、信用卡號、帳號等等…
操作請參考A3: Sensitive Data Exposure
A03:2021 – Injection
將不受信任的資料來源做為命令或查詢的一部份發送到解析器,如果沒有驗證過濾資料來源的值,有可能產生 SQL, NoSQL, OS Command, ORM, LDAP 等等 Injection 問題。
資料來源包含 環境變數、參數、內/外部的 Web 服務、使用者輸入…。例如,
1 | var q = “SELECT * FROM Accounts Where Name = ‘" + QueryString["name"] + "'"; |
操作請參考A1: Injection
A04:2021 – Insecure Design
一直以來總是在要交付系統時,才透過黑、白箱掃描,結果往往可以掃出一大堆的弱點。
如果在談需求時,就將安全性包含進來,將會大大地降低未來發生安全問題的機率,也節省成本。
這也就是大家在談的 安全軟體開發生命週期(SSDLC) ,透過 Threat Model 來早點發現架構上的安全性問題。
A05:2021 – Security Misconfiguration
攻擊者可透過未修復的漏洞、系統預設帳/密、未受保護的文件和目錄來取得資料或是對系統的了解(詳細的錯誤訊息)。例如,
- 系統保留預設的帳/密
- Web.config
- 錯誤訊息的處理
- 未設定 Cookie 為 httpOnlyCookies, requireSSL
- Http Header (X-Frame-Options, CSP …)
- 啟用 Directory Browse 功能
操作請參考A6: Security Misconfiguration
A06:2021 – Vulnerable and Outdated Components
使用過時或有資安漏洞的元件,所以要常常關注使用元件是否有相關資安漏洞,並隨時要進行更新。
可參考Top 10 Open Source Vulnerabilities In 2020
A07:2021 – Identification and Authentication Failures
攻擊者透過系統問題取得暫時性或永久性受害者的身份,例如,
- 系統沒更改預設帳/密,被攻擊者使用預設帳/密登入
- 字典/暴力攻擊,取得受害者的身份
- Session/Cookie 設定不正確,被取得受害者Token
操作請參考A2: Broken Authentication
A08:2021 – Software and Data Integrity Failures
系統中會使用許多的套件,或是取得資料來處理,而這些套件或是資料,真的信任它們嗎?
例如有些開發人員可能直接從 Google 輸入 keyword ,找到某套件就直接下載使用。
A09:2021 – Security Logging and Monitoring Failures
攻擊者依系統監控的不足和不及時的反應,來達成他們的目的而不被發現,例如,
- 未記錄登入、登入失敗和可疑資料
- 不清楚的日誌訊息,並僅記錄在本機
- 沒有利用日誌訊息來監控可疑活動
- 沒有定義合理的告警閾值和制定反應處理流程
A10:2021 – Server-Side Request Forgery (SSRF)
SSRF 允許攻擊者透過 Application 來對任意的 URL 發出 HTTP 的要求。
例如有時會從前端傳送 Backend AP 的 Url ,這就讓攻擊者有機會將該 URL 改成任意的 URL。
參考資源
OWASP Top 10 - 2021
OWASP Top 10 - 2017 Examples - ASP.NET MVC 5
Microsoft Threat Modeling Tool
Server-side request forgery (SSRF)