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