GH GambleHub

DDoS數據包保護和過濾

1)為什麼需要它

DDoS是資源的「質量降解」:帶/pps,狀態表,內核/IRQ CPU,連接池,應用程序限制。目的是放松保護:消除網絡周邊的體積,中和協議異常到TCP/IP堆棧,並在L7上切斷不需要的請求,同時為合法用戶保留SLO。

2)攻擊類

2.1 L3/L4 (volumetric/protocol)

Volumetric: UDP flood, UDP-reflection/amplification (DNS/CLDAP/NTP/SSDP/memcached/mDNS), GRE flood.

Protocol/state exhaustion: SYN flood, ACK/RST flood, TCP connection-exhaustion, ICMP flood, TCP fragmentation.

QUIC/UDP功能:虛假的開始/回歸風暴,spoofed源。

2.2 L7 (application)

HTTP/1.1:查詢昂貴的路線,頭部超大/場滑動。

HTTP/2: Rapid Reset, stream-flood, HEADERS flood, PRIORITY abuse.

HTTP/3 (QUIC)-連接/線程未完成,Initial flood。

Slow-атаки: slowloris/slow-read/slow-POST.

gRPC/WebSocket:無限流、消息流、大型框架。

3)基本保護架構

1.Anycast + Scrubbing

在全局範圍內噴灑流量並通過提供商爭奪中心(切斷邊緣的volumetric/欺騙活動)。

2.Multi-CDN / Multi-Edge

域差異(Web,API,靜態),read負載的保護和緩存聚合。

3.其周邊的低級過濾器

路由器上的ACL(RFC1918,bogon,故意虛假端口)。
eBPF/XDP用於通過簽名和rate限制提前下降到conntrack。

4.L7周邊(NGINX/Envoy/WAF)

按鍵壓縮RPS,挑戰(captcha/PoW),緩存,優先級「昂貴」路徑。

5.內部可持續性

連接池,隊列,電路/時間,服務隔離(bulkhead)和帶有「堵塞」(shedder)的自動緩存。

4)網絡「閥門」: 立即打開什麼

4.1 Linux sysctl(內核/堆棧)

bash
TCP SYN flood sysctl -w net. ipv4. tcp_syncookies=1 sysctl -w net. ipv4. tcp_max_syn_backlog=4096 sysctl -w net. ipv4. tcp_synack_retries=3

Conntrack/sysctl -w net tables. netfilter. nf_conntrack_max=262144 sysctl -w net. netfilter. nf_conntrack_tcp_timeout_established=300

ICMP/redirect sysctl -w net. ipv4. icmp_echo_ignore_broadcasts=1 sysctl -w net. ipv4. conf. all. accept_redirects=0 sysctl -w net. ipv4. conf. all. send_redirects=0

sysctl -w net socket resources. core. somaxconn=4096 sysctl -w net. core. netdev_max_backlog=250000 sysctl -w net. core. rmem_max=134217728 sysctl -w net. core. wmem_max=134217728

4.2 nftables:基本過濾器和軟件包上的ratelimit

nft table inet filter {
sets {
bogon { type ipv4_addr; flags interval; elements = { 0. 0. 0. 0/8, 10. 0. 0. 0/8, 100. 64. 0. 0/10,
127. 0. 0. 0/8, 169. 254. 0. 0/16, 172. 16. 0. 0/12, 192. 0. 2. 0/24, 192. 168. 0. 0/16, 198. 18. 0. 0/15, 224. 0. 0. 0/4 } }
}
chains {
input {
type filter hook input priority 0; policy drop;
ip saddr @bogon drop ct state established,related accept

UDP amplification ports - limit pps udp dport {53,123,1900,11211,389,1900,5353} limit rate over 2000/second drop

SYN rate-limit tcp flags syn tcp dport {80,443} limit rate over 2000/second drop

ICMP flood ip protocol icmp limit rate 100/second accept
}
}
}

4.3 XDP/eBPF(想法)

帶有spoofed源的早期數據包(歡迎路由器上的uRPF)。
pps per/32和per/24哈希桶;動態「隔離」源。
UDP-reflection簽名:DNS響應到輸入(在上下文之外過濾)。

5) UDP加工: 庫存和單元

常見反射器/放大器:DNS(開放解析器),NTP(單片),CLDAP,SSDP,mDNS,Memcached(UDP),Chargen。

措施:
  • 關閉/限制UDP服務,最大限度地減少打開的端口。
  • 在外圍限制已知端口的pps/比特率。
  • DNS推薦:僅對其網絡進行遞歸,RRL(響應率限制),ANY最小化。
  • NTP只是對值得信賴的「盜版」,對公共的「盜版」。

6) TCP state exhaustion

SYN flood:「tcp_syncookies=1」,上升「tcp_max_syn_backlog」,「synack_retries=3」,通過pps下降。
ACK/RST洪水:低級限制,刪除非法序列(nftables/ebpf)。
Border上的Conntrack-less:在無狀態簽名上可能存在過濾器的地方,不要浪費狀態表。

7)HTTP/2/3和「智能」L7攻擊

HTTP/2快速重置:RST框架頻率限制和開放流數;在異常時關閉連接。

Stream abuse: лимит concurrent streams, headers size, max frame size.

QUIC/HTTP/3:限制Initial pps,包括Retry;短的handshake taymout。

