Logo GH

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 ерекшеліктері: жалған Initial/Retry дауыл, spoofed source.

2. 2 L7 (application)

HTTP/1. 1: қымбат маршруттарға сұрау салу, header oversize/field smuggling.
HTTP/2: Rapid Reset, stream-flood, HEADERS flood, PRIORITY abuse.
HTTP/3 (QUIC): қосылымдар/ағындар аяқталмай, Initial flood.
Slow-атаки: slowloris/slow-read/slow-POST.
gRPC/WebSocket: шексіз ағымдар, message-flood, ірі фреймдер.

3) Қорғаныстың базалық сәулеті

1. Anycast + Scrubbing

Трафикті жаһандық түрде шашырату және провайдерлік scrubbing орталықтары арқылы айдау (шетінде volumetric/спуфингті кесу).

2. Multi-CDN / Multi-Edge

Домендерді тарату (веб, API, статика), қорғау агрегациясы және read-жүктеме үшін кэш.

3. Өзінің периметріндегі төмен деңгейлі сүзгілер

Бордер-маршрутизаторлардағы ACL (RFC1918, bogon, көрінеу жалған порттар).
eBPF/XDP early-drop үшін conntrack дейін белгілер мен rate-лимиттер бойынша.

4. L7-периметр (NGINX/Envoy/WAF)

RPS-ті кілттер бойынша қысу, challenge (captcha/PoW), кэш, «қымбат» жолдарға басымдық беру.

5. Ішкі тұрақтылық

Қосылу пулдары, кезектер, circuit/timeout, сервистерді оқшаулау (bulkhead) және «тығындары» бар autoscaling (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 көзі бар Early-drop пакеттері (маршрутизаторда uRPF құпталады).
pps per/32 және per/24 хеш-бакеттері; көздердің динамикалық «карантині».
UDP-reflection қолтаңбалары: DNS response-like (контекстен тыс сүзу).

5) UDP amplification: мүкәммал және блоктар

Жиі шағылыстырғыштар/күшейткіштер: DNS (open resolvers), NTP (monlist), CLDAP, SSDP, mDNS, Memcached (UDP), Chargen.

Шаралар:
  • UDP қызметтерін жабу/шектеу, ашық порттарды барынша азайту.
  • Периметрде белгілі порттар үшін pps/битрейтті шектеу.
  • DNS-ұсыныс: тек өз желілері үшін рекурсивті, RRL (Response Rate Limiting), ANY-ді барынша азайту.
  • NTP - тек сенімгерлерге «бутстрап», көпшілік үшін 'noquery'.

6) TCP state exhaustion

SYN flood: 'tcp _ syncookies = 1', жоғарылатылған 'tcp _ max _ syn _ backlog', 'synack _ retries = 3', pps бойынша drop.
ACK/RST flood: төмен деңгейлі лимиттер, легитимсіз тізбектерді алып тастау (nftables/ebpf).
Conntrack-less: күй кестелерін stateless-сигнатура бойынша сүзгі мүмкін болған жерде жұмсамау.

7) HTTP/2/3 және «ақылды» L7 шабуылдары

HTTP/2 Rapid Reset: RST-фреймдер жиілігінің және ашық ағындар санының лимиті; ауытқулар кезінде қосылысты жабу.
Stream abuse: лимит concurrent streams, headers size, max frame size.
QUIC/HTTP/3: Initial pps шектеу, Retry қосу; handshake қысқа таймауттары.

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 (anti-reset және лимиттер)

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) Slow-шабуылдар және ресурстық қорғау

Slowloris/slow-read/slow-POST: 'proxy _ request _ buffering on', төмен idle-timeout, ең аз қолайлы 'read _ rate' қосу.
Сұрауға ұзақ пакетаралық аралықта қосылымдарды тоқтату.
Қосымшада - денені ерте оқу/лақтыру, JSON өлшемінің/тереңдігінің лимиттері.

9) L7 сүзу: кім маңызды - өтсін

Трафиктің жіктелуі: known good (mTLS/JWT серіктестері), тіркелген пайдаланушылар, анонимдер.
Басымдықтар: «қымбат» write-бағыттар (депозиттер/қорытындылар) - расталғандарын қорғау, бірақ өткізіп жіберу; read-каталогтар - кэш + throttle.
Challenge-қабат: captcha/PoW/JS-сұр аймақтар үшін шыңдалған кезде челлендждер.

10) Кэш, coalescing және тозу

Статикалық/квазистатикалық жауаптарға арналған Edge-кэш, 'stale-while-revalidate'.
Request coalescing: бір кілтке - проксиге және бағдарламаға қатарлас сұрау салу.
Degrade режимі: екінші дәрежелі фичтерді (дербестендіру, ауыр есептер) өшіру, «жеңіл» беттерді беру.

