DDoS პაკეტების დაცვა და ფილტრაცია
მოკლე რეზიუმე
DDoS შეტევებს სამი კლასი აქვს: L3/L4 volumetric (არხის/აღჭურვილობის დარტყმა), სახელმწიფო-გაფართოება (ამოწურა სახელმწიფო ცხრილები/CPU ბალანსებზე/firewalls) და L7 (წარმოქმნიან განაცხადის „სავარაუდო“ მოთხოვნებს). ეფექტური დაცვა აგებულია რამდენიმე ფენაში: ქსელის ზომები პერიმეტრზე, ფილტრაცია/სკრაბინგი თქვენი ქსელის გარეთ, ბალანსის/მარიონეტული და განაცხადის დაცვა, დამატებით ოპერაციული პროცედურები გაზომილი SLO- ით.
მუქარის პეიზაჟი
Volumetric (UDP/ICMP flood, ამპილაცია DNS/NTP/SSDP/CLDAP/Memcached): მიზანი - არხის და პორტების გატანა.
TCP state-exhaustion (SYN/ACK flood, TCP fragmentation, ნაერთები „ნახევარ კონუსზე“): ამოწურეთ conntrack/listeners.
L7 HTTP (S )/WebSocket/GraphQL flood, cache-busting, „ნელი“ მოთხოვნები: ჭამა CPU/IO პროგრამები და ქეშის ფენა.
Reflection/Amplification: ღია რეფლექტორების/ამპლიფერების გამოყენება IP წყაროს ჩანაცვლებით.
Carpet bombing: ტრეფიკის განაწილება IP/პრეფიქსი, ართულებს წერტილის ფილტრაციას.
ქსელის ძირითადი ზომები (შეტევებამდე)
1. ანტისპუფინგი: uRPF/BCP38 საზღვარზე; გამავალი პაკეტების საფარი სხვისი წყაროებით.
2. ACL edge/PE: არასასურველი ოქმების/პორტების აკრძალვა; ინდივიდუალური სიები mgmt სეგმენტისთვის.
3. CoPP (Control Plane Policing): პოლისინგი მარშრუტიზატორისთვის (BGP, OSPF, SSH, SNMP).
4. Rate-limits/პოლისინგი პორტებზე: bps/PPS „ხმაურიანი“ კლასებისთვის, burst პარამეტრები.
5. დატვირთვის განაწილება: Anycast საზოგადოებრივი IP, გეორასებისთვის; CDN/WAAP სტატიკური და ქეშირებული.
6. RPKI/ROA + მკაცრი BGP იმპორტი: ამცირებს ქოხის/ტრაფიკის გადამისამართების რისკს.
7. Surface reduction: მინიმუმამდე დაიყვანეთ გამოქვეყნებული სერვისები, დახურეთ „ნედლეული“ ორიგინი მარიონეტებისთვის.
სწრაფი რეაქცია თავდასხმის დროს: ქსელის ბერკეტი
RTBH (Remote Triggered Blackhole): BGP კომუნიკაციები ნულოვანი მარშრუტისთვის/32 (ან/128) მსხვერპლისთვის.
BGP Flowspec: L3/L4 წესების სწრაფი გავრცელება (src/dst/TCP დროშები) PE/edge- ზე.
Scrubbing ცენტრები/anti-DDoS პროვაიდერები: GRE/VRF გვირაბი ან პირდაპირი აფსიდი; ფილტრაცია, შემდეგ „სუფთა“ ტრაფიკი თქვენთვის.
Anycast-antiDDoS: ყოფნის წერტილების ნაკადის გაყოფა, ზიანის ლოკალიზაცია.
CDN/edge ქეში: ფილმის გადაღება origin, აძლევს L7 ლიმიტებს და „გამოწვევას“ მექანიზმებს.
მასპინძელი და L4 დაცვა
SYN Cookies/SYNPROXY: არ შეინარჩუნოთ მდგომარეობა კლიენტის დადასტურებამდე.
Linux: `sysctl net. ipv4. tcp _ syncookies = 1 'ან' SYNPROXY "შესასვლელ ბალანსზე.
Tuning conntrack (თუ გამოიყენება):- მოიწამლა 'nf _ conntrack _ max' გონივრულად, გაზარდა hashsize;
- შეამცირეთ ტაიმაუტები „ნახევრად ღია“ და არააქტიური პირობებისთვის.
- eBPF/XDP: ადრეული ფრენა NIC (PPS დაცვა), ფილტრაცია ხელმოწერებზე/სიჩქარეზე ბირთვამდე.
- nftables/iptables: PPS ლიმიტები, „საეჭვო“ დროშების გადაყრა, კონლიმიტი.
- UDP hardening: თუ მომსახურება არ იყენებს UDP- ს - საზღვარზე დაფა; თუ იყენებს - შეზღუდავს წყაროებს/პორტებს.
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 შესასვლელ ბალანსზე (მაგალითი '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
L7 დაცვა (მოკლედ)
WAAP/WAF: პოზიტიური მოდელი კრიტიკულ მარშრუტებზე, rate-limits, challenge/JS, ქცევითი ესკიზი.
კეშირება/სტატიკური ოფლეტი: ჩვენ ვამცირებთ მოთხოვნებს ორიგინამდე; დაცვისგან დაცვა (პარამეტრების ნორმალიზაცია/შავი სიები).
GraphQL შეზღუდვები: 'maxDepth', 'maxCost', გაყიდვების აკრძალვა.
BFF ნიმუში: თხელი კლიენტის ნიშნები, მძიმე ლოგიკა/ლიმიტები სერვერზე.
Idempotenty და რიგები: ზვავის მსგავსი გამეორება ხელს უშლის დეგრადაციას.
ტელემეტრია და აღმოჩენა
ქსელის ნაკადები: NetFlow/sFlow/IPFIX (pps, top talkers, ოქმები/პორტები/ASN).
პასიური L7 სენსორები: ბალანსის/მარიონეტული (nginx/envoy), მეტრიკა p95/99, error-rate.
ძირითადი ბარიერები: „მოულოდნელი ზრდა PPS/CPU edge“, „SYN-RECV“, „UDP უპასუხისმგებლო“.
ხელმოწერები/ქცევა: სიხშირეები IP/ASN/JA3, ადიდებული 4xx/5xx, ანომალიები.
ვიზუალიზაცია: ცალკეული დაშბორდები L3/L4/L7; გეო/ASN მოძრაობის რუკა; RTBH/Flowspec- ის დაწყებამდე დრო.
SLO/SLI და ალერტინგი
SLO მაგალითები:- „MTTD ანომალიების DDoS - 60 წამი, MTTM (RTBH/Flowspec გააქტიურება) - 3 წუთი“.
- "P95 ლატენტობა edge-50 ms შეტევების გარეშე; თავდასხმის დროს 200 ms მიტინგის ქვეშ."
- „გაუქმებული მავნე ტრაფიკის წილი 99% -ს შეადგენს, ხოლო ლეგიტიმური 98% -ს ინარჩუნებს“.
- PPS/CPU/IRQ ქსელის კვანძები> ბარიერი;
- SYN-RECV/half-open > X;
- ზრდა 5xx/ლატენტობა საზოგადოებრივ ენდოინტებში;
- Challenge/deny- ის პროცენტი WAF> ბარიერში (რისკი FP).
არქიტექტურული თავდაცვის ნიმუშები
1. Tiered Defense: Edge (ACL/CoPP) - Scrubbing/Anycast, L7 მარიონეტული/WAAP - დანართი.
2. Traffic Diversion: BGP Community scrabing- ზე გადასვლისთვის, GRE-bekhol ჩაძირვის დროს.
3. სახელმწიფო Edge: მაქსიმალური სახელმწიფო ფილტრაცია კონტრაკამდე; სახელმწიფო - განაცხადთან უფრო ახლოს.
4. eBPF/XDP პირველი: ადრეული ფრენები (JA3/პორტების/სიჩქარის მიხედვით) ბირთვამდე.
5. Golden Paths: ცალკეული IP/დომენები კრიტიკული API- სთვის, ისე რომ არ „დანგრეულიყო“ ყველაფერი მთლიანად.
საოპერაციო პროცედურები და ინციდენტები
Runbooks: ვინ და რა მეტრებში შედის RTBH/Flowspec/scrabing, როგორ გადავიდეს Anycast/puls.
შავი სიები და TTL: მოკლევადიანი ბლოკი ისე, რომ არ „შეფერხდეს“; ავტომატური re-test წყაროები.
კომუნიკაციები: შეტყობინებების შაბლონები პროვაიდერებს/პარტნიორებს/გამყიდველებს; საკომუნიკაციო არხი თავდასხმის დომენის გარეთ.
Post-Incident: მოხსენება დროებითი მასშტაბით (T0... Tn), „რაც მუშაობდა/არა“, ტესტის კატალოგის განახლება.
სავარჯიშოები: რეგულარული თამაშის დღეები: RTBH dry-run, Anycast- ის რეგიონის დაკარგვა, სალონის დალევა, „ნელი“ შეტევები.
Linux tuning/balancers (ნიმუში)
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
ხშირი შეცდომები
შეინარჩუნეთ ყველა ტრაფიკი stateful firevol edge - conntrack ამოწურვა. გააკეთეთ სახელმწიფო, სადაც შეგიძლიათ.
გვიან RTBH/Flowspec არის არხი უკვე „ნულამდე“. ავტომატური ბარიერები და ჩართვა.
ერთი IP/ერთი ფრონტი „ყველაფრისთვის“ არ არის იზოლირებული blast radius. გაზიარეთ დომენები/IP და კვოტები.
ნულოვანი ქეში - თითოეული L7 ურტყამს origin; ჩართეთ პარამეტრების ქირა და ნორმალიზაცია.
ქვეყნების ბრმა ბლოკირება/ASN ლეგიტის ანალიზის გარეშე - კონვერსიის გაჭრა; გამოიყენეთ ნიუანსული წესები/ჩელენჯი.
ძალიან აგრესიული ლიმიტები - მასიური FP ბიზნესის მწვერვალში.
გზის განხორციელების რუკა
1. ზედაპირის შეფასება: IP/პრეფიქსების/პორტების/პროტოკოლების ინვენტარიზაცია, კრიტიკული ბილიკების რუკა.
2. ქსელის ჰიგიენა: ACL, CoPP, RPKI/ROA, ზედმეტი UDP სერვისების უარყოფა.
3. ტრეფიკის დივერსია: ხელშეკრულება სკრაბინგის პროვაიდერთან, Anycast/CDN, BGP კომუნიკაციებთან.
4. Edge tuning: სახელმწიფო ფილტრაცია, SYNPROXY/eBPF, გონივრული Conntrack ტაიმაუტები.
5. L7/WAAP: პოზიტიური მოდელი, ლიმიტები/გამოწვევები, ქეში.
6. დაკვირვება: NetFlow/sFlow, დაშბორდები L3/L4/L7, ალერტები, SLO.
7. ავტომატიზაცია: RTBH/Flowspec ღილაკები, IaC წესებისთვის, კანარის ჩამორთმევა.
8. სავარჯიშოები და RCA: რეგულარული ტესტები, ფლეიბუკების განახლება.
მახასიათებლები iGaming/fintech
პიკის მოვლენები (ტურნირები, აქციები, მატჩები): დაგეგმეთ კაპიტალი/ლიმიტები, გაათბეთ ქეში, pre-warming CDN.
გადახდის ინტეგრაცია: გამოყოფილი IP/დომენები, პრიორიტეტული არხები ანტი-DDoS პროვაიდერის მეშვეობით, mTLS PSP, მკაცრი შეზღუდვები კრიტიკულ ენდოინტებზე.
Anti frode/bot კონტროლი: ქცევითი მორიელები და ადამიანური ჩელენჯები რეგისტრაციაზე/ლოგინზე/სარეკლამო კოდებზე.
UX და კონვერტაცია: აგრესიული დაცვით, გამოიყენეთ grace ფურცლები VIP/პარტნიორებისთვის, რბილი დეგრადაციებისთვის (ქეში/რეადონლი).
იურიდიული მოთხოვნები: ჟურნალების გამჭვირვალობა, ტელემეტრიული შენახვა, ზომების გავლენის გამართვა Time-to-Wallet- ზე და ბრუნვის მეტრიკა.
მაგალითები: Flowspec და RTBH (კონცეფციურად)
RTBH კომუნიკაციის საშუალებით (მაგალითი):
route 203. 0. 113. 10/32 blackhole set community 65535:666 announce to upstream
Flowspec (UDP> 1 Mbpe/ინტერფეისი პორტზე 19/1900):
match destination 203. 0. 113. 0/24 protocol = udp destination-port {19,1900}
then rate-limit 1000
FAQ
WAF გადაწყვეტს DDoS?
ნაწილობრივ L7- სთვის. L3/L4 და volumetric- ის წინააღმდეგ საჭიროა scrabing/Anycast/ქსელის ზომები.
SYN Cookies საკმარისია?
ეს არის ძირითადი დაცვა SYN flood- ისგან, მაგრამ ქსელის ლიმიტებისა და სკრაბინგის გარეშე, არხს მაინც შეუძლია გოლის გატანა.
აუცილებელია ICMP გამორთვა?
არა. უკეთესი საბაზო-ლიმიტი და მხოლოდ საშიში ტიპები, ICMP სასარგებლოა დიაგნოზირებისთვის/PMTU.
GRE გვირაბი scrabing- ით არ დაამატებს ლატენტობას?
დიახ, მაგრამ ჩვეულებრივ დასაშვებია. ანაზღაურეთ ქეში და ზუსტი მარშრუტი უახლოეს PoP- მდე.
შედეგი
საიმედო DDoS დაცვა არის მრავალ დონის არქიტექტურა: ქსელის ჰიგიენა (საწინააღმდეგო/ACL/CoPP), სწრაფი მოძრაობის დივერსია (RTBH/Flowspec/scrubbing/Anycast), მასპინძელი და L7 მექანიზმები (SYNPPRRRO OO RO OE IE E E E E E E E E E E E E EAD D ID ID D D D D D D D D AD D D D d XY, eBPF/XDP, WAAP), პლუს ტელემეტრია, SLO და დალაგებული ფლეიბუკები. ეს მიდგომა ამცირებს მარტივ, ინარჩუნებს არხებს ცოცხლად და ინარჩუნებს ბიზნეს მეტრებს, თუნდაც განაწილებული შეტევების ზეწოლის ქვეშ.