理解API安全以及如何開始
我們現在的世界已經逐漸由云計算、移動設備和微服務構成。幾乎我們每一個交互的應用都由API支持,尤其是在那些領先的云服務供應商、移動應用和微服務環境中。這就讓API成為了組織攻擊面的一個關鍵部分。
Akamai估計,大約83%的互聯網流量都是基于API的。其他的研究,比如像Salt Security認為,API攻擊從2021年到2022年增長了600%;而Gartner則預計,90%的web賦能應用會因為暴露的API形成更大的攻擊面。最近由Imperva的研究則表明,有隱患的API導致組織的損失,每年大約會在400億美元到700億美元之間。
另一個導致API攻擊面擴大的關鍵因素是K8s和微服務的使用。最近一項研究發現了超過38萬個暴露的K8s的API服務器,這足以引起擔憂——畢竟K8s的API服務器是容器部署的核心控制組件。這同樣表明,API的安全性被很少關注,盡管API已經是提升現代數字生態的粘接劑。
API不僅用于接入和請求數據,還會在流程中進行數據富集和修改等行為。這就意味著API自身不僅需要安全,他們當中流動的數據本身也需要安全。
這一現實強調了在關注API安全時,離不開應用和數據安全的最佳實踐。和許多其他領域的技術一樣,大部分企業在建立他們自己的API庫這個基礎的任務時,就掙扎不已。這就表明他們缺乏對他們有哪些API、和哪些API交互、以及API和哪些攻擊面關聯的可視化能力。
像Resurface Labs和Traceable AI這樣的組織已經開始應對這個問題,但是要做的工作依然很多。以下三點是組織應該開始理解他們的API攻擊面情況以及其潛在的隱患。
如何開始評估API攻擊面
API安全對那些剛開始做安全的組織來說是一件令人頭疼的任務,尤其對于那些API庫雜亂無章的大企業而言。也就是說,需要一系列有效的措施和方法論,才能處理這個龐大而又無法解決的安全領域。這一方式需要結合治理、基礎設施安全和應用級別的最佳實踐,才能降低組織的風險。
除了將組織現有的API全部都歸庫以外,一個可能更好的起步方式,是識別和理解最常見的API安全問題。幸運的是,OWASP社區已經有了API安全TOP10的清單。這個清單包括了受損對象、用戶授權/認證、過度數據暴露、缺乏速率限制等風險。
受損的對象級別授權是指破壞了確保用戶只能接入他們被授權的對象的代碼級結構。這一風險又回到了最小權限接入控制的老問題,這一點在零信任中被持續推動。
受損的用戶認證則有多種形態的表現,包括脆弱的認證機制、在URL中存在敏感的認證信息、憑證填充等等。這些都是惡意人員通過已經獲取的認證信息反復嘗試,以突破認證交互。這些脆弱性的解決方式包括了理解認證的流程、機制,并且使用行業標準的認證方式。
過度的數據暴露簡直是一個太過于常見的問題了。當和API相關的時候,這個隱患往往發生在API給用戶回復數據時,將不應該暴露的敏感數據進行了回傳。組織解決這類問題的方式包括驗證API響應中包含的數據,確保敏感數據不會不經意中被包括其中。組織也應該部署響應驗證機制,保證敏感數據不被暴露。
和其他常見的隱患相比,缺乏速率限制控制更多會影響系統的可用性,而非機密性或者完整性。鑒于API經常作為現代微服務、云和移動應用之間的粘連劑,最終都要為客戶實現價值并且創收,可用性的影響非常關鍵。業務中斷意味著收入或者用戶信任的損失。如果在公共事務領域或者國家領域,就會對市政服務或者國家安全打來極大沖擊。
這些問題可能對那些經驗老到的安全實踐人員而言非常明顯,畢竟認證、授權和DoS攻擊司空見慣。換種說法,將以上組織內部和互聯網上的API問題都考慮進去,加上來自惡意份子針對API攻擊的高速增長速率,潛在的風險就越發復雜。
API導致的橫向移動
由于API經常作為應用和數字環境的前門工作,針對API的攻擊經常會進行系統之間的橫向移動。API能夠作為一個攻擊的起點,然后被用于接入下層系統、工作負載和數據。這就讓保護API極其重要。API的主要攻擊手段包括對象和用戶級別的認證和授權。因此,惡意份子并非只是針對API,而是API可以接入并傳輸的數據,以及它們身后的下層系統。
對API安全更多的關注
盡管說許多攻擊方式并不是只針對API的,但是一旦將這些攻擊和API在現代數字生態中的大規模使用結合到一起,就會有很大問題。幸運的是,一些趨勢正在逐漸顯現,包括對API安全企業和產品的加大投資、更多的API安全指導,以及日益增長的業內對API安全引發問題的意識。
如果API已經成為連接現代數字生態的系帶,那我們就要必須要確保這些系帶非常堅固,因為我們不需要一個用泡泡糖和鞋帶連接的生態。盡管說傳統基于邊界的安全可能已經逐漸失效,API依然是現代系統的一個關鍵入口以及樞軸點。這不僅包括了對外的系統,同時也有內部交互的系統。
我們同樣能看到越來越多在軟件供應鏈方面的努力。這條鏈通過API為主要方式,將軟件驅動的系統聯系在一起。這表示API安全作為更為廣義的軟件供應鏈生態的關鍵組件,確保整個鏈條的安全性。
點評
API安全一定程度上已經不能說是一個新話題了,畢竟在過去一年中我們看到了大量的相關內容。但是,API安全的落地始終不怎么理想。
一個很重要的原因就是在于API本身遍布了數字環境中各個方面,無論是從應用角度,還是從數據角度,都無法完整描述API安全包含的內容。多樣的應用場景必然會帶來API可視化管理的困難;快速的業務發展與IT技術演化也必然導致當前環境中的API數量已經相當龐大,且難以管理。
從API面臨的風險入手確實一定程度上能夠緩解初入API安全時的手足無措,但是依然無法完全解決API可視化管理的問題。從當前來看,很難有一個企業能夠單獨、完整地囊括整個企業的API安全解決方案,正如本文最后提到的那樣,API安全也涉及到了軟件供應鏈方面的問題,而這同樣是一個需要多方協同才能解決的領域。