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