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