11) Бақылау және телеметрия

Метрика (per РОР/торап/кластер):
  • 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 soft/hard, NIC queue drops, run-queue length.

Логи :/24, ASN, порттар мен сигнатуралар бойынша біріктірілген сэмплирленген; PII жоқ.
Трейсинг: ақ тізімдерде қосу, жөндеу үшін сэмплингті авариялық түрде кеңейту.

12) Ден қою жоспарлары (runbook)

1. Детект: pps/bps/429/h2_rst_rate шектерінің іске қосылуы.
2. Жіктелуі: деңгей (L3/4/7), хаттама (UDP/TCP/h2/h3), гео/ASN.

3. Клапандар:
  • провайдердегі scrubbing/blackhole профильдерін қосу,
  • nftables/ebpf лимиттерін күшейту,
  • L7-лимиттерді төмендету және челлендждерді арттыру,
  • QUIC (Initial flood) үшін Retry қосу.
  • 4. Коммуникация: мәртебе-бет, серіктестерге хабарлау үлгілері.
  • 5. Форензия: 60-120 сек PCAP ұстау, top talkers ASNs/ports іріктеу.
  • 6. Ретроспектива: сигнатураларды, табалдырықтарды, шағылыстырғыштар тізімін жаңарту.

13) Тестілеу және оқу-жаттығулар

DDoS-drill плейбуктері тоқсан сайын: синтетикалық UDP/HTTP бурстары, slow-трафик, HTTP/2 reset.
Game day: Anycast/CDN арасындағы көші-қон, «жеңіл режимге» дейін деградация.
Провайдерді тексеру: SLA scrubbing, сүзгілерді қосу/сөндіру уақыты, max pps/bps.

14) Антипаттерндер

Volumetric-шабуыл кезінде L7-WAF ғана сүйену керек.
Бордерде uRPF/ACL болмауы және conntrack-heavy «маңдайына» сүзу.
Лимитсіз тақырыптар/денелер және шыңында ұзын keep-alive.
Anycast/multi-edge жоқ бірыңғай өңір/РОР.
NIC/IRQ/CPU және кезек мониторингі бойынша қорлардың болмауы.
Кэш/коалесинг жоқ - бэкендке артық RPS.

15) iGaming/Қаржы ерекшелігі

Уақытша шыңдар (матчтар/дерби/лото-ұтыстар): алдын ала POP сыйымдылығын кеңейту, коэффициенттердің агрессивті кэшін қосу, анонимдер үшін canary-челлендждер салу.
Төлем/шығу бағыттары: mTLS бар жеке edge-пул, қысқа таймауттар, бәсекелестік лимиттері; ешқандай 0-RTT жоқ.
Гео-саясаттар: өңірлік allow-лайстер, ASN-« хостингтерді »сүзу, жылдам гео-ауыстырып қосу.
Антифродпен қиылысу: velocity-лимиттер және Risk API DDoS инциденті кезінде «қатаң» профильге өтеді.

16) Prod-дайындық чек-парағы

  • Anycast или multi-edge/CDN; scrubbing арналары тексерілді.
  • Бордер-ACL/uRPF; nftables/ebpf/XDP профильдері, conntrack-less сүзгісі.
  • Sysctl-тюнинг TCP/SYN, UDP порты-күшейткіштер үшін limity pps.
  • HTTP/2/3 лимиттер (streams, frames, headers), slow-қорғау, body/header-limits.
  • L7-лимиттер және challenge; периметрде кэш және coalescing.
  • pps/bps/conntrack/IRQ + L7 RED дашбордтары; аномалиядағы аллергия h2_rst/429.
  • Runbook/playbook, провайдер контактілері, профильді қосу.
  • Жаттығулар: бурсттар, slow, HTTP/2 reset; жақсартуларды есепке алу және тіркеу.
  • Төлем/сыни бағыттар, mTLS және қатаң лимиттер үшін бөлінген пулдар.

17) TL; DR

Қорғауды қабаттаңыз: Anycast + scrubbing көлемді өшіреді, eBPF/XDP + nftables қоқысты стекке дейін кеседі, L7-лимиттер/челлендждер/кэш SLA сақтайды. TCP (SYN cookies, backlog) сүзгілеңіз, UDP күшейткіштерін шектеңіз, HTTP/2/3 және slow-қорғауды шектеңіз. Runbook бар және оны жаттықтыру; iGaming үшін - ең жоғары сағаттарда алдын ала edge кеңейтіңіз және mTLS және қатаң лимиттермен төлем жолдарын бөліңіз.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.