NGINX (L7片段)

nginx
Header/body constraint client_max_body_size 1m;
large_client_header_buffers 4 8k;

HTTP/2 limits http2_max_concurrent_streams 128;
http2_recv_buffer_size 256k;

Rate limit by IP (example)
limit_req_zone $binary_remote_addr zone=reqs:20m rate=100r/s;
limit_req zone=reqs burst=200 nodelay;

Envoy(反重置和限制)

yaml http2_protocol_options:
max_concurrent_streams: 128 initial_stream_window_size: 65536 max_outbound_frames: 10000 stream_error_on_invalid_http_messaging: true

8)慢速攻擊和資源保護

Slowloris/slow-read/slow-POST:啟用「proxy_request_buffering on」,低平均時間,最低可接受的「read_rate」。
在請求的較長跨包間隔內終止連接。
在應用程序上-早期閱讀/丟棄主體,JSON尺寸/深度限制。

9) L7過濾: 誰更重要-讓它通過

流量分類:known good (mTLS/JWT合作夥伴),註冊用戶,匿名。
優先級:「昂貴」的寫作路線(存款/結論)-保護但跳過已確認的路線;讀取目錄-緩存+throttle。
挑戰層:高峰時灰色區域的captcha/PoW/JS挑戰。

10)緩存,coalescing和退化

用於靜態/準靜態響應的邊緣緩存,「stale-wile-revalidate」。
請求協商:在代理和應用程序中將並行請求捕獲到一個密鑰。
Degrade模式:禁用次要字節(個性化、繁重的報告),發出「輕松」頁面。

11)可觀測性和遙測

度量(per RED/節點/群集):
  • L3/L4: `pps_in/out`, `bps_in/out`, `drop_pps{reason}`, `syn_recv`, `conntrack_used/limit`, `xdp_drop_pps`.
  • L7: `requests_total{route}`, `429_total`, `challenge_total{type}`, `h2_rst_rate`, `slow_req_total`.
  • 相關:CPU IRQ軟硬,NIC queue drops, run-queue length.

Logs:采樣,按/24,ASN,端口和簽名匯總;沒有PII。
Tracing:包含在白名單上,緊急擴展調試示意圖。

12)應對計劃(runbook)

1.細節:觸發pps/bps/429/h2_rst_rate閾值。
2.分類:級別(L3/4/7),協議(UDP/TCP/h2/h3),地理/ASN。

3.閥門:
  • 在提供程序上啟用scrubbing/blackhole配置文件,
  • 加強nftables/ebpf限制,
  • 降低L7極限並提高挑戰,
  • 啟用「Retry for QUIC」 (Initial flood)。
  • 4.通訊:狀態頁面,合作夥伴通知模板。
  • 5.Forenzika: PCAP捕獲60-120秒,top talkers ASNs/ports采樣。
  • 6.回顧:更新簽名、閾值、反射器列表。

13)測試和演習

每季一次DDoS-drill花花公子:合成UDP/HTTP bursts,慢流量,HTTP/2重置。
Game day:在CDN之間切換Anycast/遷移,降級為「輕型模式」。
提供商驗證:SLA scrubbing,過濾器打開/關閉時間,max pps/bps。

14)反模式

在volumetric攻擊中僅依靠L7-WAF。
Border上缺乏uRPF/ACL,並且正面「重」過濾。
無限制的標題/身體和長長的保持在頂峰。
沒有Anycast/多邊緣的單一區域/ROR。
缺少NIC/IRQ/CPU庫存和隊列監視。
沒有緩存/聚合-每個後端額外的RPS。

15) iGaming/財務細節

時間高峰(比賽/德比/樂透抽簽):提前擴大POP容量,包括激進的系數緩存,為匿名者鋪設金絲雀挑戰賽。
支付/出站路線:帶有mTLS的單獨邊緣池,短時間,競爭限制;沒有0-RTT。
地理政策:區域性同行,ASN過濾的「托管」,快速地理切換。
與DDoS事件中的防凍交叉:velocity限制和Risk API移至「硬」配置文件。

16)準備就緒支票清單

[] Anycast или multi-edge/CDN;已檢查scrubbing通道。
  • Border-ACL/uRPF;nftables/ebpf/XDP配置文件,contrack-less過濾。
  • Sysctl調節TCP/SYN,用於UDP端口放大器的極限pps。
  • HTTP/2/3限制(streams, frames, headers),慢速保護,body/header-limits.
  • L7限制和挑戰;高速緩存和外圍連接。
  • Dashbords pps/bps/conntrack/IRQ+L7 RED;h2_rst/429異常。
  • Runbook/Playbook,提供商聯系人,單擊打開配置文件。
  • 教義:bursts,slow,HTTP/2 reset;報告和記錄改進。
  • 分開的支付/關鍵路線池、mTLS和嚴格的限制。

17) TL;DR

放松保護:Anycast+scrubbing消除體積,eBPF/XDP+nftables將碎片切成堆棧,L7限制/挑戰/緩存保留SLA。調節TCP (SYN cookies, backlog),限制UDP放大器,設置HTTP/2/3限制和慢速保護。有運行簿並進行培訓;對於iGaming-在高峰時段提前擴展邊緣,並使用mTLS和嚴格的限制分離支付路徑。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。