宙斯盾DDoS防護系統(tǒng)“降本增效”的云原生實踐

來源: 騰訊云原生
作者:tomdu
時間:2021-10-20
16885
宙斯盾DDoS防護系統(tǒng)作為公司級網(wǎng)絡安全產(chǎn)品,為各類業(yè)務提供專業(yè)可靠的DDoSCC攻擊防護。在黑客攻防對抗日益激烈的環(huán)境下,DDoS對抗不僅需要“降本”還需要“增效”。

導語

宙斯盾DDoS防護系統(tǒng)作為公司級網(wǎng)絡安全產(chǎn)品,為各類業(yè)務提供專業(yè)可靠的DDoS/CC攻擊防護。在黑客攻防對抗日益激烈的環(huán)境下,DDoS對抗不僅需要“降本”還需要“增效”。

隨著云原生的普及,宙斯盾團隊持續(xù)投入云原生架構(gòu)改造和優(yōu)化,以提升系統(tǒng)的處理能力及效率。本文主要介紹宙斯盾防護調(diào)度平臺上云過程實踐與思考。

為什么上云?

云原生作為近年來相當熱門的概念,無論在公司內(nèi)各部門,還是公司外各大同行友商,都受到追捧。云原生涉及技術包括容器、微服務、DevOps、持續(xù)交付等,這些新的技術和理念能帶來哪些收益?在我們看來,

資源共享,動態(tài)擴縮容——“降本”

以宙斯盾防護調(diào)度平臺為例,因為以前申請的物理機資源還在服役期,所以當前大部分后臺服務還是運行在物理機。申請時會適當預留buffer(資源消耗跟外部攻擊威脅有關,波峰波谷相差可達十倍)。這部分buffer雖然作為backup,但同時大部分時間處于空閑狀態(tài),物理機也不便于跨系統(tǒng)、項目共享。

在資源上云階段,CVM已經(jīng)對物理機做了虛擬化,一定程度上實現(xiàn)資源共享。隨著容器化管理平臺的出現(xiàn),資源控制粒度更細。

例如在TKE平臺上,一個容器分配的資源可以精確到0.1核CPU、1 MB內(nèi)存,根據(jù)負載隨時擴縮容。同時所有資源作為一個大池子來共享,減少資源浪費。

容器化管理,快速部署——“增效”

要提升迭代速度,除了開發(fā)環(huán)節(jié),測試、發(fā)布、運維都需要做優(yōu)化。原來物理機部署時,需要運維同學手工或者通過專門的運維發(fā)布平臺來完成發(fā)布,期間還可能因為機器環(huán)境的差異出現(xiàn)發(fā)布失敗或者異常,需要人工處理。

現(xiàn)在通過容器化部署,可以保證服務的運行環(huán)境一致性,避免“雪花服務器”。同時借助容器管理平臺,可以實現(xiàn)一鍵發(fā)布、快速擴縮容,通用的容器容災策略為服務的穩(wěn)定性提供了基本保證。

怎么上云?

當前架構(gòu)

640.webp (5).jpg

如上圖所示,DDoS防護流程包括攻擊檢測(發(fā)現(xiàn)攻擊)和攻擊防護(攻擊流量清洗及正常流量回源)。

在這個過程中,還需要一個主控“大腦”來協(xié)調(diào)檢測系統(tǒng)和防護系統(tǒng),以實現(xiàn)全流程的自動化處理——這個“大腦”就是防護調(diào)度平臺。在檢測到DDoS/CC攻擊時,防護調(diào)度平臺會自動化決策需要調(diào)用的防護設備機房、數(shù)量、以及需要下發(fā)的防護策略,遇上強對抗時還需要實時調(diào)整防護設備上的防護策略,其重要程度可見一斑。

當前防護調(diào)度平臺整體架構(gòu)如下圖所示。

640.webp.jpg

