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