當前位置:
首頁 > 新聞 > DDoS攻擊新玩法之WebSocket

DDoS攻擊新玩法之WebSocket

0x01、WebSocket應用描述&安全業務需求

伴隨著互聯網技術的發展,實時交互的應用場景在互聯網公司大規模使用,例如:

(1)多玩家App遊戲,例如棋牌遊戲

(2)Web導航中的地理位置獲取

(3)即時聊天通訊

各大公司發現它們需要一種高效節能、簡單易用的雙向通信機制來保證數據的實時傳輸。在此背景下,基於HTML5規範的、有Web TCP之稱的WebSocket應運而生。也就是我們一直說的web通訊的長連接。

WebSocket在建立連接後,WebSocket伺服器和Client Agent都能主動的向對方發送或接收數據,就像Socket一樣。

在DDoS攻防領域目前很多遊戲,包括棋牌類遊戲,百萬競猜答題,都在使用WebSocket協議做通訊。伺服器端是Apache Jetty or Tomcat等。傳統WebSocket和WSS防護瓶頸,

(1)由於對Web層協議無法支持,主要是基於DDoS防火牆4層防禦,看不到內部的通訊原理4層防火牆程序一旦配置不當,App遊戲會出現卡頓和掉線情況。

(2)針對CC攻擊,由於4層防火牆限制基於源和目的的限速會導致誤殺,無法處理特別是NAT後IP請求頻率,需要動態調整。

(3)由於客戶App程序超時時間為變動值,有可能觸發4層防護牆防護空連接檢查策略。

0x02、4/7層防火牆原理探究

為了更好的理解WebSocket防護原理,我們首先要研究一下高防產品4/7層防護系統是如何處理進入到防火牆集群的數據如何流轉。哪些細節是涉及到針對使用WebSocket or WSS的App遊戲。

數據流主要經過幾個階段,包括SYN、ACK、HTTP。所以從以上3個階段分析一下。再此之前要先看一下DDoS整體處理流程。

DDoS防火牆處理大致流程:

備註:由於各家防火牆防護機制不同,部分處理有差異

數據流進入DDoS防護引擎需要經過群組流控、全局白名單、全局ACL控制、全局黑名單、畸形包處理、然後進入到SYN防護流程、ACK防護流程、UDP防護流程、ICMP防護流程、還有其他協議的處理流程(SIP等)。

SYN處理流程:

SYN處理流程經過:報文合法性檢測,群組源IP帶寬限制,空連接處理,連接數耗盡處理,3秒重傳檢測,最後進入防護SYN演算法(達到pps閾值防護演算法,同時設置限制反向探測閾值)

ACK防護流程:

ACK防護流程:主要是包含幾部分,第一部分是判斷是不是http數據流,如果是進入URL-ACL處理部分和CC處理部分,如果不是則通過ACK用戶設置pps判斷進入ACK演算法處理流程,同時如果選擇帶回探演算法,需要設置探測截止pps,如果回源流量收錢的話,這是降低成本的方法。

CC防護策略:

CC防護流程:首先處理用戶自定義策略,比如:哪些主機IP、Referer、URL(支持正則)、User-agent、X_forwarded_for等黑白名單。然後確定CC策略是否開啟,進入判斷CC_QPS,判斷如果單IP和總量超過用戶設定的QPS閾值。然後進入對超出閾值的IP訪問進行防機器人提交的方法,從輕到重的處罰,302跳轉、JS跳轉、彈驗證等。

通過以上防護策略描述大家應該知道哪些配置影響websocket遊戲長連接處理。

0x03、高防產品如何支持Web socket&WSS

這個問題涉及到你高防系統架構問題,如果你的高防防火牆是4/7處理後再轉發到用戶源站,還是前端防護牆只處理4層DDoS攻擊,然後把7層處理放到7層轉發系統之上。各有利弊,放到前面可以復用4層處理的數據,包括動態信任列表等,放到後面SLB升級靈活。

如果你的slb在nginx 或者tengine上修改的。

WebSocket使用 ws 或 wss 的統一資源標誌符,根據高防產品共享Nginx代理方式,我們需要同時支持http和WebSocket轉發。Nginx1.3版本以上就支持WebSocket了,但是要求http支持1.1版本。如果高防產品是自動化配置管理,那還需要升級自動化配置程序,WSS證書和https配置相同。

server {

listen80;

server_namews.test

location / {

proxy_pass http://127.0.0.1:8001/;

proxy_redirectoff;

proxy_http_version1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

}

針對WS協議的攻擊目前還沒有太牛的案例,所以使用傳統CC防護演算法可以滿足需求,如果出現在一個連接中出現海量提交,可以在代碼中加入特殊處理流程。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

比特幣沒落,門羅幣崛起:新的Linux 門羅幣挖礦工具——PyCryptoMiner
鍵盤記錄器用法新姿勢:挖礦

TAG:嘶吼RoarTalk |