運用序列分析,自動檢測API濫用

來源:Cloudflare
作者:Cloudflare
時間:2023-05-09
1165
我們宣布推出Cloudflare Sequence Analytics for API。使用Sequence Analytics,訂閱API Gateway的客戶可以查看對其端點的最重要的API請求序列。這個新功能可以幫助客戶首先對最重要的端點應用保護。

640.png

我們宣布推出Cloudflare Sequence Analytics for API。使用Sequence Analytics,訂閱API Gateway的客戶可以查看對其端點的最重要的API請求序列。這個新功能可以幫助客戶首先對最重要的端點應用保護。

什么是序列?它是一個按時間排序的列表,包含特定訪問者在瀏覽網站、使用移動應用或通過API與B2B合作伙伴交互時發(fā)出HTTP API請求列表。例如,銀行轉賬過程會產生序列,其中一部分可能看起來像這樣:

640 (1).png

為什么關注序列對API安全性很重要?如果上面的API在沒有任何先前請求的情況下收到POST/API/v1/transferFunds請求,那么就顯得可疑了。想想看:在沒有用戶相關賬戶id的情況下,API客戶端如何判定它們是什么?API客戶端如何知道有多少錢可供轉賬?雖然這個例子可能很明顯,但對于任何給定的生產API,API請求的數量都非常龐大,以至于人類分析師很難發(fā)現可疑的使用。

在安全領域,對于無法由人類團隊篩查的未知數量威脅,一種防御方法是建立積極安全模型。不是試圖阻止所有可能存在威脅的流量,而是允許所有已知的正?;蛄夹粤髁客ㄟ^,并默認阻止其他所有流量。

客戶已經可以使用API網關在兩個主要領域創(chuàng)建積極安全模型:大容量濫用防護和模式驗證。而序列將構成API流量積極安全模型的第三個支柱。API Gateway將能夠在任何給定的API序列中強制端點的順序。通過在API序列中建立順序,API Gateway將記錄或阻止任何不匹配預期的流量,從而減少濫用流量。

按序列檢測濫用

當攻擊者試圖以濫用的方式竊取數據時,他們很少遵循預期的API流量模式。攻擊者通常使用特殊的軟件‘擾亂’API,以不同的請求參數發(fā)送多個請求,希望從API中找到意外的響應,指示竊取數據的機會。攻擊者還可以手動向API發(fā)送請求,試圖欺騙API執(zhí)行未經授權的操作,例如通過失效對象級別身份驗證攻擊提升攻擊者的特權或對其授予數據訪問權。通過速率限制來保護API是一種常見的最佳實踐;然而,在上述兩個例子中,攻擊者都有可能故意緩慢地執(zhí)行請求序列,以試圖避開大容量濫用檢測。

再次考慮上述請求序列,但這次假設攻擊者復制了合法的資金轉賬請求并修改了請求的有效負載,以試圖欺騙系統(tǒng):

640 (2).png

如果客戶事先知道該資金轉賬端點對安全防護很重要,并且在一個序列中只發(fā)生一次,他們可以編寫一個規(guī)則來確保它不會連續(xù)調用兩次,并且GET/balance總是在POST/transferFunds之前。但是,如果事先不知道哪些端點序列是需要保護的關鍵,客戶如何知道要定義哪些規(guī)則?較低的速率限制風險太大,因為API用戶可能有一些合法的資金轉移請求需要在短時間內執(zhí)行。在目前的現實中,幾乎沒有任何工具可以防止這種類型的濫用,并且大多數客戶在發(fā)生濫用后只能被動應對,與他們的應用團隊和反欺詐部門進行善后工作。

最終,我們相信,為客戶提供在API請求序列上定義積極安全模型的能力需要三個方面的方法:

1.序列分析:確定何時發(fā)生了哪些API請求序列,并將數據匯總成易于理解的形式。

2.序列濫用檢測:識別哪些API請求序列可能是良性或惡意的。

3.序列緩解:確定針對API請求序列的相關規(guī)則,以決定允許或阻止哪些流量。

