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防護演算法可以滿足需求,如果出現在一個連接中出現海量提交,可以在代碼中加入特殊處理流程。
※比特幣沒落,門羅幣崛起:新的Linux 門羅幣挖礦工具——PyCryptoMiner
※鍵盤記錄器用法新姿勢:挖礦
TAG:嘶吼RoarTalk |