主頁 >  其他 > 宙斯盾 DDoS 防護系統“降本增效”的云原生實踐

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

2021-10-21 06:23:31 其他

作者

tomdu,騰訊云高級工程師,主要負責宙斯盾安全防護系統管控中心架構設計和后臺開發作業,

導語

宙斯盾 DDoS 防護系統作為公司級網路安全產品,為各類業務提供專業可靠的 DDoS/CC 攻擊防護,在黑客攻防對抗日益激烈的環境下, DDoS 對抗不僅需要“降本”還需要“增效”,隨著云原生的普及,宙斯盾團隊持續投入云原生架構改造和優化,以提升系統的處理能力及效率,本文主要介紹宙斯盾防護調度平臺上云程序實踐與思考,

為什么上云?

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

資源共享,動態擴縮容——“降本”

以宙斯盾防護調度平臺為例,因為以前申請的物理機資源還在服役期,所以當前大部分后臺服務還是運行在物理機,申請時會適當預留 buffer (資源消耗跟外部攻擊威脅有關,波峰波谷相差可達十倍),這部分 buffer 雖然作為 backup ,但同時大部分時間處于空閑狀態,物理機也不便于跨系統、專案共享,在資源上云階段, CVM 已經對物理機做了虛擬化,一定程度上實作資源共享,隨著容器化管理平臺的出現,資源控制粒度更細,例如在 TKE 平臺上,一個容器分配的資源可以精確到0.1核 CPU 、1 MB 記憶體,根據負載隨時擴縮容,同時所有資源作為一個大池子來共享,減少資源浪費,

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

要提升迭代速度,除了開發環節,測驗、發布、運維都需要做優化,原來物理機部署時,需要運維同學手工或者通過專門的運維發布平臺來完成發布,期間還可能因為機器環境的差異出現發布失敗或者例外,需要人工處理,現在通過容器化部署,可以保證服務的運行環境一致性,避免“雪花服務器”,同時借助容器管理平臺,可以實作一鍵發布、快速擴縮容,通用的容器容災策略為服務的穩定性提供了基本保證,

怎么上云?

當前架構

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

在這個程序中,還需要一個主控“大腦”來協調檢測系統和防護系統,以實作全流程的自動化處理——這個“大腦”就是防護調度平臺,在檢測到 DDoS/CC 攻擊時,防護調度平臺會自動化決策需要呼叫的防護設備機房、數量、以及需要下發的防護策略,遇上強對抗時還需要實時調整防護設備上的防護策略,其重要程度可見一斑,

當前防護調度平臺整體架構如下圖所示,

  • 防護設備:分為 ADS ( Anti-DDoS System )、 HTTP CC 、 HTTPS CC 三大類,結合多年來團隊在 DDoS/CC 攻防對抗上的積累,分別集成了各種協議/場景下的自研防護演算法,防護設備部署在全球各地機房入口,在觸發攻擊告警后牽引并清洗攻擊流量,然后回源,其上部署有管控 agent ,負責與后臺通信、并管理防護設備,
  • 接入層:多點接入,內網、公網接入,管控 agent 啟動后隨機選擇一個可用接入進行 TCP 連接,
  • 后臺服務:多主/主備部署,向接入注冊心跳,所有后臺請求通過接入分發、負載均衡,所有 agent 請求通過接入轉發,

如果按照當前架構直接部署到 TKE 上,系統是可以運行起來,但是由于機器部署和容器部署的特性不同,直接部署總會有些沖突、別扭的地方,考慮方案時,我們覺得當前架構不適應 TKE 部署的主要地方有:

  • 服務發現:后臺服務根據預配置的接入 IP 串列注冊心跳,容器化部署后 IP 切換頻繁,通過配置的方式加載接入已經不適用,
  • 無狀態:容器化部署可以做到根據負載快速擴容,但需要服務做到完全無狀態才能達到完全水平擴展,當前多主部署的服務都是無狀態的,可以直接遷移,但主備部署的服務則需要改造,
  • 配置管理:當前按機器維度管理,與運行環境相關/無關的配置混在一起,

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

上云架構

基于當前架構,除了把服務做鏡像打包、遷移到 TKE 上部署,同時對不適應的地方做改造、優化,改造后的大致架構及流程如下:

  • 服務發現:后臺服務全部接入北極星名字服務,向北極星注冊實體、定期發送心跳,接入從北極星獲取各類服務健康實體來分發請求,
  • 無狀態:當前系統存在狀態的場景主要有兩類,
    • 檔案下載:主要是防護設備的策略檔案下載,無狀態化改造涉及待下載檔案在多個檔案服務實體間同步,解決方案是選擇使用 CFS 來同步檔案,
    • 策略分包下發:策略太大時應用層做了分包,同一請求哈希到同一后臺策略服務實體,解決方案是請求中帶上當前分包狀態資訊,任一策略服務實體可以處理且結果一致,
  • 配置管理:與運行環境無關的配置,接入七彩石配置中心,保證同一型別部署的實體配置一致,
  • 日志監控:遷移到智研日志匯、監控寶,

兩大“攔路虎”

如何平滑遷移

當前物理機環境穩定運行,計劃逐步灰度、切量到TKE環境,因此會有一段時間是物理機+ TKE 混跑的狀態,管控接入、后臺服務遷移 TKE ,對于防護設備 agent 是透明的,因為防護設備 agent 只會選擇一個可用接入建立連接,即 agent 只會連到物理機環境或 TKE 環境,因此后臺服務與 agent 互動時,混跑狀態下涉及物理機環境和 TKE 環境互訪的情況,這種情況 TKE 提供了靈活的配置支持,

在 TKE 上部署服務時,提供了兩種網路模塊:

  • Global Route : VPC 內私有 IP ,無法從集群外訪問,不可以注冊到 CMDB ,開啟隨機埠映射后可從集群外訪問,并可系結 CLB 和北極星,
  • ENI IP :公司內可路由 IP ,可從集群外訪問,可以注冊 CMDB 、 CLB 和北極星,

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

不斷變化的 IP

由于 DDoS 攻防對抗的業務特性,我們長期跟 IP 打交道,對 IP 有一種特殊的情節,在內部交流中,我們發現大家在遷移 TKE 程序中都會遇到一些共性問題,其中,跟 IP 相關的問題就會經常被提及,

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

訪問鑒權

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

服務發現

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

服務暴露

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

(1)暴露服務給外部

在物理機環境,機器裁撤導致服務IP變化就是經常出現的問題,通過域名、 VIP 都可以解決,在 TKE 上,通過 CLB 來實作,

(2)隱藏內部服務

通過 VPC 內私有 IP ,就能保證服務無法從集群外訪問,實作隔離,

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

上云效果

防護調度平臺上云之后,

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

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

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

關于我們

更多關于云原生的案例和知識,可關注同名【騰訊云原生】公眾號~

福利:

   ①公眾號后臺回復【手冊】,可獲得《騰訊云原生路線圖手冊》&《騰訊云原生最佳實踐》~

   ②公眾號后臺回復【系列】,可獲得《15個系列100+篇超實用云原生原創干貨合集》,包含Kubernetes 降本增效、K8s 性能優化實踐、最佳實踐等系列,

【騰訊云原生】云說新品、云研新術、云游新活、云賞資訊,掃碼關注同名公眾號,及時獲取更多干貨!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327808.html

標籤:其他

上一篇:接下來或許是一年中跳槽的最佳時間

下一篇:倒計時 3 天!10.23 相約杭州,云原生 Meetup 等你來!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more