如何避免Web應(yīng)用程序安全測試中的API盲區(qū)?
應(yīng)用編程接口(API)是現(xiàn)代Web應(yīng)用程序開發(fā)的一個重要部分,它們在整個Web攻擊面中占有相當(dāng)大的比重。在現(xiàn)實世界中,企業(yè)進(jìn)行Web應(yīng)用程序安全測試時覆蓋整個攻擊面,同時又滿足測試準(zhǔn)確性和工作流高效集成之類的需求,是一項艱巨的任務(wù)?,F(xiàn)代應(yīng)用程序遠(yuǎn)不止一堆網(wǎng)頁,它們是通過API進(jìn)行聯(lián)系的一堆復(fù)雜的Web服務(wù)。那么,如何確保這些Web API的安全呢?
不僅僅保護(hù)可見網(wǎng)頁
測試軟件安全的方法有多種,但任何AppSec(現(xiàn)代應(yīng)用程序安全)工具箱都應(yīng)該起碼包括動態(tài)測試(DAST,即漏洞掃描),并結(jié)合定期滲透測試。這讓企業(yè)可以真實全面地洞察安全狀況,因為企業(yè)探測應(yīng)用程序環(huán)境所使用的方法和入口點與惡意黑客所使用的一樣。所有潛在的入口點共同構(gòu)成了企業(yè)的攻擊面,這包括用戶界面和所有暴露的API。
從外部檢查Web應(yīng)用程序時,第一步是運行爬蟲工具,以發(fā)現(xiàn)需要測試的所有對象。這時候,網(wǎng)站與Web API的第一個重大區(qū)別體現(xiàn)出來:企業(yè)無法像抓取網(wǎng)頁那樣抓取API。要確保在應(yīng)用程序環(huán)境中全面測試所有Web API,有效方法是始終擁有最新的API定義,而這些定義由企業(yè)的開發(fā)人員創(chuàng)建和維護(hù)。
在含有成千上萬個API端點的大型開發(fā)環(huán)境中,企業(yè)每次需要進(jìn)行漏洞掃描時都向開發(fā)人員索要API定義文件不切實際,特別是在開發(fā)管道高度自動化、任何手動干預(yù)都花費寶貴時間的情形下更是如此。切合實際的方法是,將API定義文件自動存儲到中央位置,并自動更新,集成式漏洞掃描工具可以在每次掃描之前獲取這些定義文件。然而要在安全測試工作流程中充分利用這些數(shù)據(jù),企業(yè)需要一套自動化應(yīng)用程序安全測試解決方案,該解決方案不僅能與軟件開發(fā)生命周期(SDLC)集成,還能針對相關(guān)類型的API進(jìn)行漏洞測試。
確保API成為安全SDLC的必要部分
當(dāng)下,Web應(yīng)用程序通過API發(fā)送的數(shù)據(jù)遠(yuǎn)多于通過用戶界面發(fā)送的數(shù)據(jù),因此應(yīng)用程序安全測試必須跟上步伐,否則可能會使Web應(yīng)用程序的攻擊面更容易受到攻擊。即使是內(nèi)部API也常常被攻擊者訪問,因為直接進(jìn)入保存敏感數(shù)據(jù)的后端系統(tǒng)通道敞露無遺。除此之外,API專為靜態(tài)的自動訪問而設(shè)計,因此它們更容易在不引起懷疑的情況下被探測。
網(wǎng)絡(luò)犯罪分子知道這一切,他們正將注意力轉(zhuǎn)移到API攻擊上,企圖從最不安全的Web API和服務(wù)下手,以直接訪問敏感數(shù)據(jù)或執(zhí)行未經(jīng)身份驗證的操作。由于現(xiàn)在企業(yè)構(gòu)建的眾多Web應(yīng)用程序是可視化前端,與后端系統(tǒng)上運行的數(shù)百個自主Web服務(wù)進(jìn)行聯(lián)系,繞過用戶界面、徑直訪問數(shù)據(jù)似乎是網(wǎng)絡(luò)犯罪分子的不二之選,針對API的攻擊確實日益猖獗。
為避免企業(yè)的網(wǎng)絡(luò)安全出現(xiàn)巨大盲區(qū),明確包括API漏洞測試的AppSec計劃是重要的方法,這也是確保AppSec卓有成效的一個關(guān)鍵要求,一些廠商可以將Web API漏洞測試無縫整合到企業(yè)的安全SDLC中。
參考鏈接:
https://www.netsparker.com/blog/web-security/avoid-api-blind-spots-in-web-application-security-testing-announcing-white-paper/