炸房掛?
眾所周知,在一些吃雞類、MOBA對戰類游戲中,我們經常都會遇到一些”神仙局”,比如在吃雞,FPS類游戲中經常遇到”槍槍爆頭”,在MOBA類游戲中遇到各種對手的技能零CD無限釋放,這型別的外掛,都是利用模擬滑鼠鍵盤,或者是截取Sock和API內容,將其修改達到效果的,
而另外一類的外掛,就是關鍵的對戰時刻,直接讓玩家網路卡頓甚至掉線了;或者在游戲剛開始的時候,直接讓所有玩家掉線,然后通過控制攻擊的停止時間,更快地重新連接到戰斗服中,比如在吃雞游戲里面,如果游戲剛開始的時候,大家都掉線了,然后60秒后再重連回去,首先重連成功的玩家(一般是開外掛的玩家,因為他可以控制停止時間),將可以輕易地將周邊的落地玩家擊殺,從而獲利,這類外掛統稱為“炸房掛”,這就是今天主要的話題,
游戲中的UDP協議
在即時多人對戰類的游戲里面,通常都會使用UDP協議直接讓多個玩家連接到同一局戰斗服務器中(同一局對戰/副本,會分配到相同的公網IP地址和埠),所以惡意玩家(開掛)是可以輕易地獲取到具體的對戰服務器地址和埠的,

DDoS攻擊與UDP
常見的DDoS攻擊手段,主要分為兩種型別:
1. 控制外部大量的肉機,使用腳本,讓這些肉機使用腳本,直接攻擊目標服務器,
2. 僅需要控制少量的肉機,通過訪問互聯網的公共服務,然后通過修改源地址,對目標服務器進行分布式的反射攻擊,

我們來對比一下TCP和UDP的協議包結構:

我們可以發現,在UDP的業務流中,并不像TCP那樣,有多個欄位維度可以檢測的,
所以總結一下,UDP的主要特點是:
1. 無連接
2. 源IP容易偽造(有很多運營商是不會檢測源地址是否是自己分配的),難溯源
3. 攻擊成本低
Azure防護方案
所以,針對這些攻擊,我們有5種主要的防護思路:
1. 服務器白名單、黑名單
只允許業務目的埠,屏蔽常見的反射源埠,
2. 地理位置過濾
針對業務用戶的地理位置特性,在遇到UDP反射攻擊時,優先從用戶量最少地理位置的源IP進行封禁阻斷,直到將例外地理位置的源IP請求全部封禁,使流量降至服務器可處理的范圍之內,可有效減輕干擾流量,
3. 基于IP和埠的限速
通過對源IP、源埠、目標IP、目標埠的多種搭配組合進行限速控制,實作靈活有效的防護策略,降低業務影響范圍,
4. 流量例外波動抑制演算法
對正常的業務流量進行學習建模,當某類例外流量出現快速突增的波動時,自動判斷哪些是例外從而進行限速/封禁,以避免對正常流量造成影響,
5. 指紋(水印)過濾
協商好特定的水印演算法,在客戶端發包的時候帶上水印欄位,然后通過水印過濾識別正常還是攻擊流量,
而這5種防護的思路,Azure都能提供對應的防護方案,
1. Network Security Group
2. Azure Firewall
3. 高級定制防護
4. Azure DDoS Standard Plan
5. 高級定制防護
我們大致總結為三道主要的防線:
第一道防線:Azure DDoS Standard Plan
啟用Azure DDoS標準防護,阻擋大部分的3-4層攻擊,

第二道防線:添加水印
在手機客戶端發送每條資訊中都嵌入了水印,而攻擊的報文沒有攜帶水印,Azure可以通過這些水印進行過濾,只有攜帶水印的報文,才會到達后端游戲服務器,從而達到防護的效果,

第三道防線:基于埠的速率限制
我們不能保障水印方案可以100%抵擋所有DDoS流量,所以當DDoS仍然可以到達后端服務器的時候,我們可以通過限制每個埠的速率,以犧牲一局游戲的代價(作廢處理),來換取整臺服務器上的其他游戲房間的正常運行,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/349736.html
標籤:其他
