手遊服務防DDOS攻擊方案

1 手遊服務器通用架構

這裏分析的通用架構是以遊戲服務提供的角度,即面向用戶的服務是如何部署的。

1.1 單機架構

一臺主機包含了登錄服務和遊戲服務。

1.2 分區架構

登錄與遊戲獨立開來,而且遊戲服務器還有多臺。通過登錄後選擇指定的遊戲區,遊戲數據則與固定的區關聯。

1.3 跨區架構

登錄與遊戲獨立開來,但有集中的管理服務器管理各個區的服務器,支持集中保存遊戲數據,玩家可以在多個區之間漫遊,系統會找到最佳的服務器提供玩家遊玩。

2 攻擊目標

很明顯,不同的架構都有直接暴露出來的服務入口,包括登錄服務器、遊戲服務器或是管理服務器等,這些入口被拒絕服務攻擊後,新用戶無法登錄、在線玩家紛紛掉線、遊戲服務整體崩潰。
目前的網絡現狀,DDOS拒絕服務輕鬆就擠跨了遊戲服務器駐紮的IDC機房,即使IDC機房能夠勉強堅持的話,也會不堪重負而關停被攻擊的遊戲服務。
所以面向用戶的服務(被稱之爲“公開的服務”)都有被攻擊的風險,因此這些服務都需要啓動高防服務。
在這裏插入圖片描述

3 高防防禦方案

由於業內各個手遊廠商在開發遊戲時,設計需求不同,使用的協議也不相同,即使依賴HTTP協議,也不一定按通用的目標設計,所以在防禦上也不能採用常規的http防禦方案,而是建立了通用的tcp代理服務,通過tcp代理服務程序,可以篩選出真實的IP;同時統計和管理真實IP的併發狀態。

3.1 防禦部署方案

公開的服務必須隱藏起來才能起到防禦的效果,至少在被攻擊的時候需要被隱藏起來。在上面的網絡拓撲圖上部署上防禦平臺,就如下圖示:
在這裏插入圖片描述

3.1.1 流量型攻擊防禦

通過DNS將高防的IP作爲公開服務解析出去,訪問流量及攻擊流量直接訪問到高防節點,清洗掉攻擊流量後,重新封包處理,進入自動VPN,將數據發到源站,由源站端的自動VPN解包後交給源站服務,這時對源站服務來說,數據包就像是網民直接發過來一樣的。
依據部署的環境、性能和成本考慮,源站端的自動VPN也可以採用驅動方式直接安裝在源站服務系統上(如果有均衡設備的則不行)。
在高防節點上的公開服務就具備通用TCP代理的能力,能與TCP代理建立連接的必定是真實存在的客戶端IP,當然這樣的IP不一定是真正的遊戲客戶端。

3.1.2 內容型攻擊常規防禦

如何鑑別請求IP是不是真正的遊戲客戶端,相信很多廠商也已經或多或少的針對這一問題有過比較多的研究,但攻擊者可能會在廠商驗證前就拖跨遊戲服務器,所以針對內容的攻擊防禦也要相應的提前到高防節點的tcp代理服務上。
攻擊者採用的手段通常是:

  1. 慢連接攻擊,即長時間的保持連接,消耗服務器連接資源
  2. 大併發連接,不斷的建立和關閉,消耗服務器的連接處理資源
  3. 無效請求,消息服務器的計算資源
    在代理服務上可以統計到客戶端IP的併發請求情況,結合服務器的處理能力,可以自動篩選出那些可疑IP,對於不在白名單列表中的IP,可以採取攔截措施。

3.1.3 內容型攻擊高級防禦

在一些特殊情況下,攻擊者僞造的請求類似於正常的客戶端,而遊戲本身又不支持更細粒度的驗證時,可以啓動高級防禦。
高級防禦要求遊戲廠商在實現客戶端(瀏覽器類的也可以)時遵循一定的規範,防禦中心處理攻擊時,會有一些規範動作來驗證客戶端行爲,從而更高效的攔截非正常客戶端。

3.2 防禦流程

如上述方案圖中所示,所有需要防禦的服務前面都應該有自動VPN設備或是加載驅動,該設備可對當前的流量進行即時處理,只有符合自動VPN的數據纔會解包,有異常流量時會通告異常到抗D中心。

3.2.1 常規自動防禦

常規自動防禦是指所有的對外服務都解析成設防節點的IP,這種情況下廠商所有的服務都被隱藏起來,有攻擊的時候會直接在抗D中心進行清洗,這裏隱藏的服務包括:

  1. 登錄服務器
  2. 如果有管理服務器的話,包括管理服務器
  3. 遊戲服務器。

3.2.2 高防應急防禦

雖然部署着防禦設備,但沒有把公開服務解析到抗D中心的IP上(這一般是指遊戲廠認爲抗D平臺的網絡不及現有網絡速度好),這種情況下發生攻擊時,就需要啓動高防應急防禦。
啓動的過程可以配置手動或自動。自動啓動是由用戶端的自動VPN監控到攻擊時發出的通告來觸發的。
啓動應急防禦時,源站的故障可能依舊存在,這時需要啓用備用的源站。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章