GH GambleHub

Ochrona i filtrowanie pakietów DDoS

1) Dlaczego go potrzebujesz

DDoS jest „ogromną degradacją” zasobów: pasma/pps, tabel stanowych, CPU/IRQ rdzenia, puli połączeń, limitów aplikacji. Celem jest stratyfikowanie ochrony: gaszenie głośności na obwodzie sieci, zneutralizowanie anomalii protokołu do stosu TCP/IP i odcięcie niechcianych żądań na L7, oszczędzając SLO dla legalnych użytkowników.

2) Klasy ataku

2. 1 L3/L4 (objętość/protokół)

Objętość: powódź UDP, odbicie/wzmocnienie UDP (DNS/CLDAP/NTP/SSDP/memcached/mDNS), powódź GRE.
Protokół/wyczerpanie stanu: powódź SYN, powódź ACK/RST, połączenie-wyczerpanie TCP, powódź ICMP, fragmentacja TCP.
Funkcje QUIC/UDP: false Initial/Retry storms, spoofed source.

2. 2 L7 (wniosek)

HTTP/1. 1: zapytania za drogimi trasami, nadmierna wielkość nagłówka/przemyt w terenie.
HTTP/2: Rapid Reset, stream-flood, HEADERS flood, PRIORITY abuse.
HTTP/3 (QUIC): połączenia/wątki bez zakończenia, początkowy powódź.
Slow-атака: slowloris/slow-read/slow-POST.
gRPC/WebSocket: niekończące się strumienie, powódź wiadomości, duże ramy.

3) Podstawowa architektura bezpieczeństwa

1. Anycast + Szorowanie

Ruch natryskowy na całym świecie i przejazd przez centra szorowania dostawcy (odciąć objętości/spoofing na krawędzi).

2. Multi-CDN/Multi-Edge

Separacja domeny (web, API, statyczna), agregacja ochrony i pamięć podręczna do odczytu obciążenia.

3. Filtry niskiego poziomu na jego obwodzie

ACL na routerach granicznych (RFC1918, bogon, znane fałszywe porty).
eBPF/XDP dla wczesnego spadku podpisów i limitów stawek do conntrack.

4. Obwód L7 (NGINX/wysłannik/WAF)

Kompresja RPS przez klawisze, wyzwanie (captcha/PoW), pamięć podręczna, priorytetyzacja „drogich” ścieżek.

5. Stabilność wewnętrzna

Baseny połączeń, kolejki, obwód/timeout, izolacja serwisowa (grodziowa) i autoskalowanie przelewu.

4) „Zawory” sieciowe: co włączyć natychmiast

4. 1 Linux sysctl (jądro/stos)

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: podstawowe filtry i ratelimit na opakowaniach

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 (pomysł)

Pakiety early-drop ze spoofed source (uRPF jest mile widziany na routerze).
wiadra hash pps na/32 i na/24; dynamiczna „kwarantanna” źródeł.
Odbicie UDP: podpisy podobne do DNS (filtr poza kontekstem).

5) Wzmacnianie UDP: inwentaryzacja i bloki

Częste reflektory/wzmacniacze: DNS (rozdzielacze otwarte), NTP (monlist), CLDAP, SSDP, mDNS, Memcached (UDP), Chargen.

Środki:
  • Zamknij/ograniczyć usługi UDP, zminimalizuj otwarte porty.
  • Na obwodzie, limit pps/bitrate dla znanych portów.
  • Zalecenie DNS: rekursywne tylko dla swoich sieci, RRL (ograniczanie szybkości odpowiedzi), minimalizujące ANY.
  • NTP - tylko „bootstrap” do zaufanych, 'noquery' dla publiczności.

6) Wyczerpanie stanu TCP

Powódź SYN: 'tcp _ syncookies = 1', zwiększona 'tcp _ max _ syn _ backlog', 'synack _ retries = 3', drop by pps.
Powódź ACK/RST: niskopoziomowe granice, przesiewanie nielegalnych sekwencji (nftables/ebpf).
Bez połączenia na granicy: nie marnuj tabel stanu, w których filtr jest możliwy za pomocą podpisu bezpaństwowego.

7) HTTP/2/3 i inteligentne ataki L7

HTTP/2 Rapid Reset: ograniczenie częstotliwości ramek RST i liczby otwartych strumieni; zamknąć połączenie w przypadku anomalii.
Nadużycia strumieniowe: лимисна współistniejące strumienie, rozmiar nagłówków, maksymalny rozmiar klatki.
QUIC/HTTP/3: limit Initial pps, enable Retry; krótkie czasy uścisku dłoni.

NGINX (fragment 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;

Wysłannik (anty-reset i limity)

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) Powolne ataki i ochrona zasobów

Slowloris/slow-read/slow-POST: enable 'proxy _ request _ buffering on', low idle-timeout, minimum acceptable 'read _ rate'.
Zakończ połączenia w długim międzypakietowym przedziale na żądanie.
W aplikacji - wczesny odczyt/odrzut ciała, limity wielkości/głębokości JSON.

9) Filtrowanie L7: kto jest ważniejszy - niech przejdzie

