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