API已成為企業(yè)內(nèi)部數(shù)據(jù)泄露的罪魁禍?zhǔn)?/h1>
一、引言
大部分企業(yè)的數(shù)據(jù)泄露都來自于內(nèi)鬼,而通過API竊取企業(yè)內(nèi)部數(shù)據(jù)的比例越來越高。最近和一些甲方企業(yè)信息安全部門溝通,發(fā)現(xiàn)企業(yè)一些內(nèi)部系統(tǒng)API相互調(diào)用并沒有采取認(rèn)證、鑒權(quán)等安全措施,企業(yè)內(nèi)部人員非常方便通過API接口竊取數(shù)據(jù)進(jìn)行牟利。在他們安全觀點(diǎn)里面,認(rèn)為只需要管好數(shù)據(jù)庫就行了,部署數(shù)據(jù)庫審計(jì)、保壘機(jī)等相關(guān)安全產(chǎn)品就行了,但是隨著業(yè)務(wù)系統(tǒng)復(fù)雜化和技術(shù)更迭,實(shí)際上相應(yīng)的暴露面也會增加,因此安全防護(hù)手段也必須與時(shí)俱進(jìn)。如果要做好企業(yè)數(shù)據(jù)安全,API安全問題也不能忽視。
二、什么是API?
API是“應(yīng)用程序編程接口”(Application Programming Interface)的縮寫,它是一套規(guī)則、協(xié)議和工具,用于構(gòu)建軟件應(yīng)用。 API定義了不同軟件組件之間如何交互,允許開發(fā)者更容易地使用某些功能,而無需了解其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。
API的作用和重要性在于它提供了一種標(biāo)準(zhǔn)化的方式,使得不同的軟件或系統(tǒng)之間可以進(jìn)行數(shù)據(jù)和指令的傳輸,從而實(shí)現(xiàn)集成和共享。通過API,應(yīng)用程序可以相互通信,執(zhí)行特定的任務(wù),而不需要深入了解對方的內(nèi)部工作機(jī)制。這使得軟件開發(fā)更加高效,降低了不同系統(tǒng)之間的耦合度,提高了系統(tǒng)的可擴(kuò)展性和可維護(hù)性。
了解API安全,必須要了解API和URL,這兩者容易弄混淆。URL是統(tǒng)一資源定位符,是對資源的位置和訪問方法的一種簡單表示,用于訪問特定的網(wǎng)頁、圖像或文件。API則包括請求地址(URL)、請求方法、請求參數(shù)、響應(yīng)結(jié)果、時(shí)間戳、密鑰、Hash算法和API網(wǎng)關(guān)等多個(gè)部分。
三、API資產(chǎn)是什么?
API也是網(wǎng)絡(luò)空間資產(chǎn)的一部分,并不是只有傳統(tǒng)的終端、網(wǎng)絡(luò)設(shè)備、安全設(shè)備、容器等,隨著業(yè)務(wù)場景、網(wǎng)絡(luò)架構(gòu)、新興技術(shù)的發(fā)展,網(wǎng)絡(luò)空間資產(chǎn)類別會越來越豐富,越來越細(xì)粒度,只有把網(wǎng)絡(luò)空間的資產(chǎn)摸清摸細(xì),才能更好地保護(hù)網(wǎng)絡(luò)空間安全。API資產(chǎn)除了每條基礎(chǔ)信息外,還應(yīng)當(dāng)包括部署IP、API訪問源、通信次數(shù)、功能標(biāo)簽、責(zé)任人等,刻畫得越細(xì)致就越能弄清API資產(chǎn)的風(fēng)險(xiǎn),必須做好API資產(chǎn)的畫像。
API有很多類型,按照不同協(xié)議和風(fēng)格劃分,包括RESTful API、GraphQL API、SOAP API、gRPC API等,其中RESTful API應(yīng)用得最為廣泛。
四、如何識別API資產(chǎn)?
高效和精準(zhǔn)識別API資產(chǎn)非常重要,識別API資產(chǎn)的方法很多,但是都不能完全解決相應(yīng)問題,必須依靠多種識別方法共同作用才能達(dá)到非常好的效果。下面列舉一些識別方法。
綜合來說,如果要做好API資產(chǎn)識別,必須結(jié)合多種方法和技術(shù),結(jié)合不同的應(yīng)用場景,在不影響業(yè)務(wù)情況下,做好API資產(chǎn)的識別,在現(xiàn)實(shí)情況中,還是會存在將URL識別為API的情況,也可以結(jié)合機(jī)器學(xué)習(xí)等相關(guān)技術(shù)作為輔助來做API資產(chǎn)識別。
五、如何保護(hù)API安全?
業(yè)務(wù)系統(tǒng)非常多的企業(yè),API安全至關(guān)重要,很多情況下存在監(jiān)管的真空地帶,研發(fā)人員為了省事方便,并沒有嚴(yán)格遵循安全原則。以下列舉一些API安全保護(hù)的方法。
1.認(rèn)證和授權(quán)
使用Oauth2.0、JWT等標(biāo)準(zhǔn)協(xié)議來驗(yàn)證用戶身份,限制資源訪問,做好API密鑰管理和訪問控制策略。
2.加密和脫敏
使用 HTTPS來保護(hù)數(shù)據(jù)在傳輸過程中的安全,防止中間人攻擊,使用AES、SM4等加密方法對數(shù)據(jù)庫中敏感信息進(jìn)行加密,或使用動(dòng)態(tài)脫敏方法對數(shù)據(jù)進(jìn)行脫敏。
3.API監(jiān)測和分析
將API進(jìn)行集中管理,詳細(xì)記錄API接口調(diào)用日志,基于UEBA技術(shù),當(dāng)發(fā)現(xiàn)異常調(diào)用時(shí)進(jìn)行告警和處置。
4.加強(qiáng)代碼審計(jì)和安全驗(yàn)證
企業(yè)信息安全部門應(yīng)對業(yè)務(wù)系統(tǒng)的代碼進(jìn)行專門審計(jì),加強(qiáng)API的統(tǒng)一管理,持續(xù)針對API進(jìn)行安全驗(yàn)證。
保護(hù)API安全的方法很多,最重要的一點(diǎn)是從管理做起、從安全開發(fā)做起,不能忽視API導(dǎo)致數(shù)據(jù)泄露的現(xiàn)象和問題。
六、總結(jié)
在企業(yè)內(nèi)部通過API竊取公司內(nèi)部數(shù)據(jù)的情況還是很多的,大部分企業(yè)默認(rèn)內(nèi)部是安全的,沒有認(rèn)識到即使都是內(nèi)部系統(tǒng)也應(yīng)當(dāng)注重API安全,通過API竊取數(shù)據(jù)通常難以發(fā)現(xiàn)和溯源,如果本身沒有日志記錄,追溯更是難上加難,正好成為企業(yè)內(nèi)鬼可利用的弱點(diǎn)。