Protecție DDoS și filtrarea pachetelor
Scurt rezumat
Atacurile DDoS vin în trei clase: L3/L4 volumetrice (canal/echipament de blocare), epuizare de stat (tabele de stare de evacuare/procesoare pe balansoare/firewall-uri) și L7 (genera cereri „plauzibile” pentru aplicație). Apărarea eficientă este construită în mai multe straturi: măsuri de rețea pe perimetru, filtrare/epurare în afara rețelei, protecție pe balansoare/proxy-uri și aplicație, plus proceduri operaționale cu SLO-uri măsurabile.
Peisaj de amenințare
Volumetric (UDP/ICMP inundații, DNS/NTP/SSDP/CLDAP/Memcached amplificare): scopul este de a bloca canalul și porturile.
Epuizarea stării TCP (inundații SYN/ACK, fragmentare TCP, conexiuni semi-con): contrack/ascultător de evacuare.
L7 HTTP (S )/WebSocket/GraphQL inundații, cache-busting, cereri „lent”: mânca aplicații CPU/IO și strat cache.
Reflecție/amplificare: utilizarea reflectoarelor/amplificatoarelor deschise cu substituție sursă IP.
Bombardarea covoarelor: distribuirea traficului pe mai multe IP/prefixe, complicarea filtrării punctelor.
Măsuri de rețea de bază (înainte de atacuri)
1. Anti-spoofing: uRPF/BCP38 la frontieră; picătură pachete de ieșire cu sursele altor persoane.
2. ACL pe margine/PE: refuză protocoalele/porturile nedorite; liste separate pentru segmentul mgmt.
3. CoPP (Control Plane Policing): lustruire la router (BGP, OSPF, SSH, SNMP).
4. Limite de rată/lustruire pe porturi: bps/PPS pentru clase „zgomotoase”, setări de spargere.
5. Partajarea sarcinii: Anycast pentru IP-uri publice, resurse; CDN/WAAP pentru static și cache.
6. RPKI/ROA + import strict BGP: reduce riscul de deturnare/redirecționare a traficului.
7. Reducerea suprafeței: minimizați serviciile publicate, închideți originea „brută” din spatele proxy-ului.
Reacție rapidă atunci când atacați: pârghii de rețea
RTBH (Blackhole Triggered Remote): comunitatea BGP pentru victima căii zero/32 (sau/128).
BGP Flowspec: propagarea rapidă a normelor L3/L4 (src/dst/port/steaguri TCP) la PE/margine.
Centre de spălare/furnizori anti-DDoS: tunel GRE/VRF sau direct în amonte; filtrarea, apoi „pur” trafic pentru tine.
Anycast-antiDDoS: împărțirea fluxului prin puncte de prezență, localizarea daunelor.
CDN/memorie cache: ecrane de origine, oferă limite L7 și mecanisme „provocare”.
Protecție gazdă și L4
Cookie-uri SYN/SYNPROXY: Nu păstrați starea până la confirmarea clientului.
Linux: "sysctl net. ipv4. tcp_syncookies=1' sau „SYNPROXY” pe balansorul de intrare.
Tuning conntrack (dacă este utilizat):- Temper 'nf _ conntrack _ max' sensibil prin ridicarea hashsize;
- Reduceți timpii pentru stările „semi-deschise” și inactive.
- eBPF/XDP: picătură timpurie pe NIC (protecție PPS), filtrare semnătură/viteză în miez.
- nftables/iptables: limite PPS, aruncarea steagurilor „suspecte”, connlimit.
- UDP întărire: în cazul în care serviciul nu utilizează UDP, o picătură la frontieră; dacă utilizați, restricționați sursele/porturile.
nft table inet filter {
sets {
bad_ports { type inet_service; elements = { 19, 1900, 11211 } } # chargen/SSDP/memcached
}
chains {
input {
type filter hook input priority 0; policy drop;
ct state established,related accept ip saddr 127. 0. 0. 0/8 drop ip6 saddr::1/128 drop
limit new TCP tcp flags & (syn ack) == syn limit rate 200/second burst 400 accept tcp flags & (syn ack) == syn drop
deny bad UDP ports udp dport @ bad _ ports drop
ICMP rate-limit icmp type echo-request limit rate 50/second burst 100 accept icmpv6 type echo-request limit rate 50/second burst 100 accept
}
}
}
SYNPROXY pe solder de intrare (exemplu „iptables”):
bash iptables -t raw -A PREROUTING -p tcp --syn -j CT --notrack iptables -A INPUT -p tcp -m tcp --syn -m hashlimit --hashlimit 100/second --hashlimit-burst 200 --hashlimit-mode srcip --hashlimit-name syns -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 iptables -A INPUT -m state --state INVALID -j DROP
Protecție L7 (scurt)
WAAP/WAF: model pozitiv pe căi critice, rate-limite, provocare/JS, notare comportamentală.
Caching/descărcare statică: reduceți cererile la origine; protecție cache-busting (normalizare/parametru liste negre).
Limitatoare GraphQL: „maxDepth”, „maxCost”, interdicție de introspecție în vânzări.
Model BFF: jetoane client subțiri, logică/limite grele pe server.
Idempotența și cozile: preveniți repetările asemănătoare avalanșelor în timpul degradării.
Telemetrie și descoperire
Fluxuri de rețea: NetFlow/sFlow/IPFIX (pps, talkere de top, protocoale/porturi/ASN).
Senzori pasivi L7: busteni balancer/proxy (nginx/emsoy), metrici p95/99, rata de eroare.
Praguri de bază: „creștere neașteptată PPS/CPU pe margine”, „creștere SYN-RECV”, „UDP neîmpărtășit”.
Semnături/comportament: frecvențe IP/ASN/JA3, vârfuri 4xx/5xx, anomalii ale agenților utilizatori.
Vizualizare: tablouri de bord individuale L3/L4/L7; Geo/ASN timp hartă trafic la RTBH/Flowspec.
SLO/SLI și alertare
Exemple SLO:- Accesat în 24 octombrie 2011. ^ „MTTD of DDoS anomalies ≤ 60 sec, MTTM (RTBH/Flowspec activation) ≤ 3 min”.
- "p95 latență prin intermediul atacurilor exterioare ≤ 50 ms; atunci când ataca ≤ 200 ms sub atenuare"
- „Ponderea traficului rău intenționat aruncat ≥ de 99%, menținând în același timp ≥ 98% din traficul legitim”.
- PPS/CPU/IRQ de noduri de rețea> prag;
- SYN-RECV/semi-deschis> X;
- creșterea 5xx/latență a punctelor finale publice;
- procentaj provocare/negare la WAF> prag (risc FP).
Modele arhitecturale de apărare
1. Apărare pe niveluri: Edge (ACL/CoPP) → Scrubbing/Anycast → L7 Proxy/WAAP → Application.
2. Diversiunea traficului: Comunitatea BGP pentru a trece la spălare, GRE beckhol pentru timpul de scufundare.
3. Apatridia: filtrarea maximă a apatrizilor în contrack; statful - mai aproape de aplicație.
4. eBPF/XDP În primul rând: picături timpurii (cu JA3/ports/speed) în miez.
5. Golden Paths: IP separat/domenii pentru API-uri critice, astfel încât să nu „demoleze” totul în întregime.
Proceduri operaționale și incidente
Runbooks: cine și sub ce valori pornește RTBH/Flowspec/frecare, cum să comutați Anycast/piscine.
Liste negre și TTL: bloc pe termen scurt, astfel încât să nu „depășească”; surse de re-testare automată.
Comunicații: șabloane de mesaje pentru furnizori/parteneri/furnizori; canal de comunicare în afara domeniului atacat.
Post-incident: raport cu cronologie (T0... Tn), „ceea ce a funcționat/nu”, actualizarea catalogului de testare.
Exerciții: zile regulate de joc: RTBH uscat-run, pierderea regiunii Anycast, saturația link-ului, atacuri „lente”.
Linux/Balancer Tuning (Exemplu)
bash
TCP sysctl -w net. ipv4. tcp_max_syn_backlog=4096 sysctl -w net. ipv4. tcp_syncookies=1 sysctl -w net. ipv4. tcp_fin_timeout=15 sysctl -w net. ipv4. tcp_tw_reuse=1
Conntrack (if enabled)
sysctl -w net. netfilter. nf_conntrack_max=1048576 sysctl -w net. netfilter. nf_conntrack_tcp_timeout_syn_recv=30 sysctl -w net. netfilter. nf_conntrack_udp_timeout=15
NIC/IRQ ethtool -G eth0 rx 4096 tx 4096
Erori comune
Păstrați tot traficul prin firewall statuete pe margine → epuizarea conntrack. Fă apatrizi unde poţi.
Târziu RTBH/Flowspec → canal este deja "la zero. "Automatizați pragurile și activarea.
Un IP/o margine pentru „toate” → nici o rază de izolare explozie. Împărțiți domenii/IP și cote.
Memoria cache zero → fiecare apel L7 bate originea; Activați cache-ul și normalizarea parametrilor.
Blocarea oarbă a țărilor/ASN fără analiză legită - conversia tăierilor; utilizați reguli/provocări nuanțate.
Limitele prea agresive → FP masiv la vârf de afaceri.
Foaie de parcurs pentru implementare
1. Evaluarea suprafeței: inventar IP/prefix/port/protocol, hartă critică a traseului.
2. Igiena rețelei: anti-spoofing, ACL, CoPP, RPKI/ROA, refuzul serviciilor UDP inutile.
3. Devierea traficului: contract cu furnizorul de spălare, comunitățile Anycast/CDN, BGP.
4. Edge tuning: filtrarea apatrizilor, SYNPROXY/eBPF, termene rezonabile de conectare.
5. L7/WAAP: model pozitiv, limite/provocări, memorie cache.
6. Observabilitate: NetFlow/sFlow, tablouri de bord L3/L4/L7, alerte, SLO.
7. Automatizare: butoane RTBH/Flowspec, IaC pentru reguli, aspectul canar al configurațiilor.
8. Drills and RCAs: teste regulate, actualizări playbook.
Caracteristici pentru iGaming/fintech
Evenimente de vârf (turnee, promoții, meciuri): capacitate/limite de plan, cache-uri de încălzire, CDN de pre-încălzire.
Integrări de plăți: IP/domenii dedicate, canale prioritare prin intermediul furnizorului anti-DDoS, mTLS la PSP, limite stricte ale punctelor finale critice.
Controlul anti-fraudă/bot: scoring comportamental și provocări umane la înregistrare/autentificare/coduri promo.
UX și conversie: cu protecție agresivă, utilizați liste de grație pentru VIP/parteneri, degradare moale (cache/readonly).
Cerințe legale: transparența jurnalului, stocarea telemetriei, depanarea impactului măsurilor asupra măsurătorilor Time-to-Wallet și a cifrei de afaceri.
Exemple: Flowspec și RTBH (conceptual)
RTBH prin intermediul comunității (exemplu):
route 203. 0. 113. 10/32 blackhole set community 65535:666 announce to upstream
Flowspec (unitate UDP> 1 Mbit/interfață per port 19/1900):
match destination 203. 0. 113. 0/24 protocol = udp destination-port {19,1900}
then rate-limit 1000
ÎNTREBĂRI FRECVENTE
WAF rezolvă DDoS?
Parţial pentru L7. Împotriva L3/L4 și volumetrice, sunt necesare măsuri de epurare/Anycast/rețea.
Cookie-uri SYN suficient?
Aceasta este o protecție de bază împotriva inundațiilor SYN, dar fără limite de rețea și spălare, canalul poate fi încă înfundat.
Trebuie să dezactivez ICMP?
Nu, nu este. Mai bine rata-limită și numai tipuri periculoase, ICMP este util pentru diagnosticare/PMTU.
Tunelul GRE cu frecare nu va adăuga latență?
Da, dar de obicei acceptabil. Compensați cu memoria cache și traseul exact până la cel mai apropiat PoP.
Total
Protecția DDoS fiabilă este o arhitectură pe mai multe niveluri: igiena rețelei (anti-spoofing/ACL/CoPP), devierea traficului rapid (RTBH/Flowspec/scrubbing/Anycast), mecanisme gazdă și L7 (SYNPROXY Y, E BB B PF/XDP, WAAP), plus telemetrie, SLO și playbook-uri depanate. Această abordare minimizează timpul de nefuncționare, menține canalele în viață și menține valorile de afaceri chiar și sub presiunea atacurilor distribuite.