·防護設備:分為ADS(Anti-DDoS System)、HTTP CC、HTTPS CC三大類,結(jié)合多年來團隊在DDoS/CC攻防對抗上的積累,分別集成了各種協(xié)議/場景下的自研防護算法。防護設備部署在全球各地機房入口,在觸發(fā)攻擊告警后牽引并清洗攻擊流量,然后回源。其上部署有管控agent,負責與后臺通信、并管理防護設備。

·接入層:多點接入,內(nèi)網(wǎng)、公網(wǎng)接入。管控agent啟動后隨機選擇一個可用接入進行TCP連接。

·后臺服務:多主/主備部署,向接入注冊心跳,所有后臺請求通過接入分發(fā)、負載均衡,所有agent請求通過接入轉(zhuǎn)發(fā)。

如果按照當前架構(gòu)直接部署到TKE上,系統(tǒng)是可以運行起來,但是由于機器部署和容器部署的特性不同,直接部署總會有些沖突、別扭的地方。

考慮方案時,我們覺得當前架構(gòu)不適應TKE部署的主要地方有:

·服務發(fā)現(xiàn):后臺服務根據(jù)預配置的接入IP列表注冊心跳,容器化部署后IP切換頻繁,通過配置的方式加載接入已經(jīng)不適用。

·無狀態(tài):容器化部署可以做到根據(jù)負載快速擴容,但需要服務做到完全無狀態(tài)才能達到完全水平擴展。當前多主部署的服務都是無狀態(tài)的,可以直接遷移,但主備部署的服務則需要改造。

·配置管理:當前按機器維度管理,與運行環(huán)境相關/無關的配置混在一起。

同時,借著這次上云的機會,我們也希望對系統(tǒng)架構(gòu)做一次大的優(yōu)化,接入公司成熟的公共服務如北極星名字服務、七彩石配置中心、智研,提升研效。

上云架構(gòu)

基于當前架構(gòu),除了把服務做鏡像打包、遷移到TKE上部署,同時對不適應的地方做改造、優(yōu)化。

改造后的大致架構(gòu)及流程如下:

640.webp (1).jpg

·服務發(fā)現(xiàn):后臺服務全部接入北極星名字服務,向北極星注冊實例、定期發(fā)送心跳,接入從北極星獲取各類服務健康實例來分發(fā)請求。

·無狀態(tài):當前系統(tǒng)存在狀態(tài)的場景主要有兩類。

文件下載:主要是防護設備的策略文件下載,無狀態(tài)化改造涉及待下載文件在多個文件服務實例間同步。解決方案是選擇使用CFS來同步文件。

策略分包下發(fā):策略太大時應用層做了分包,同一請求哈希到同一后臺策略服務實例。解決方案是請求中帶上當前分包狀態(tài)信息,任一策略服務實例可以處理且結(jié)果一致。

·配置管理:與運行環(huán)境無關的配置,接入七彩石配置中心,保證同一類型部署的實例配置一致。

·日志監(jiān)控:遷移到智研日志匯、監(jiān)控寶。

兩大“攔路虎”

如何平滑遷移

當前物理機環(huán)境穩(wěn)定運行,計劃逐步灰度、切量到TKE環(huán)境,因此會有一段時間是物理機+TKE混跑的狀態(tài)。管控接入、后臺服務遷移TKE,對于防護設備agent是透明的。

因為防護設備agent只會選擇一個可用接入建立連接,即agent只會連到物理機環(huán)境或TKE環(huán)境,因此后臺服務與agent交互時,混跑狀態(tài)下涉及物理機環(huán)境和TKE環(huán)境互訪的情況。這種情況TKE提供了靈活的配置支持。

640.webp (2).jpg

在TKE上部署服務時,提供了兩種網(wǎng)絡模塊:

·Global Route:VPC內(nèi)私有IP,無法從集群外訪問,不可以注冊到CMDB。開啟隨機端口映射后可從集群外訪問,并可綁定CLB和北極星。

·ENI IP:公司內(nèi)可路由IP,可從集群外訪問,可以注冊CMDB、CLB和北極星。

