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