API(應(yīng)用程序編程接口)安全風(fēng)險(xiǎn)在過去兩年中發(fā)生了巨大變化。下面將討論一下當(dāng)今最重要的 API 安全問題以及如何解決這些問題。
作為一名長期的OWASP成員和應(yīng)用程序安全從業(yè)人員,我想與大家分享一下我的想法,關(guān)于新發(fā)布的OWASP Web App Top 10(應(yīng)用安全風(fēng)險(xiǎn)Top 10)將會(huì)如何影響API security Top 10(API安全風(fēng)險(xiǎn)Top 10)的更新。上一輪API security Top 10發(fā)布于2019年12月。
最近更新了Web App Top 10(應(yīng)用安全風(fēng)險(xiǎn)Top 10),以反映不斷變化的應(yīng)用程序和威脅情況。
以目前的形式,API安全風(fēng)險(xiǎn)Top 10與2017年Web應(yīng)用安全風(fēng)險(xiǎn)Top 10大致有60%的重疊。這在當(dāng)時(shí)是有意義的,因?yàn)锳PI的使用才剛剛開始激增,而且對(duì)于如何最好地滿足API的安全需求,確實(shí)需要指導(dǎo)。
自API安全風(fēng)險(xiǎn)Top 10發(fā)布以來,API的使用和相關(guān)的安全問題都發(fā)生了變化。即便如此,從API安全風(fēng)險(xiǎn)Top 10和新的 Web應(yīng)用安全風(fēng)險(xiǎn)Top 10中可以得出許多相似之處:
在下一輪API安全風(fēng)險(xiǎn)Top 10列表中,我希望術(shù)語保持一致,盡管我不期望類似的定位,因?yàn)锳PI和Web應(yīng)用之間存在明顯的差異。我預(yù)計(jì)新的Web應(yīng)用程序列表會(huì)有一些重疊,但會(huì)有一些特定于API的威脅,比如:
讓我們看看對(duì)未來列表的預(yù)測。
下一輪OWASP API安全風(fēng)險(xiǎn)Top 10預(yù)測
API:1 和API:2:識(shí)別和認(rèn)證失敗以及訪問控制中斷
與API身份驗(yàn)證和授權(quán)錯(cuò)誤相關(guān)的安全事件幾乎與安全錯(cuò)誤配置一樣常見,這證明了將其放在列表頂部的合理性(并對(duì)錯(cuò)誤配置排名的第5位提出了質(zhì)疑)。組織需要更加關(guān)注他們設(shè)計(jì)和實(shí)現(xiàn)API的方式,也許可以使用安全規(guī)范來監(jiān)視缺少的端點(diǎn)身份驗(yàn)證、授權(quán)和管理功能。
API:3加密失敗
加密失敗一直困擾著Web應(yīng)用程序。在早期,開發(fā)人員拒絕進(jìn)行可能需要用戶升級(jí)的更改。因此,將強(qiáng)加密作為應(yīng)用程序(或API)要求是不受歡迎的——但現(xiàn)在不會(huì)了。強(qiáng)制升級(jí)以改善數(shù)據(jù)保護(hù)并可能防止信用違約成為常態(tài)。開發(fā)人員可能會(huì)失去一兩個(gè)客戶,但不會(huì)擔(dān)心因?yàn)樾孤兜臄?shù)據(jù)交換和糟糕的加密而發(fā)布有關(guān)信用卡違規(guī)的消息。同樣,利用API的應(yīng)用程序現(xiàn)在可以包含證書和強(qiáng)大的加密算法。
API:4缺乏資源和速率限制
此威脅在列表中排名更高,因?yàn)锳PI使合法或惡意流量峰值更容易發(fā)生。今年我們看到針對(duì)API的惡意流量峰值增加了30倍。如果不應(yīng)用速率限制,這將是一場災(zāi)難。組織需要更加努力地對(duì)API實(shí)施速率限制,因?yàn)樗粌H有助于抵御惡意攻擊,還有助于控制基礎(chǔ)設(shè)施成本超支。
API:5安全配置錯(cuò)誤
安全配置錯(cuò)誤的API是我們在客戶群中看到的常見錯(cuò)誤。根據(jù)我們在新聞中看到的內(nèi)容,這是許多組織的常見錯(cuò)誤。意外的端點(diǎn),或那些沒有身份驗(yàn)證或授權(quán)標(biāo)志的端點(diǎn),只是我們看到的幾個(gè)錯(cuò)誤示例。出現(xiàn)這種頻率的原因是,API安全性錯(cuò)誤配置沒有被大多數(shù)組織檢測到。要想把這條從列表中刪除,組織需要了解和測試他們的 API 功能——不僅僅是滲透測試,而是真正的功能測試。
API:6不安全的設(shè)計(jì)
隨著“左移”和DevSecOps的廣泛采用,應(yīng)用程序安全架構(gòu)師的作用迅速發(fā)展。隨著API變得越來越基礎(chǔ)化,了解體系結(jié)構(gòu)、特別是API每個(gè)部分的安全性至關(guān)重要。當(dāng)應(yīng)用程序在內(nèi)部、外部或向第三方/從第三方使用或發(fā)送數(shù)據(jù)時(shí),將訪問或移動(dòng)該數(shù)據(jù)的所有實(shí)例都需要安全設(shè)計(jì)。這只是一個(gè)小例子,當(dāng)需要體系結(jié)構(gòu)時(shí),還需要考慮登錄、會(huì)話管理、授權(quán)和其他方面。
API:7注入
注入在此列表中排名靠后,而在新的AppSec前十名中排名靠前,因?yàn)?Web應(yīng)用程序是通過Web瀏覽器查看的,并且需要JavaScript來呈現(xiàn)部分頁面。這可能會(huì)導(dǎo)致跨站腳本攻擊 (XSS),隨后通常會(huì)針對(duì)后端數(shù)據(jù)庫進(jìn)行SQL注入。API通常不需要瀏覽器,因此注入是可能的,但可能性較小。API注入通常只發(fā)生在某人對(duì)應(yīng)用程序有深入了解并試圖打破另一種機(jī)制時(shí)。
API:8資產(chǎn)管理不當(dāng)
API資產(chǎn)管理從一個(gè)良好的清單開始,該清單隨著元素的添加和刪除而更新。大多數(shù)組織都在為他們的應(yīng)用程序清單而苦惱,很少有人準(zhǔn)確了解他們擁有的 API數(shù)量及其所有相關(guān)組件。API可見性和資產(chǎn)管理應(yīng)該是所有 API安全計(jì)劃的基石。
API:9日志記錄和監(jiān)控不足
每當(dāng)問到“發(fā)生了什么?”這一主要安全問題時(shí),只能通過找出可用的日志來得出答案。沒有日志,就很難確定根本原因。日志記錄和監(jiān)視成本低廉,易于實(shí)現(xiàn),并且經(jīng)常需要進(jìn)行故障排除。我很想看到這一項(xiàng)在下一輪榜單中消失。
API:10數(shù)據(jù)完整性失敗
對(duì)于任何圍繞API中的數(shù)據(jù)完整性的事情來說,這最終有點(diǎn)籠統(tǒng)。這可能是第三方庫或其他存在缺陷的依賴項(xiàng)。這可能是持續(xù)集成和交付(CI/CD) 管道未確認(rèn)源或添加以某種方式易受攻擊的源的問題。這些類型的故障越來越突出,但代碼完整性的概念變得越來越重要。我們有機(jī)會(huì)扭轉(zhuǎn)這一趨勢。
這個(gè) API Top 10列表,我覺得在不久的將來會(huì)在官方OWASP列表修訂中反映出來。其中大部分來自處理被自動(dòng)化對(duì)手攻擊的 API,以及那些希望在組織內(nèi)站穩(wěn)腳跟的 API。
相關(guān)鏈接:
OWASP(開放式Web應(yīng)用程序安全項(xiàng)目- Open WebApplication Security Project)是一個(gè)開放社群、非盈利性組織,長期致力于協(xié)助政府或企業(yè)了解并改善網(wǎng)頁應(yīng)用程式與網(wǎng)頁服務(wù)的安全性。近期其發(fā)布的OWASP Web App Top 10(應(yīng)用程序安全風(fēng)險(xiǎn)Top 10)一文摘譯如下。
2021 年前 10 名發(fā)生了什么變化
有三個(gè)新類別,四個(gè)類別的命名和范圍發(fā)生了變化,并在 2021 年的前 10 名中進(jìn)行了一些整合。我們在必要時(shí)更改了名稱,以關(guān)注根本原因。
A01:2021-失效的訪問控制從第五名上升到 Web 應(yīng)用程序安全風(fēng)險(xiǎn)最嚴(yán)重的類別;提供的數(shù)據(jù)表明,平均3.81%的測試應(yīng)用程序具有一個(gè)或多個(gè)通用弱點(diǎn)枚舉 (CWE)。映射到失效的訪問控制的34個(gè)CWE在應(yīng)用程序中出現(xiàn)的次數(shù)比任何其他類別都多。
A02:2021-加密失敗上移一名至第二名,以前稱為A3:2017-暴露敏感數(shù)據(jù),這并非根本原因。更新后的名稱側(cè)重于與密碼學(xué)相關(guān)的失敗,因?yàn)樗耙呀?jīng)隱含了。此類別通常會(huì)導(dǎo)致敏感數(shù)據(jù)暴露或系統(tǒng)受損。
A03:2021-注入下滑至第三名。94% 的應(yīng)用程序針對(duì)某種形式的注入進(jìn)行了測試,最大發(fā)生率為19%,平均發(fā)生率為3.37%??缯军c(diǎn)腳本編寫現(xiàn)在是此版本中此類別的一部分。
A04:2021-不安全設(shè)計(jì)是2021年的一個(gè)新類別,重點(diǎn)關(guān)注與設(shè)計(jì)缺陷相關(guān)的風(fēng)險(xiǎn)。如果我們真的想作為一個(gè)行業(yè)“左移”,我們需要更多的威脅建模、安全設(shè)計(jì)模式和原則以及參考架構(gòu)。不安全的設(shè)計(jì)不能通過完美的實(shí)現(xiàn)來修復(fù),因?yàn)楦鶕?jù)定義,從來沒有創(chuàng)建所需的安全控制來防御特定的攻擊。
A05:2021-安全配置錯(cuò)誤從上一版的第6名上升;90% 的應(yīng)用程序都針對(duì)某種形式的錯(cuò)誤配置進(jìn)行了測試,平均發(fā)生率為 4.5%,超過208,000次 CWE 映射到此風(fēng)險(xiǎn)類別。隨著更多轉(zhuǎn)向高度可配置的軟件,看到這一類別上升也就不足為奇了。
A06:2021-易受攻擊和過時(shí)的組件之前的標(biāo)題是使用具有已知漏洞的組件。該類別從2017年的第9位上升,是我們難以測試和評(píng)估風(fēng)險(xiǎn)的已知問題。它是唯一沒有任何通用漏洞披露(CVE)映射到包含的CWE的類別。
A07:2021-識(shí)別和身份驗(yàn)證失敗之前是斷開的身份驗(yàn)證,并且從第二名下滑,現(xiàn)在包括與識(shí)別失敗更多相關(guān)的CWE。這個(gè)類別仍然是前10名的一個(gè)組成部分,但標(biāo)準(zhǔn)化框架的可用性增加似乎有所幫助。
A08:2021-軟件和數(shù)據(jù)完整性故障是2021年的一個(gè)新類別,專注于在不驗(yàn)證完整性的情況下做出與軟件更新、關(guān)鍵數(shù)據(jù)和 CI/CD 管道相關(guān)的假設(shè)。來自通用漏洞披露/通用漏洞評(píng)分系統(tǒng) (CVE/CVSS) 數(shù)據(jù)的最高加權(quán)影響之一映射到該類別中的10個(gè)CWE。A8:2017-不安全的反序列化現(xiàn)在是這個(gè)更大類別的一部分。
A09:2021-安全日志記錄和監(jiān)視失敗之前是A10:2017-日志記錄和監(jiān)視不足。此類別已擴(kuò)展為包括更多類型的故障,難以測試,并且在CVE/CVSS 數(shù)據(jù)中沒有得到很好的表示。但是,此類故障會(huì)直接影響可見性、事件警報(bào)和取證。
A10:2021-服務(wù)器端請求偽造數(shù)據(jù)顯示,發(fā)生率相對(duì)較低,測試覆蓋率高于平均水平,并且利用和影響潛力的評(píng)級(jí)高于平均水平。此類別代表安全社區(qū)成員告訴我們這是很重要的場景,即使目前數(shù)據(jù)中沒有說明這一點(diǎn)。