序列創(chuàng)建的挑戰(zhàn)

序列分析帶來了一些困難的技術挑戰(zhàn),因為會話可能長時間持續(xù),可能包含許多請求。因此,僅通過會話標識符定義序列并不足夠。取而代之,我們有必要開發(fā)一個解決方案,以便自動識別給定會話中發(fā)生的多個序列。此外,由于重要序列不一定只具有大容量特征,而且可能序列的集合很大,因此有必要開發(fā)一種能夠識別重要序列的方法,而非僅僅顯示頻繁的序列。

為了展示這些挑戰(zhàn),以api.cloudflare.com為例,我們可以按會話對API請求進行分組,并繪制不同序列的數量與序列長度的關系:

640 (3).png

上圖基于一個小時的快照,包含大約8.8萬個會話和2.6億個API請求,涉及302個不同的API端點。通過對每個會話應用固定長度的滑動窗口來處理數據,然后統(tǒng)計應用滑動窗口后觀察到的不同固定長度序列(‘n-grams’)的總數。該圖顯示了窗口大小(‘n-gram length’)在1到10個請求之間變化的結果。不同序列的數量范圍從301(對于一個請求的窗口大?。┑酱蠹s780,000(對于10個請求的窗口大小)。根據該圖,我們觀察到大量隨著序列長度而增長的可能序列:隨著我們增加滑動窗口大小,我們在樣本中看到越來越大量的不同序列。這種平滑趨勢可以通過以下事實來解釋:我們應用了一個滑動窗口(會話本身可能包含許多序列),結合了相對于序列長度的許多長會話。

考慮到大量可能的序列,試圖找到濫用序列猶如“大海撈針”。

序列分析登場

下面是API Gateway儀表板以序列分析為重點的截圖:

640 (4).png

讓我們逐個介紹截圖中看到的新功能。

API Gateway使用本文前面描述的方法智能地確定API使用者發(fā)出的請求序列。API Gateway通過我們稱為相關性分數(Correlation Score)的指標對序列進行評分。序列分析顯示了最高相關分數的前20個序列,我們將這些序列稱為最重要的序列。高重要性序列包含可能會按順序一起發(fā)生的API請求。

您應該檢查每個序列,以了解它們的相關性得分。高相關性得分序列可能包含很少使用的端點(潛在的異常用戶行為)和常用的端點(可能的良性用戶行為)組成。由于在這些序列中找到的端點通常一起發(fā)生,所以它們代表了API的真正使用模式。您應該對這些端點應用所有可能的API Gateway加以保護(速率限制建議、模式驗證、JWT驗證和mTLS),并與您的開發(fā)團隊檢查它們的特定端點順序。

我們知道客戶希望明確地在他們的API上設置允許的行為,而不僅僅是今天API Gateway提供的主動保護。我們將很快發(fā)布序列順序規(guī)則,并提供基于這些規(guī)則來阻止請求的功能。新的序列順序規(guī)則將允許客戶指定允許的API請求的確切順序,這是另一種建立積極安全模型的方法,以保護您的API免受未知威脅。

如何開始

所有API Gateway客戶現在都可以使用序列分析。在Cloudflare儀表板中導航到一個區(qū)域,然后單擊“安全”選項卡>API Gateway選項卡>“序列”選項卡。您將看到API使用者請求的最重要序列。

尚未購買API Gateway的Enterprise客戶可以通過在Cloudflare儀表板中啟用API Gateway試用,或聯系帳戶經理。

下一步

基于序列的檢測是一種強大而獨特的能力,它解鎖了許多識別和阻止攻擊的新機會。隨著我們調優(yōu)識別這些序列的方法并將其交付到我們的全球網絡,我們將在未來的某個日期發(fā)布自定義序列匹配和實時緩解功能。我們還將確保您能向自己的團隊提供可據以行動的情報,說明哪些API用戶試圖請求匹配策略的序列。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:Cloudflare
版權說明:本文內容來自于Cloudflare,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家