作者:高尉峰,單位:中移集成智慧城市平臺部信息安全團(tuán)隊
隨著企業(yè)日益依賴API來提供對服務(wù)和數(shù)據(jù)的訪問,他們對API安全保護(hù)的重視程度也與日俱增。
API很容易受到各種安全風(fēng)險的影響,從而導(dǎo)致數(shù)據(jù)泄露、未經(jīng)授權(quán)的訪問和其他形式的濫用。具體風(fēng)險如下:
運營中斷:不安全的API是網(wǎng)絡(luò)攻擊的入口。攻擊者可以針對API發(fā)起多種類型的API攻擊(包括拒絕服務(wù)(DoS)攻擊),以消耗系統(tǒng)資源。這些行為會導(dǎo)致系統(tǒng)運行緩慢或中斷,對用戶體驗造成負(fù)面影響,并造成嚴(yán)重安全事故。
財務(wù)風(fēng)險:應(yīng)對API安全漏洞可能造成高昂的代價,包括糾正安全漏洞、管理公共關(guān)系以及數(shù)據(jù)泄露后的潛在法律成本。
數(shù)據(jù)泄露風(fēng)險:API安全風(fēng)險會威脅到企業(yè)的數(shù)據(jù)完整性、運營連續(xù)性和財務(wù)穩(wěn)定性。實施API安全保護(hù)策略(包括嚴(yán)格的身份驗證和速率限制)對于保護(hù)企業(yè)資產(chǎn)至關(guān)重要。
中移系統(tǒng)集成有限公司智慧城市平臺部基于近年來對API治理的系統(tǒng)研究、創(chuàng)新的實戰(zhàn)化思想和實踐發(fā)現(xiàn),智慧城市平臺部構(gòu)建了云原生API全生命周期管理,將API治理能力融入DevSecOps流程當(dāng)中。以下將從API設(shè)計,API管理,API測試,API監(jiān)控,API防護(hù)的維度介紹云原生API全生命周期管理。
1、API簡介
API代表應(yīng)用程序編程接口,應(yīng)用程序指的是任何具有獨特功能的軟件,接口可以看作是兩個應(yīng)用程序之間的服務(wù)合約。該合約定義了兩者如何使用請求和響應(yīng)相互通信。下圖對API從不同的維度進(jìn)行了分類。
中移集成智慧城市平臺部在大量的實踐經(jīng)驗基礎(chǔ)上,構(gòu)建了自己的安全威脅庫和漏洞防御庫,實現(xiàn)了輕量級威脅建模過程,通過安全評估調(diào)查問卷,從系統(tǒng)結(jié)構(gòu)和使用場景去識別將要構(gòu)建的應(yīng)用類型,然后匹配對應(yīng)的威脅庫和漏洞防御庫,確定安全需求基線,最終得出安全設(shè)計方案。
2、API管理
1、Swagger是一款開源的API設(shè)計工具,主要用于構(gòu)建、設(shè)計、編寫和使用RESTful Web服務(wù)。可以幫助開發(fā)人員設(shè)計和編寫API,以及創(chuàng)建出色的API文檔。Swagger是一個強大的開源框架,支持API開發(fā)全生命周期,包括設(shè)計、構(gòu)建、文檔和使用。
2、通過Proxy代理,對流量進(jìn)行分析也是獲取API信息的一種手段。Mitmproxy可以像正常的代理一樣轉(zhuǎn)發(fā)請求,保障服務(wù)端與客戶端的通信,也可以通過Mitmproxy查看,篡改數(shù)據(jù)包。mitmproxy有兩個關(guān)聯(lián)組件,一個是mitmdump,它是mitmproxy的命令行接口,利用它我們可以對接Python腳本,用 Python實現(xiàn)監(jiān)聽后的處理邏輯。另一個是mitmweb,它是一個Web程序,通過它我們可以查看或者篡改mitmproxy捕獲的請求。
3、使用API網(wǎng)關(guān)發(fā)布和管理API接口也逐漸成為一種主流趨勢。隨著微服務(wù)概念的興起,越來越多的企業(yè)選擇使用微服務(wù)的架構(gòu)方式部署自己的系統(tǒng)。由于微服務(wù)使用的增加,原本一個龐大的單體應(yīng)用,被拆分為多個微服務(wù)系統(tǒng)進(jìn)行獨立維護(hù)和部署,也就造成微服務(wù)系統(tǒng)中存在一定規(guī)模的需要被納管的API接口。這些API接口數(shù)量龐大,對接不同的微服務(wù)系統(tǒng),擁有不同的業(yè)務(wù)需求,造成API管理的難度日益增加,API網(wǎng)關(guān)主要實現(xiàn)以下功能:
1)統(tǒng)一管理
API網(wǎng)關(guān)可提供全生命周期的API管理,涵蓋設(shè)計、開發(fā)、測試、發(fā)布、運維、上架、下架等,實現(xiàn)完整的API解決方案。可輕松管理和部署任意規(guī)模的API。
2)輕松控流
API網(wǎng)關(guān)提供流量控制功能,可通過多種算法,實現(xiàn)精細(xì)化的流控。同時可通過提供靈活自定義的流量控制策略,來保障API服務(wù)的穩(wěn)定和連續(xù)。
3)可視化監(jiān)控
通過API網(wǎng)關(guān)可監(jiān)控API調(diào)用性能指標(biāo)、數(shù)據(jù)延遲以及錯誤等信息,識別可能影響業(yè)務(wù)的潛在風(fēng)險。
4)多層安全防護(hù)
API網(wǎng)關(guān)可實現(xiàn)嚴(yán)格的訪問控制、IP黑白名單控制、認(rèn)證鑒權(quán)、防重放、防攻擊、多種審計等安全措施,全方位保護(hù)API安全調(diào)用,且能實施靈活而精細(xì)的配額管理及流控管理以保護(hù)后端服務(wù)。
5)靈活路由
API支持配置不同的后端,流量可以基于多種策略匹配轉(zhuǎn)發(fā),輕松解決企業(yè)應(yīng)用的灰度發(fā)布,環(huán)境管理等難題。
3、API測試
目前安全業(yè)界常用的測試方法包括:DAST(滲透測試),SAST(靜態(tài)代碼掃描),IAST(交互式應(yīng)用程序安全測試),SCA(軟件成分分析)。以上四種測試方法已經(jīng)在中移集成智慧城市平臺部落地,通過對接CI/CD實現(xiàn)了安全自動化測試,具體的實踐方案如下:
DAST:安全測試人員通過burp suit,appscan,nmap等黑盒掃描工具對系統(tǒng)的接口進(jìn)行安全測試。
SAST:通過掃描源碼中的高中危漏洞,然后在流水線設(shè)置質(zhì)量門禁,保證提交代碼的安全性。
IAST:通過引入洞態(tài)iast系統(tǒng),從流量層面和源碼層面實現(xiàn)漏洞檢測,具有低誤報,確認(rèn)安全問題更方便,自動化程度高的優(yōu)點,成功彌補了DAST和SAST的缺點。
4、API監(jiān)控
網(wǎng)絡(luò)流量數(shù)據(jù)通過全天候全方位實時地識別,并與威脅情報、行為模型匹配,發(fā)現(xiàn)未知威脅、木馬通訊、隱蔽信道等異常行為。利用流量可視化能力,看見資產(chǎn)、看清安全洼地、看透安全隱患,為用戶構(gòu)建靈敏的網(wǎng)絡(luò)威脅感知能力,展示全方位的網(wǎng)絡(luò)安全態(tài)勢。
Kubeshark可以實現(xiàn)捕獲和監(jiān)控容器、pod、命名空間、節(jié)點和集群的所有 API 流量。支持 REST、GraphQL、gRPC、Redis、Kafka、RabbitMQ (AMQP)、DNS、Websockets、TLS 和 mTLS 。
5、API防護(hù)
1)DDOS防護(hù)
nginx作為一款高性能的Web代理和負(fù)載均衡服務(wù)器,我們就可以在Nginx上進(jìn)行設(shè)置,對訪問的IP地址和并發(fā)數(shù)進(jìn)行相應(yīng)的限制。
Nginx限制IP的連接和并發(fā)分別有兩個模塊:
limit_req_zone 用來限制單位時間內(nèi)的請求數(shù),即速率限制。
limit_req_conn 用來限制同一時間連接數(shù),即并發(fā)限制。
2)RASP防護(hù)
在Java技術(shù)棧下,onestone 引擎以 javaagent 的形式實現(xiàn),并運行在 JVM 之上。在應(yīng)用服務(wù)器啟動的時候,onestone 引擎借助 JVM 自身提供的instrumentation 技術(shù),通過替換字節(jié)碼的方式實現(xiàn)hook關(guān)鍵類的關(guān)鍵方法。
在這些關(guān)鍵函數(shù)執(zhí)行之前添加安全檢查,根據(jù)上下文和關(guān)鍵函數(shù)的參數(shù)等信息判斷請求是否為惡意請求,并終止或繼續(xù)執(zhí)行流。該方法能夠準(zhǔn)確定位攻擊,顯示攻擊載荷的執(zhí)行路徑。
中移集成智慧城市平臺部采用onestone系統(tǒng)實現(xiàn)入侵防御。主要解決以下痛點:
漏洞爆發(fā)后的修復(fù)時間少則兩周,多則數(shù)月,存在攻擊空窗期,無法實時攔截攻擊。
開發(fā)人員打安全補丁時無法準(zhǔn)確定位問題,導(dǎo)致安全問題未完全修復(fù)。
現(xiàn)有waf系統(tǒng)存在誤報率高,無法攔截未知威脅,無法感知攻擊,無法精準(zhǔn)溯源的風(fēng)險。
6、API治理價值
1、清查服務(wù)體量持續(xù)加速增長的API
2、形成完整的 API 定義或文檔
3、實時更新生產(chǎn)環(huán)境 API 服務(wù)的變更
4、解決影子API及接口濫用問題
5、檢測API存在的未授權(quán)訪問、敏感數(shù)據(jù)暴露等各類安全風(fēng)險,并提供詳細(xì)的風(fēng)險分析及安全處置建議。