我們宣布推出Cloudflare Sequence Analytics for API。使用Sequence Analytics,訂閱API Gateway的客戶可以查看對(duì)其端點(diǎn)的最重要的API請(qǐng)求序列。這個(gè)新功能可以幫助客戶首先對(duì)最重要的端點(diǎn)應(yīng)用保護(hù)。
什么是序列?它是一個(gè)按時(shí)間排序的列表,包含特定訪問者在瀏覽網(wǎng)站、使用移動(dòng)應(yīng)用或通過API與B2B合作伙伴交互時(shí)發(fā)出HTTP API請(qǐng)求列表。例如,銀行轉(zhuǎn)賬過程會(huì)產(chǎn)生序列,其中一部分可能看起來像這樣:
為什么關(guān)注序列對(duì)API安全性很重要?如果上面的API在沒有任何先前請(qǐng)求的情況下收到POST/API/v1/transferFunds請(qǐng)求,那么就顯得可疑了。想想看:在沒有用戶相關(guān)賬戶id的情況下,API客戶端如何判定它們是什么?API客戶端如何知道有多少錢可供轉(zhuǎn)賬?雖然這個(gè)例子可能很明顯,但對(duì)于任何給定的生產(chǎn)API,API請(qǐng)求的數(shù)量都非常龐大,以至于人類分析師很難發(fā)現(xiàn)可疑的使用。
在安全領(lǐng)域,對(duì)于無法由人類團(tuán)隊(duì)篩查的未知數(shù)量威脅,一種防御方法是建立積極安全模型。不是試圖阻止所有可能存在威脅的流量,而是允許所有已知的正常或良性流量通過,并默認(rèn)阻止其他所有流量。
客戶已經(jīng)可以使用API網(wǎng)關(guān)在兩個(gè)主要領(lǐng)域創(chuàng)建積極安全模型:大容量濫用防護(hù)和模式驗(yàn)證。而序列將構(gòu)成API流量積極安全模型的第三個(gè)支柱。API Gateway將能夠在任何給定的API序列中強(qiáng)制端點(diǎn)的順序。通過在API序列中建立順序,API Gateway將記錄或阻止任何不匹配預(yù)期的流量,從而減少濫用流量。
按序列檢測(cè)濫用
當(dāng)攻擊者試圖以濫用的方式竊取數(shù)據(jù)時(shí),他們很少遵循預(yù)期的API流量模式。攻擊者通常使用特殊的軟件‘?dāng)_亂’API,以不同的請(qǐng)求參數(shù)發(fā)送多個(gè)請(qǐng)求,希望從API中找到意外的響應(yīng),指示竊取數(shù)據(jù)的機(jī)會(huì)。攻擊者還可以手動(dòng)向API發(fā)送請(qǐng)求,試圖欺騙API執(zhí)行未經(jīng)授權(quán)的操作,例如通過失效對(duì)象級(jí)別身份驗(yàn)證攻擊提升攻擊者的特權(quán)或?qū)ζ涫谟钄?shù)據(jù)訪問權(quán)。通過速率限制來保護(hù)API是一種常見的最佳實(shí)踐;然而,在上述兩個(gè)例子中,攻擊者都有可能故意緩慢地執(zhí)行請(qǐng)求序列,以試圖避開大容量濫用檢測(cè)。
再次考慮上述請(qǐng)求序列,但這次假設(shè)攻擊者復(fù)制了合法的資金轉(zhuǎn)賬請(qǐng)求并修改了請(qǐng)求的有效負(fù)載,以試圖欺騙系統(tǒng):
如果客戶事先知道該資金轉(zhuǎn)賬端點(diǎn)對(duì)安全防護(hù)很重要,并且在一個(gè)序列中只發(fā)生一次,他們可以編寫一個(gè)規(guī)則來確保它不會(huì)連續(xù)調(diào)用兩次,并且GET/balance總是在POST/transferFunds之前。但是,如果事先不知道哪些端點(diǎn)序列是需要保護(hù)的關(guān)鍵,客戶如何知道要定義哪些規(guī)則?較低的速率限制風(fēng)險(xiǎn)太大,因?yàn)锳PI用戶可能有一些合法的資金轉(zhuǎn)移請(qǐng)求需要在短時(shí)間內(nèi)執(zhí)行。在目前的現(xiàn)實(shí)中,幾乎沒有任何工具可以防止這種類型的濫用,并且大多數(shù)客戶在發(fā)生濫用后只能被動(dòng)應(yīng)對(duì),與他們的應(yīng)用團(tuán)隊(duì)和反欺詐部門進(jìn)行善后工作。
最終,我們相信,為客戶提供在API請(qǐng)求序列上定義積極安全模型的能力需要三個(gè)方面的方法:
1.序列分析:確定何時(shí)發(fā)生了哪些API請(qǐng)求序列,并將數(shù)據(jù)匯總成易于理解的形式。
2.序列濫用檢測(cè):識(shí)別哪些API請(qǐng)求序列可能是良性或惡意的。
3.序列緩解:確定針對(duì)API請(qǐng)求序列的相關(guān)規(guī)則,以決定允許或阻止哪些流量。
序列創(chuàng)建的挑戰(zhàn)
序列分析帶來了一些困難的技術(shù)挑戰(zhàn),因?yàn)闀?huì)話可能長(zhǎng)時(shí)間持續(xù),可能包含許多請(qǐng)求。因此,僅通過會(huì)話標(biāo)識(shí)符定義序列并不足夠。取而代之,我們有必要開發(fā)一個(gè)解決方案,以便自動(dòng)識(shí)別給定會(huì)話中發(fā)生的多個(gè)序列。此外,由于重要序列不一定只具有大容量特征,而且可能序列的集合很大,因此有必要開發(fā)一種能夠識(shí)別重要序列的方法,而非僅僅顯示頻繁的序列。
為了展示這些挑戰(zhàn),以api.cloudflare.com為例,我們可以按會(huì)話對(duì)API請(qǐng)求進(jìn)行分組,并繪制不同序列的數(shù)量與序列長(zhǎng)度的關(guān)系:
上圖基于一個(gè)小時(shí)的快照,包含大約8.8萬個(gè)會(huì)話和2.6億個(gè)API請(qǐng)求,涉及302個(gè)不同的API端點(diǎn)。通過對(duì)每個(gè)會(huì)話應(yīng)用固定長(zhǎng)度的滑動(dòng)窗口來處理數(shù)據(jù),然后統(tǒng)計(jì)應(yīng)用滑動(dòng)窗口后觀察到的不同固定長(zhǎng)度序列(‘n-grams’)的總數(shù)。該圖顯示了窗口大小(‘n-gram length’)在1到10個(gè)請(qǐng)求之間變化的結(jié)果。不同序列的數(shù)量范圍從301(對(duì)于一個(gè)請(qǐng)求的窗口大?。┑酱蠹s780,000(對(duì)于10個(gè)請(qǐng)求的窗口大?。8鶕?jù)該圖,我們觀察到大量隨著序列長(zhǎng)度而增長(zhǎng)的可能序列:隨著我們?cè)黾踊瑒?dòng)窗口大小,我們?cè)跇颖局锌吹皆絹碓酱罅康牟煌蛄?。這種平滑趨勢(shì)可以通過以下事實(shí)來解釋:我們應(yīng)用了一個(gè)滑動(dòng)窗口(會(huì)話本身可能包含許多序列),結(jié)合了相對(duì)于序列長(zhǎng)度的許多長(zhǎng)會(huì)話。
考慮到大量可能的序列,試圖找到濫用序列猶如“大海撈針”。
序列分析登場(chǎng)
下面是API Gateway儀表板以序列分析為重點(diǎn)的截圖:
讓我們逐個(gè)介紹截圖中看到的新功能。
API Gateway使用本文前面描述的方法智能地確定API使用者發(fā)出的請(qǐng)求序列。API Gateway通過我們稱為相關(guān)性分?jǐn)?shù)(Correlation Score)的指標(biāo)對(duì)序列進(jìn)行評(píng)分。序列分析顯示了最高相關(guān)分?jǐn)?shù)的前20個(gè)序列,我們將這些序列稱為最重要的序列。高重要性序列包含可能會(huì)按順序一起發(fā)生的API請(qǐng)求。
您應(yīng)該檢查每個(gè)序列,以了解它們的相關(guān)性得分。高相關(guān)性得分序列可能包含很少使用的端點(diǎn)(潛在的異常用戶行為)和常用的端點(diǎn)(可能的良性用戶行為)組成。由于在這些序列中找到的端點(diǎn)通常一起發(fā)生,所以它們代表了API的真正使用模式。您應(yīng)該對(duì)這些端點(diǎn)應(yīng)用所有可能的API Gateway加以保護(hù)(速率限制建議、模式驗(yàn)證、JWT驗(yàn)證和mTLS),并與您的開發(fā)團(tuán)隊(duì)檢查它們的特定端點(diǎn)順序。
我們知道客戶希望明確地在他們的API上設(shè)置允許的行為,而不僅僅是今天API Gateway提供的主動(dòng)保護(hù)。我們將很快發(fā)布序列順序規(guī)則,并提供基于這些規(guī)則來阻止請(qǐng)求的功能。新的序列順序規(guī)則將允許客戶指定允許的API請(qǐng)求的確切順序,這是另一種建立積極安全模型的方法,以保護(hù)您的API免受未知威脅。
如何開始
所有API Gateway客戶現(xiàn)在都可以使用序列分析。在Cloudflare儀表板中導(dǎo)航到一個(gè)區(qū)域,然后單擊“安全”選項(xiàng)卡>API Gateway選項(xiàng)卡>“序列”選項(xiàng)卡。您將看到API使用者請(qǐng)求的最重要序列。
尚未購(gòu)買API Gateway的Enterprise客戶可以通過在Cloudflare儀表板中啟用API Gateway試用,或聯(lián)系帳戶經(jīng)理。
下一步
基于序列的檢測(cè)是一種強(qiáng)大而獨(dú)特的能力,它解鎖了許多識(shí)別和阻止攻擊的新機(jī)會(huì)。隨著我們調(diào)優(yōu)識(shí)別這些序列的方法并將其交付到我們的全球網(wǎng)絡(luò),我們將在未來的某個(gè)日期發(fā)布自定義序列匹配和實(shí)時(shí)緩解功能。我們還將確保您能向自己的團(tuán)隊(duì)提供可據(jù)以行動(dòng)的情報(bào),說明哪些API用戶試圖請(qǐng)求匹配策略的序列。