Klasyfikacja ruchu: znany dobry (partnerzy mTLS/JWT), zarejestrowani użytkownicy, anonimowi.
Priorytety: „drogie” odpisy (depozyty/wnioski) - ochrona, ale brak potwierdzenia; czytaj-katalogi - pamięć podręczna + przepustnica.
Warstwa wyzwań: captcha/PoW/JS wyzwania dla szarych stref na szczycie.

10) Pamięć podręczna, koalescencja i degradacja

Pamięć podręczna krawędzi dla reakcji statycznych/quasi-statycznych, „stale-while-revalidate”.
Żądanie koalescingu: załamać równoległe wnioski do jednego klucza - w serwerze proxy i w aplikacji.
Tryb degradacji: wyłączyć funkcje wtórne (personalizacja, ciężkie raporty), wydać „lekkie” strony.

11) Obserwowalność i telemetria

Mierniki (na POP/węzeł/klaster):
  • 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'.
  • Zależności: CPU IRQ miękkie/twarde, NIC kolejki spadki, run-queue długość.

kłody: pobrane próbki, zagregowane według/24, ASN, porty i podpisy; bez PII.
Śledzenie: włączyć na białych listach, rozbić próbki do debugowania.

12) Plany reagowania (runbook)

1. Wykrywanie: uruchomienie progów pps/bps/429/h2_rst_rate.
2. Klasyfikacja: poziom (L3/4/7), protokół (UDP/TCP/h2/h3), geo/ASN.

3. Zawory:
  • enable scrubbing/blackhole profiles on the provider
  • wzmocnienie granic nftables/ebpf,
  • obniżenie limitów L7 i zwiększenie wyzwań,
  • Włącz ponowną próbę dla QUIC (Początkowy powódź).
  • 4. Komunikaty: strona stanu, szablony powiadomień partnerskich.
  • 5. Technicy: przechwytywanie PCAP przez 60-120 sekund, pobieranie próbek najlepszych gadżetów ASN/portów.
  • 6. Retrospektywne: podpisy aktualizacyjne, progi, listy odbłyśników.

13) Badania i wiertła

DDoS-drill playbooks kwartalnie: syntetyczne wybuchy UDP/HTTP, powolny ruch, HTTP/2 reset.
Dzień gry: przełączniki Anycast/migracja między CDN, degradacja do „trybu łatwego”.
Weryfikacja dostawcy: SLA szorowanie, filtr on/off time, max pps/bps.

14) Antypattery

Polegaj tylko na L7-WAF do ataku objętościowego.
Nie uRPF/ACL na krawężniku i conntrack ciężkie filtrowanie głowicy.
Nieograniczone nagłówki/ciała i długo utrzymać się przy życiu w szczycie.
Pojedynczy region/ROR bez Anycast/multi-edge.
Brak inwentarza NIC/IRQ/procesora i monitorowania kolejki.
Brak pamięci podręcznej/koalescencji - dodatkowy RPS dla backendu.

15) Szczegóły dotyczące iGaming/Finance

Tymczasowe szczyty (mecze/derby/losowania lotto): poszerzyć pojemność POP z wyprzedzeniem, zawierać agresywną pamięć podręczną współczynników, stwarzać wyzwania kanaryjskie dla anonimowych ludzi.
Trasy płatności/wyjścia: oddzielna pula krawędzi z mTLS, krótkie czasy, konkurencyjne limity; bez 0-RTT.
Geo-politycy: regionalne światła dopuszczalne, ASN-filtrowanie „hostingu”, szybkie przełączanie geograficzne.
Przecięcie z antyfraud: limity prędkości i API ryzyka przejść do „twardy” profil w incydencie DDoS.

16) Lista kontrolna gotowości Prod

  • Anycast ила multi-edge/CDN; sprawdzone kanały szorowania.
  • Border-ACL/uRPF; nftables/ebpf/profile XDP, filtrowanie bez połączenia.
  • Tuning Sysctl TCP/SYN, limit pps dla portów wzmacniaczy UDP.
  • limity HTTP/2/3 (strumienie, ramki, nagłówki), powolna ochrona, limity nadwozia/nagłówka.
  • Granice L7 i wyzwanie; pamięci podręcznej i koalescencji na obwodzie.
  • Deski rozdzielcze pps/bps/conntrack/IRQ + L7 RED; wpisy do h2_rst/429 anomalii.
  • Runbook/playbooks, kontakty dostawcy, jedno kliknięcie włączające profile.
  • Nauki: wybuchy, powolne, HTTP/2 reset; raport i rekord ulepszeń.
  • Podział puli na trasy płatnicze/krytyczne, mTLS i ścisłe limity.

17) TL; DR

Ochrona stratyfikacyjna: Anycast + tłumiki szorowania objętość, eBPF/XDP + nftables cięcia śmieci do stosu, L7 limitów/wyzwań/pamięci podręcznej zachować SLA. Tune TCP (cookies SYN, backlog), ograniczyć wzmacniacze UDP, ustawić limity HTTP/2/3 i powolną ochronę. Posiadaj książkę startową i trenuj ją; dla iGaming - rozszerzyć krawędź z góry w godzinach szczytu i oddzielne ścieżki płatności z mTLS i limitów twardych.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.