如今,數(shù)據(jù)已成為新興的生產(chǎn)要素,是國家基礎(chǔ)性和戰(zhàn)略性資源,隨之而產(chǎn)生的數(shù)據(jù)安全需求也愈發(fā)凸顯。而作為連接數(shù)據(jù)和應(yīng)用之間的重要通道,API正成為攻擊者眼中撬開數(shù)據(jù)“蜜罐”的開瓶器,API目前所面臨的嚴(yán)峻安全挑戰(zhàn),很容易被管理者所忽視。
今年3月初,安全公司Salt Security發(fā)布API安全報告,報告綜合了該公司針對200名IT及安全人員的調(diào)查反饋和來自該公司客戶的實證數(shù)據(jù)。結(jié)果顯示,91%的受訪公司企業(yè)過去一年經(jīng)歷過API相關(guān)問題。超過半數(shù)(54%)的受訪企業(yè)在其API中發(fā)現(xiàn)了漏洞,46%的受訪企業(yè)出現(xiàn)了身份驗證問題,而20%指出了爬蟲和數(shù)據(jù)抓取工具引發(fā)的問題,API成數(shù)據(jù)安全最大風(fēng)險敞口。OWASP在2019年將API安全列為未來最受關(guān)注的十大安全問題,2020年,中國人民銀行發(fā)布了《商業(yè)銀行應(yīng)用程序接口安全管理規(guī)范》,三大運營商也相繼發(fā)布了API安全管理規(guī)范。這里我們先回顧一下2019年OWASP 10大API安全風(fēng)險。
1、損壞的對象級別授權(quán)
API傾向于暴露那些處理對象識別的端點,造成了廣泛的攻擊面訪問控制問題。在每個能夠訪問用戶輸入數(shù)據(jù)的功能中,都應(yīng)考慮對象級別授權(quán)檢查。
2、損壞的用戶身份驗證
身份驗證機制通常實施不正確,從而使攻擊者可以破壞身份驗證令牌或利用實施缺陷來臨時或永久地假冒其他用戶的身份。損害系統(tǒng)識別客戶端/用戶的能力會整體損害API安全性。
3、數(shù)據(jù)泄露過多
開發(fā)人員傾向于公開所有對象屬性而不考慮其個體敏感性,依靠客戶端執(zhí)行數(shù)據(jù)過濾并顯示。
4、缺乏資源和速率限制
通常,API不會對客戶端/用戶可以請求的資源大小或數(shù)量施加任何限制。這不僅會影響API服務(wù)器的性能,從而導(dǎo)致拒絕服務(wù)(DoS),而且還為諸如暴力破解之類的身份驗證漏洞敞開了大門。
5、功能級別授權(quán)已損壞
具有不同層級、分組和角色的復(fù)雜訪問控制策略,以及管理功能和常規(guī)功能之間的模糊不清,往往會導(dǎo)致授權(quán)缺陷。通過利用這些問題,攻擊者可以訪問其他用戶的資源和/或管理功能。
6、批量分配
將客戶端提供的數(shù)據(jù)(例如JSON)綁定到數(shù)據(jù)模型,而沒有基于白名單的適當(dāng)屬性過濾,通常會導(dǎo)致批量分配。無論是猜測對象屬性、瀏覽其他API端點、閱讀文檔或在請求有效負(fù)載中提供其他對象屬性,都是攻擊者可以修改權(quán)限之外的對象屬性。
7、安全性配置錯誤
最常見的安全配置錯誤是不安全的默認(rèn)配置、不完整或臨時配置、開放的云存儲、錯誤配置的HTTP標(biāo)頭,不必要的HTTP方法、跨域資源共享(CORS)以及包含敏感信息的冗長錯誤消息導(dǎo)致的。
8、注入
當(dāng)不受信任的數(shù)據(jù)作為命令或查詢的一部分發(fā)送到解釋器時會發(fā)生注入缺陷,例如SQL、NoSQL的命令注入等。攻擊者的惡意數(shù)據(jù)可能會誘使解釋器執(zhí)行非預(yù)期的命令,或未經(jīng)授權(quán)訪問數(shù)據(jù)。
9、資產(chǎn)管理不當(dāng)
與傳統(tǒng)的Web應(yīng)用程序相比,API傾向于公開更多的端點,這使得文檔的準(zhǔn)確性和及時更新顯得尤為重要。健康的主機和最新的API版本能夠有效減輕諸如API版本過期以及調(diào)試端點暴露之類的安全問題。
10、日志和監(jiān)控不足
日志和監(jiān)控不足,再加上事件響應(yīng)的缺失或無效集成,使攻擊者可以進一步攻擊系統(tǒng),長期駐留,并橫向移動到更多系統(tǒng)以篡改、提取或破壞數(shù)據(jù)。
整體來看,API所面臨的風(fēng)險包括:憑據(jù)失陷、越權(quán)訪問、數(shù)據(jù)篡改、違規(guī)爬取、數(shù)據(jù)泄露等。從API的安全訪問流程上進行評估,實施的防護措施應(yīng)包含有效的身份認(rèn)證、可控的訪問授權(quán)、針對特定數(shù)據(jù)返回結(jié)果的篩選、訪問異常行為檢測及響應(yīng)等。而在大多數(shù)業(yè)務(wù)場景下,API在對外提供服務(wù)時并沒有部署良好的防護機制。
為了提高API安全性,根據(jù)OWASP提出的API威脅所包含的攻擊威脅,API管控應(yīng)做到內(nèi)化于心、外化于行。在內(nèi)部做到心中有數(shù),在外部做到知行合一。我們可以在以下方面進行應(yīng)用或者提升,以保障API服務(wù)使用體驗。
1、API的安全防護離不開業(yè)務(wù)層面上對API的開發(fā)管理。一般來說,API的安全開發(fā)需要開發(fā)人員具備API安全開發(fā)的知識和意識,并遵循安全開發(fā)規(guī)范對API進行開發(fā)和部署。
2、對API資產(chǎn)的統(tǒng)一管理,基于數(shù)據(jù)建模自動發(fā)現(xiàn)被保護站點的API資產(chǎn),對API資產(chǎn)進行梳理、分析和上下線,幫助客戶實現(xiàn)API資產(chǎn)的生命周期管理。
3、利用智能規(guī)則匹配及行為分析的智能威脅檢測引擎,持續(xù)監(jiān)控并分析流量行為,有效檢測威脅攻擊。智能威脅檢測引擎在用戶與應(yīng)用程序交互的過程中收集數(shù)據(jù),并利用統(tǒng)計模型來確定HTTP請求的異常。一旦確定異常情況,智能引擎就會使用機器學(xué)習(xí)獲得的多種威脅模型來確定異常攻擊。
4、對API傳輸中的敏感數(shù)據(jù)進行識別,針對敏感數(shù)據(jù)可以進行脫敏處理或者實時攔截,防止敏感數(shù)據(jù)泄露。
5、對API接口的訪問行為進行分析,通過多維度建立API訪問基線、API威脅建模,發(fā)現(xiàn)異常訪問行為,避免惡意訪問和接口濫用造成的業(yè)務(wù)損失。通過分析和監(jiān)測API接口被訪問和調(diào)用的頻率來確保API接口未被攻擊者攻擊以及數(shù)據(jù)被泄漏。一般來說被攻擊的API接口往往會出現(xiàn)被調(diào)用次數(shù)增多或者頻率與正常情況出現(xiàn)較大差異,因此通過限制API接口被訪問的情況,進行限流等方式可以防護API出現(xiàn)被攻擊者攻擊甚至是拒絕服務(wù)的情況。
6、使用令牌技術(shù),通過令牌建立API接口的可信身份,然后使用屬于可信身份的令牌才能夠?qū)崿F(xiàn)對服務(wù)和數(shù)據(jù)資源等進行訪問以及控制。
API安全已經(jīng)成為企業(yè)時刻需要關(guān)注的安全問題,缺乏良好防護策略的API服務(wù),不僅會對用戶的使用體驗以及個人隱私帶來威脅,而且還會使企業(yè)面臨未知的安全風(fēng)險。為了提高API安全性,建立起保護整個API生命周期的機制,開發(fā)人員需要在設(shè)計和開發(fā)階段,對API的安全性進行良好的構(gòu)建和設(shè)計。對于管理人員來說,則可以使用API安全管理工具,從而更好地對未知風(fēng)險進行檢測和防護,做到未雨綢繆、防患于未然。