在混跑灰度期間,接入部署選擇ENI IP的方式,物理機后臺服務訪問TKE接入跟訪問普通內(nèi)網(wǎng)服務無異。遷移完成后,后臺服務改用Global Route的方式,僅允許集群內(nèi)互訪。后臺服務間通過原生的service訪問,對外只通過CLB暴露服務。

640.webp (3).jpg

不斷變化的IP

由于DDoS攻防對抗的業(yè)務特性,我們長期跟IP打交道,對IP有一種特殊的情節(jié)。在內(nèi)部交流中,我們發(fā)現(xiàn)大家在遷移TKE過程中都會遇到一些共性問題。其中,跟IP相關的問題就會經(jīng)常被提及。

在物理機部署環(huán)境,機器IP是固定的且變化頻率較低(幾年一次的機器裁撤)。但是在TKE環(huán)境,重啟一次服務,分配到的容器IP、節(jié)點就可能變了,導致系統(tǒng)中依賴IP實現(xiàn)的功能無法很好適應TKE環(huán)境。

訪問鑒權

比較簡單的鑒權是基于源IP加白,如接口訪問、DB訪問。對于接口訪問,我們定義了一套基于JWT的接口鑒權規(guī)范,所有對外接口不再使用源IP加白的方式。對于DB訪問,當前是使用不限源的獨立DB賬號,并對權限做更細的劃分(精確到表)。后續(xù)DB權限支持實時申請,當容器起來以后通過接口申請當前容器所在節(jié)點的訪問權限。

服務發(fā)現(xiàn)

原來的架構(gòu)中,管控接入層實現(xiàn)了簡單的服務注冊、服務發(fā)現(xiàn)功能,后臺服務通過IP配置來注冊、上報心跳。如果接入層不遷移到TKE、繼續(xù)保持相對固定,那么這套方案還是可行的。但是,接入層遷移到TKE后,自身的部署節(jié)點也在不斷變化,因此需要一個獨立與接入、相對固定的服務注冊與發(fā)現(xiàn)模塊。集群內(nèi)部署的服務可以使用K8s/TKE原生的service,對于物理機和TKE混跑的情況則可以考慮北極星名字服務。

服務暴露

這里包含兩層含義,一個是該暴露給外部的服務如何保持穩(wěn)定,另一個是不該暴露給外部的服務如何隱藏起來。

(1)暴露服務給外部

在物理機環(huán)境,機器裁撤導致服務IP變化就是經(jīng)常出現(xiàn)的問題,通過域名、VIP都可以解決。在TKE上,通過CLB來實現(xiàn)。

(2)隱藏內(nèi)部服務

通過VPC內(nèi)私有IP,就能保證服務無法從集群外訪問,實現(xiàn)隔離。

我們系統(tǒng)的最終目標是:所有對外服務通過接入層暴露出去,做好鑒權;內(nèi)部的后臺服務都隱藏起來,保證安全性。

上云效果

防護調(diào)度平臺上云之后,

(1)在降低成本方面,預計資源使用率可以達到50%以上。之前為了保證DDoS攻擊峰值時能正常運行而預留的一大部分資源,閑時放到整個大資源池里共享,忙時動態(tài)擴容。

(2)在部署效率方面,部署、擴容耗時從天降到分鐘。原來需要運維同學專人專職完成發(fā)布,上TKE后只需開發(fā)同學簡單配置即可完成。同時,隨著業(yè)務場景的快速變化,通過TKE滿足了我們對高防、網(wǎng)關、第三方云等場景的快速部署和擴容。

隨著公司內(nèi)云上服務越來越豐富,通過上云和接入公共服務,優(yōu)化宙斯盾防護調(diào)度平臺的架構(gòu),從而提升系統(tǒng)擴展性和迭代效率。另外,宙斯盾的核心能力是DDoS、CC防護,除了管控上云,我們也正在探索防護能力虛擬化的可能性,為云上各種業(yè)務、場景提供靈活、彈性的防護能力。

立即登錄,閱讀全文
版權說明:
本文內(nèi)容來自于騰訊云原生,本站不擁有所有權,不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多