OWASP 發(fā)布了2021年草案,全新的OWASP Top 10 2021帶有三個(gè)新的類別和排位的變化。
OWASP Top 10是每個(gè)Web應(yīng)用程序的最低或基本安全測(cè)試要求。
OWASP Top 10于2003年首次推出,經(jīng)過(guò)多次修訂。現(xiàn)在發(fā)布了2021年的報(bào)告草案。
2021年前10名發(fā)生了什么變化:有三個(gè)新類別,四個(gè)類別的命名和范圍發(fā)生了變化,并且 2021年的前10 名中進(jìn)行了一些合并。
OWASP Top 10 2021
A01:2021 - Broken Access Control 失效的訪問(wèn)控制
從 2017 年的第五位上升到首位,它也被稱為授權(quán),它定義了 Web 應(yīng)用程序如何向某些用戶而不是其他用戶授予對(duì)內(nèi)容和功能的訪問(wèn)權(quán)限。
訪問(wèn)控制強(qiáng)制執(zhí)行策略,使用戶不能在其預(yù)期權(quán)限之外采取行動(dòng)。故障通常會(huì)導(dǎo)致未經(jīng)授權(quán)的信息泄露、修改或破壞所有數(shù)據(jù)或執(zhí)行超出用戶限制的業(yè)務(wù)功能。常見(jiàn)的訪問(wèn)控制漏洞包括:
1) 通過(guò)修改 URL、內(nèi)部應(yīng)用程序狀態(tài)或 HTML 頁(yè)面,或僅使用自定義 API 攻擊工具來(lái)繞過(guò)訪問(wèn)控制檢查。
2) 允許將主鍵更改為其他用戶的記錄,允許查看或編輯其他人的帳戶。
3) 特權(quán)提升。在未登錄的情況下充當(dāng)用戶或以用戶身份登錄時(shí)充當(dāng)管理員。
4) 元數(shù)據(jù)操作,例如重放或篡改 JSON Web 令牌 (JWT) 訪問(wèn)控制令牌,或用于提升權(quán)限或?yàn)E用 JWT 失效的 cookie 或隱藏字段。
5) CORS 錯(cuò)誤配置允許未經(jīng)授權(quán)的 API 訪問(wèn)。
6) 強(qiáng)制以未經(jīng)身份驗(yàn)證的用戶身份瀏覽經(jīng)過(guò)身份驗(yàn)證的頁(yè)面或以標(biāo)準(zhǔn)用戶身份瀏覽特權(quán)頁(yè)面。訪問(wèn) API 時(shí)缺少對(duì) POST、PUT 和 DELETE 的訪問(wèn)控制。
A02:2021 - Cryptographic Failures 加密失敗
從第三位上升到第二位,以前稱為敏感數(shù)據(jù)泄露(Sensitive Data Exposure),這是廣泛的癥狀而不是根本原因。缺乏加密通常會(huì)導(dǎo)致敏感數(shù)據(jù)泄露或系統(tǒng)受損。
首先是確定傳輸中和靜止數(shù)據(jù)的保護(hù)需求。例如,密碼、信用卡號(hào)、健康記錄、個(gè)人信息和商業(yè)秘密需要額外保護(hù),主要是如果該數(shù)據(jù)屬于隱私法(例如歐盟的通用數(shù)據(jù)保護(hù)條例 (GDPR))或法規(guī)(例如金融數(shù)據(jù)保護(hù))例如 PCI 數(shù)據(jù)安全標(biāo)準(zhǔn) (PCI DSS)。對(duì)于所有此類數(shù)據(jù):
1) 是否有任何數(shù)據(jù)以明文形式傳輸?這涉及 HTTP、SMTP 和 FTP 等協(xié)議。外部互聯(lián)網(wǎng)流量是危險(xiǎn)的。驗(yàn)證所有內(nèi)部流量,例如,負(fù)載平衡器、Web 服務(wù)器或后端系統(tǒng)之間的流量。
2) 默認(rèn)情況下或在較舊的代碼中是否使用任何舊的或弱的加密算法?
3) 是否正在使用默認(rèn)加密密鑰、生成或重復(fù)使用弱加密密鑰,或者是否缺少適當(dāng)?shù)拿荑€管理或輪換?
4) 是否未強(qiáng)制執(zhí)行加密,例如,是否缺少任何用戶代理(瀏覽器)安全指令或標(biāo)頭?
5) 用戶代理(例如,應(yīng)用程序、郵件客戶端)是否不驗(yàn)證收到的服務(wù)器證書(shū)是否有效?
A03:2021 - Injection 注入
從第一位下降到第三位,它是一種攻擊者利用未經(jīng)驗(yàn)證的輸入漏洞并通過(guò)在后端數(shù)據(jù)庫(kù)中執(zhí)行的 Web 應(yīng)用程序注入 SQL 命令的技術(shù)。
跨站腳本攻擊現(xiàn)在是此版本中此類別的一部分。
應(yīng)用程序在以下情況下容易受到攻擊:
1) 應(yīng)用程序不會(huì)驗(yàn)證、過(guò)濾或清理用戶提供的數(shù)據(jù)。
2) 沒(méi)有上下文感知轉(zhuǎn)義的動(dòng)態(tài)查詢或非參數(shù)化調(diào)用直接在解釋器中使用。
3) 在對(duì)象關(guān)系映射 (ORM) 搜索參數(shù)中使用惡意數(shù)據(jù)來(lái)提取額外的敏感記錄。
4) 直接使用或連接惡意數(shù)據(jù)。SQL 或命令包含動(dòng)態(tài)查詢、命令或存儲(chǔ)過(guò)程中的結(jié)構(gòu)和惡意數(shù)據(jù)。
一些更常見(jiàn)的注入是 SQL、NoSQL、OS 命令、對(duì)象關(guān)系映射 (ORM)、LDAP 和表達(dá)式語(yǔ)言 (EL) 或?qū)ο髨D導(dǎo)航庫(kù) (OGNL) 注入。源代碼審查是檢測(cè)應(yīng)用程序是否容易受到注入攻擊的最佳方法。強(qiáng)烈建議對(duì)所有參數(shù)、標(biāo)頭、URL、cookie、JSON、SOAP 和 XML 數(shù)據(jù)輸入進(jìn)行自動(dòng)化測(cè)試。組織可以將靜態(tài)源 (SAST) 和動(dòng)態(tài)應(yīng)用程序測(cè)試 (DAST) 工具包含到 CI/CD 管道中,以在生產(chǎn)部署之前識(shí)別引入的注入缺陷。
A04:2021 - Insecure Design 不安全的設(shè)計(jì)
這是 OWASP Top 2021 的一個(gè)新類別,它關(guān)注與設(shè)計(jì)和架構(gòu)缺陷相關(guān)的風(fēng)險(xiǎn)。
不安全設(shè)計(jì)是一個(gè)廣泛的類別,代表許多不同的缺陷,表現(xiàn)為缺失或無(wú)效的控制設(shè)計(jì)。缺少不安全的設(shè)計(jì)是缺少控制的地方。例如,想象一下應(yīng)該加密敏感數(shù)據(jù)的代碼,但沒(méi)有方法。無(wú)效的不安全設(shè)計(jì)是可以實(shí)現(xiàn)威脅的地方,但域(業(yè)務(wù))邏輯驗(yàn)證不足會(huì)阻止該操作。例如,假設(shè)域邏輯應(yīng)該根據(jù)收入等級(jí)處理流行病稅收減免,但不驗(yàn)證所有輸入都已正確簽名并提供比應(yīng)授予的更重要的減免收益。
安全設(shè)計(jì)是一種文化和方法,它不斷評(píng)估威脅并確保代碼經(jīng)過(guò)穩(wěn)健設(shè)計(jì)和測(cè)試,以防止已知的攻擊方法。安全設(shè)計(jì)需要安全的開(kāi)發(fā)生命周期、某種形式的安全設(shè)計(jì)模式或鋪砌道路組件庫(kù)或工具,以及威脅建模。
A05:2021 - Security Misconfiguration 安全配置錯(cuò)誤
從第六位移至第五位,它側(cè)重于跨應(yīng)用程序堆棧的安全加固或?qū)υ品?wù)的權(quán)限配置不當(dāng)。
XML 外部實(shí)體 (XXE) (XML External Entities,XXE)現(xiàn)在屬于此類別。
如果應(yīng)用程序是:
1) 在應(yīng)用程序堆棧的任何部分缺少適當(dāng)?shù)陌踩珡?qiáng)化或?qū)υ品?wù)的權(quán)限配置不正確。
2) 啟用或安裝了不必要的功能(例如,不必要的端口、服務(wù)、頁(yè)面、帳戶或權(quán)限)。
3) 默認(rèn)帳戶及其密碼仍處于啟用狀態(tài)且未更改。
4) 錯(cuò)誤處理向用戶顯示堆棧跟蹤或其他信息過(guò)多的錯(cuò)誤消息。
5) 對(duì)于升級(jí)的系統(tǒng),最新的安全功能被禁用或未安全配置。
6) 應(yīng)用程序服務(wù)器、應(yīng)用程序框架(例如,Struts、Spring、ASP.NET)、庫(kù)、數(shù)據(jù)庫(kù)等中的安全設(shè)置未設(shè)置為安全值。
7) 服務(wù)器不發(fā)送安全標(biāo)頭或指令,或者它們未設(shè)置為安全值。
8) 軟件已過(guò)時(shí)或易受攻擊(請(qǐng)參閱 A06:2021-易受攻擊和過(guò)時(shí)的組件)。
如果沒(méi)有協(xié)調(diào)一致的、可重復(fù)的應(yīng)用程序安全配置過(guò)程,系統(tǒng)將面臨更高的風(fēng)險(xiǎn)。
A06:2021 - Vulnerable and Outdated Components 易受攻擊和過(guò)時(shí)的組件
從第九位升至第六位,是我們難以測(cè)試和評(píng)估風(fēng)險(xiǎn)的已知問(wèn)題。此類別重點(diǎn)關(guān)注客戶端和服務(wù)器端使用的所有易受攻擊的組件版本。
你的系統(tǒng)可能很脆弱:
1) 如果您不知道您使用的所有組件的版本(客戶端和服務(wù)器端)。這包括您直接使用的組件以及嵌套的依賴項(xiàng)。
2) 如果軟件易受攻擊、不受支持或已過(guò)期。這包括操作系統(tǒng)、Web/應(yīng)用程序服務(wù)器、數(shù)據(jù)庫(kù)管理系統(tǒng) (DBMS)、應(yīng)用程序、API 和所有組件、運(yùn)行時(shí)環(huán)境和庫(kù)。
3) 如果您不定期掃描漏洞并訂閱與您使用的組件相關(guān)的安全公告。
4) 如果您沒(méi)有以基于風(fēng)險(xiǎn)的方式及時(shí)修復(fù)或升級(jí)底層平臺(tái)、框架和依賴項(xiàng)。這通常發(fā)生在修補(bǔ)是變更控制下的每月或每季度任務(wù)的環(huán)境中,使組織面臨數(shù)天或數(shù)月不必要地暴露于固定漏洞的風(fēng)險(xiǎn)。
5) 如果軟件開(kāi)發(fā)人員不測(cè)試更新、升級(jí)或修補(bǔ)的庫(kù)的兼容性。
6) 如果您不保護(hù)組件的配置(請(qǐng)參閱 A05:2021-安全配置錯(cuò)誤)。
A07:2021 – Identification and Authentication Failures 認(rèn)證和授權(quán)失敗
以前它被稱為損壞的身份驗(yàn)證(Broken Authentication),此類別側(cè)重于身份驗(yàn)證失敗。從第二位下滑到第七位。
它會(huì)導(dǎo)致自動(dòng)攻擊,例如攻擊者使用用戶名和密碼列表的憑據(jù)填充。
確認(rèn)用戶的身份、身份驗(yàn)證和會(huì)話管理對(duì)于防止與身份驗(yàn)證相關(guān)的攻擊至關(guān)重要。如果應(yīng)用程序存在以下情況,則可能存在身份驗(yàn)證漏洞:
1) 允許自動(dòng)攻擊,例如撞庫(kù),其中攻擊者擁有有效用戶名和密碼的列表。
2) 允許蠻力或其他自動(dòng)攻擊。
3) 允許使用默認(rèn)密碼、弱密碼或眾所周知的密碼,例如“Password1”或“admin/admin”。
4) 使用弱或無(wú)效的憑據(jù)恢復(fù)和忘記密碼流程,例如無(wú)法確保安全的“基于知識(shí)的答案”。
5) 使用純文本、加密或弱散列密碼(請(qǐng)參閱 A3:2017-敏感數(shù)據(jù)泄露)。
6) 缺少或無(wú)效的多因素身份驗(yàn)證。
7) 在 URL 中公開(kāi)會(huì)話 ID(例如,URL 重寫(xiě))。
8) 成功登錄后不要輪換會(huì)話 ID。
9) 不會(huì)正確地使會(huì)話 ID 無(wú)效。用戶會(huì)話或身份驗(yàn)證令牌(主要是單點(diǎn)登錄 (SSO) 令牌)在注銷或一段時(shí)間不活動(dòng)期間未正確失效。
A08:2021 – Software and Data Integrity Failures 軟件和數(shù)據(jù)完整性故障
這是 OWASP Top 10 2021 中引入的一個(gè)新類別,它側(cè)重于與無(wú)法防止完整性違規(guī)的代碼和基礎(chǔ)設(shè)施相關(guān)的軟件和數(shù)據(jù)完整性故障。
2017 年的不安全反序列化(Insecure Deserialization)現(xiàn)在是這一大類別的一部分。
軟件和數(shù)據(jù)完整性故障與不能防止完整性違規(guī)的代碼和基礎(chǔ)設(shè)施有關(guān)。例如,在對(duì)象或數(shù)據(jù)被編碼或序列化為攻擊者可以看到和修改的結(jié)構(gòu)的情況下,很容易受到不安全的反序列化的影響。另一種形式是應(yīng)用程序依賴來(lái)自不受信任的來(lái)源、存儲(chǔ)庫(kù)和內(nèi)容交付網(wǎng)絡(luò) (CDN) 的插件、庫(kù)或模塊。不安全的 CI/CD 管道可能會(huì)導(dǎo)致未經(jīng)授權(quán)的訪問(wèn)、惡意代碼或系統(tǒng)受損。最后,許多應(yīng)用程序現(xiàn)在包括自動(dòng)更新功能,其中更新在沒(méi)有充分完整性驗(yàn)證的情況下被下載并應(yīng)用于以前受信任的應(yīng)用程序。攻擊者可能會(huì)上傳自己的更新以分發(fā)并在所有安裝上運(yùn)行。
A09:2021 – Security Logging and Monitoring Failures 安全日志記錄和監(jiān)控失敗
以前是日志記錄和監(jiān)控不足(Insufficient Logging&Monitoring),從第十位前進(jìn)一步,此類別已擴(kuò)展為包括更多類型的故障。此類別有助于檢測(cè)、升級(jí)和響應(yīng)活動(dòng)的違規(guī)行為。
此類故障會(huì)直接影響可見(jiàn)性、事件警報(bào)和取證。
如果沒(méi)有日志記錄和監(jiān)控,就無(wú)法檢測(cè)到漏洞。任何時(shí)候都會(huì)發(fā)生日志記錄、檢測(cè)、監(jiān)控和主動(dòng)響應(yīng)不足的情況:
1) 不記錄可審計(jì)的事件,例如登錄、失敗登錄和高價(jià)值交易。
2) 警告和錯(cuò)誤不會(huì)生成、不充分或不清楚的日志消息。
3) 不會(huì)監(jiān)控應(yīng)用程序和 API 的日志是否存在可疑活動(dòng)。
4) 日志僅存儲(chǔ)在本地。
5) 適當(dāng)?shù)木瘓?bào)閾值和響應(yīng)升級(jí)流程沒(méi)有到位或有效。
6) DAST 工具(例如 OWASP ZAP)的滲透測(cè)試和掃描不會(huì)觸發(fā)警報(bào)。
7) 應(yīng)用程序無(wú)法實(shí)時(shí)或接近實(shí)時(shí)地檢測(cè)、升級(jí)或警告主動(dòng)攻擊。
通過(guò)使用戶或攻擊者可以看到日志記錄和警報(bào)事件,您很容易受到信息泄漏的影響(請(qǐng)參閱 A01:2021 – 損壞的訪問(wèn)控制)。
A10:2021 – Server-Side Request Forgery (SSRF) 服務(wù)器端請(qǐng)求偽造
此類別是新添加的。側(cè)重于保護(hù) Web 應(yīng)用程序在不驗(yàn)證用戶提供的 URL 的情況下獲取遠(yuǎn)程資源的連接。
每當(dāng) Web 應(yīng)用程序在未驗(yàn)證用戶提供的 URL 的情況下獲取遠(yuǎn)程資源時(shí),就會(huì)出現(xiàn) SSRF 缺陷。它允許攻擊者強(qiáng)制應(yīng)用程序?qū)⒕脑O(shè)計(jì)的請(qǐng)求發(fā)送到意外目的地,即使受到防火墻、VPN 或其他類型的網(wǎng)絡(luò) ACL 的保護(hù)也是如此。
隨著現(xiàn)代 Web 應(yīng)用程序?yàn)樽罱K用戶提供方便的功能,獲取 URL 成為一種常見(jiàn)情況。因此,SSRF 的發(fā)病率正在增加。此外,由于云服務(wù)和架構(gòu)的復(fù)雜性,SSRF 的嚴(yán)重性越來(lái)越高。
OWASP介紹:
OWASP是一個(gè)開(kāi)源的、非盈利的全球性安全組織,致力于應(yīng)用軟件的安全研究。OWASP的使命是使應(yīng)用軟件更加安全,使企業(yè)和組織能夠?qū)?yīng)用安全風(fēng)險(xiǎn)做出更清晰的決策。目前OWASP全球擁有250個(gè)分部近7萬(wàn)名會(huì)員,共同推動(dòng)了安全標(biāo)準(zhǔn)、安全測(cè)試工具、安全指導(dǎo)手冊(cè)等應(yīng)用安全技術(shù)的發(fā)展。
及時(shí)掌握網(wǎng)絡(luò)安全態(tài)勢(shì) 盡在傻蛋網(wǎng)絡(luò)安全監(jiān)測(cè)系統(tǒng)
【網(wǎng)絡(luò)安全監(jiān)管部門(mén)】免費(fèi)試用
本文來(lái)源:owasp
如涉及侵權(quán),請(qǐng)及時(shí)與我們聯(lián)系,我們會(huì)在第一時(shí)間刪除或處理侵權(quán)內(nèi)容。
電話:400-869-9193 負(fù)責(zé)人:張明