一、序言
API為當今大多數數字體驗提供了動力,API安全性仍然是大多數CXO最關心的問題。盡管數字化轉型不斷推動API在各個行業的應用,但惡意威脅行為比以往任何時候都更加瞄準API。當前API的安全狀態與組織的需要存在很大差距,組織經常受困于難以理解的攻擊面,缺乏正確的策略來構建防御,本文的目的即是討論當今API生態系統面臨的不同挑戰和威脅,并提供保護API的最佳實踐。
二、API安全面臨的挑戰
API處于數字化體驗的中心,移動應用、WEB網站和應用程序的核心功能、微服務架構、監管機構的要求等等,均離不開API的支持,根據Akamai的一項統計,API請求已占所有應用請求的83%,預計2024年API請求命中數將達到42萬億次。與此同時,針對API的攻擊成為了惡意攻擊者的首選,相對于傳統WEB窗體,API的性能更高、攻擊的成本更低,Gartner預測,到2022年API濫用將是最常見的攻擊方式。之所以API安全問題如此嚴重,主要是因為API安全面臨著如下挑戰:
1.應用和邏輯遷移上云,暴露更多攻擊面
隨著云計算技術的廣泛應用,越來越多的Saas被遷移上云,在為更多的用戶提供服務的同時,也將API暴露到云中,相對于傳統數據中心的單點調用,東西向和南北向都可能成為API的攻擊面。
2.創新強調速度和靈活,忽略構建API安全
敏捷開發模式是當今主流開發模式,敏捷開發強調個體和互動、工作的軟件、客戶合作、響應變化,雖然提升了創新速度和靈活性,但是對于如何構建API安全性卻缺少合適的方法,導致在軟件構建過程中難以顧及API安全。
3.API接口對外不可見,引發多種攻擊隱患
由于API是由程序員書寫,除了編寫代碼的程序員,很少有人意識到這些API的存在,缺少維護的API經常容易被忽略,然而惡意攻擊者卻可以利用網絡流量、逆向代碼、安全漏洞等各種手段找到不設防API并實施攻擊。
4.組織經常低估API風險,造成安全措施遺漏
人們通常會假設程序會按照想象中的過程運行,從而導致API被攻擊的可能性以及影響被嚴重低估,因此不去采取充分的防護措施。此外,第三方合作伙伴系統的API,也容易被組織所忽視。
三、API面臨的安全威脅
據權威報告顯示,以API為目標的攻擊是以HTML應用為目標攻擊的三倍,部分攻擊造成了嚴重的業務中斷,攻擊者利用弱身份認證、授權和注入漏洞實施攻擊的方法仍然普遍,而利用Json、XML等基于解析器的攻擊以及第三方API集成帶來的風險正在增加,經綜合分析,API的攻擊類型包括:
1.憑證類攻擊
據統計,2018-2020期間,有1000億次的憑證盜用攻擊,而且每年攻擊的復雜度和數量都在持續增加,憑證盜用攻擊的代價高達2280萬美元,平均每30秒就有一位憑證盜用的受害者。攻擊者通過購買、釣魚、漏洞利用等方式獲得API登錄憑證,繼而利用僵尸網絡接入客戶站點API,盜取客戶數據或者個人信息。
2.可用性攻擊
當API端點對外暴露,攻擊者就可以利用DDOS或者攻擊API解析器,造成API無法提供相應服務。對于DDOS,除了部署常規Anti-DDOS設備以外,還要關注合作伙伴API的DDOS攻擊承受能力,如果僅僅依靠合作伙伴的安全措施,原始API就得不到保護。而針對API解析器的攻擊則更具有針對性,可能造成哈希值沖突或者反序列化異常,進而拒絕API請求。
3.漏洞利用攻擊
漏洞利用是所有應用程序面臨的安全威脅,API也不能例外。通過在API的函數參數、Json、XML等有效負載嵌入惡意代碼,實施目錄轉換、命令注入、SQL注入、XSS、繞過身份認證和授權等常見的API攻擊手段,達到敏感數據竊取或破壞系統的目的。更進一步,API攻擊已經工具化,攻擊者能夠利用工具搜集用于攻擊的域名和API列表,再使用其他工具查找或刪除敏感數據。
四、API安全防御的最佳實踐
API安全防御是系統化工程,相對于傳統防御側重訪問控制、簽名、速率調節、加密等具體的技術手段,新的安全實踐更加強調API治理、新型解決方案以及持續API安全檢視的系統化措施。
1.API治理
首先,對全部API進行全面文檔化管理,為了規避API變動頻繁的困難,推薦使用開源自動化管理工具,在API變更時添加描述性說明,自動生成最新API文檔,同時自動檢查流量以發現和分析未知或更改的API,以便快速響應基于API的攻擊。其次,梳理API之間的調用鏈,梳理API之間的調用關系,找出僵尸API,防止安全防護措施遺漏,該步驟也可通過工具完成。最后,對API實施契約測試和白盒測試,減少漏洞存在的可能性。
2.新型解決方案
針對API面臨的安全威脅,可采用新的解決方案提供安全防護。包括使用高級BOT檢測,實現預登陸驗證,攔截API非授權訪問;部署API網關對API請求進行身份驗證、授權和訪問控制;使用正向和負向安全模式對API參數進行合法性驗證;發現API流量行為并提供與WAF/DDoS快速集成的工具等等。
3.持續API安全檢視
從發現、保護和分析三個維度,制定API安全檢視列表,持續對API進行安全檢視,以此發現隱患,制定策略、實施防護。在發現維度檢視API開發、測試和部署的安全措施是否全面。在保護維度,檢視用戶標識、DDOS攻擊防護措施、數據校驗黑白名單是否完整。在分析維度,檢視API風險評估、API審計日志是否充分。
五、展望
隨著信息技術的快速發展,API安全防護也在持續演進過程中,最初API安全防護解決無效輸入、DOS攻擊、認證繞過等攻擊,現今的防護重點則落地在緩沖區溢出、XSS、SQL注入等漏洞防護,安全防護的措施也從單個漏洞防護升級為網關、應用系統防護。未來,多向量、自動化工具、武器化人工智能類的攻擊將成為API攻擊的主流,相應的,安全防護措施也需加強系統化、自動化、深度學習、智能化能力,向以體系對抗體系,以智能防護智能的方向演進。