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