GH GambleHub

DDoS პაკეტების დაცვა და ფილტრაცია

1) რატომ არის ეს აუცილებელი?

DDoS არის რესურსების „მასიური დეგრადაცია“: ზოლები/pps, სახელმწიფო ცხრილები, ბირთვის CPU/IRQ, ნაერთების აუზები, პროგრამების ლიმიტები. მიზანია თავდაცვის მოდუნება: ქსელის პერიმეტრზე მოცულობის ჩაქრობა, პროტოკოლის ანომალიების განეიტრალება 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 წყარო.

2. 2 L7 (application)

HTTP/1. 1: მოთხოვნები ძვირადღირებული მარშრუტებისთვის, header oversize/field smuggling.
HTTP/2: Rapid Reset, stream-flood, HEADERS flood, PRIORITY abuse.
HTTP/3 (QUIC): კავშირი/ნაკადები დასრულების გარეშე, intial flood.
Slow-атаки: slowloris/slow-read/slow-POST.
GRPC/WebSocket: გაუთავებელი ნაკადები, შეტყობინებების ნაკადი, დიდი ჩარჩოები.

3) თავდაცვის ძირითადი არქიტექტურა

1. Anycast + Scrubbing

დაარღვიეთ ტრეფიკი გლობალურად და გადაიტანეთ პროვაიდერის სკრუბინგის ცენტრები (შეწყვიტეთ volumetric/spuffing ზღვარზე).

2. Multi-CDN / Multi-Edge

დომენების განსხვავება (ვებ, API, სტატიკა), თავდაცვისა და ქეშის ერთობლიობა read დატვირთვისთვის.

3. დაბალი დონის ფილტრები მის პერიმეტრზე

ACL ბორდერ მარშრუტიზატორებზე (RFC1918, ბოგონი, განზრახ ყალბი პორტები).
eBPF/XDP early-drop- ისთვის ხელმოწერებზე და საბაზო ლიმიტებზე კონტრაკამდე.

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 ხელმოწერები: DNS response-like შესასვლელთან (გაფილტვრა კონტექსტის გარეთ).

5) UDP amplification: ინვენტარი და ბლოკები

ხშირი რეფლექტორები/გამაძლიერებლები: DNS (Open Resolvers), NTP (monlist), CLDAP, SSDP, mDNS, Memcached (UDP), C.

ზომები:
  • დახურეთ/შეზღუდეთ UDP სერვისები, შეამციროთ ღია პორტები.
  • პერიმეტრზე შეზღუდეთ pps/bitrate ცნობილი პორტებისთვის.
  • DNS რეკომენდაცია: რეკურსირება მხოლოდ მისი ქსელებისთვის, RRL (Response Rate Limiting), ANY- ის მინიმიზაცია.
  • NTP - მხოლოდ ნდობის „bootstrap“, საჯარო „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 ბორბალზე: არ დახარჯოთ სახელმწიფო ცხრილი, სადაც ფილტრი შესაძლებელია სახელმწიფო ხელმოწერით.

7) HTTP/2/3 და ჭკვიანი L7 შეტევები

HTTP/2 Rapid Reset: RST ჩარჩოების სიხშირის ლიმიტი და ღია ნაკადების რაოდენობა; კავშირის დახურვა ანომალიებში.
Stream abuse: лимит concurrent streams, headers size, max frame size.
QUIC/HTTP/3: შეზღუდეთ Intial ppps, ჩართეთ 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 (ანტი-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), რეგისტრირებული მომხმარებლები, ანონიმები.
პრიორიტეტები: „ძვირადღირებული“ თავისუფალი მარშრუტები (ანაბრები/დასკვნები) - დაცვა, მაგრამ დადასტურებული გამოტოვება; read კატალოგები - ქეში + throttle.
Challenge ფენა: captcha/PoW/JS Challengi მწვერვალზე ნაცრისფერი ზონებისთვის.

10) კეში, კოლესინგი და დეგრადაცია

Edge ქეში სტატიკური/კვაზისტიკური პასუხებისთვის, „stale-while-revalidate“.
Request coalescing: ერთი გასაღების პარალელური თხოვნების დაჭერა - მარიონეტულ და განაცხადში.
Degrade რეჟიმი: გამორთეთ მეორეხარისხოვანი ფიჩები (პერსონალიზაცია, მძიმე მოხსენებები), გასცეს „მსუბუქი“ გვერდები.

11) დაკვირვება და ტელემეტრია

მეტრიკა (per ROR/კვანძი/მტევანი):
  • 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.

Logs: მოდულირებული, საერთო/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 ლიმიტები და გაზარდეთ Challengi,
  • ჩართეთ retry for QUIC (Intial flood).
  • 4. კომუნიკაციები: სტატუსის გვერდი, პარტნიორების შეტყობინებების შაბლონები.
  • 5. Forenzic: PCAP- ის დაჭერა 60-120 წამში, ASNs/ports talkers ნიმუში.
  • 6. რეტროსპექტივა: ხელმოწერების განახლება, ბარიერები, რეფლექტორების სიები.

13) ტესტირება და სავარჯიშოები

DDoS-drill playbuks კვარტალურია: სინთეზური UDP/HTTP bursts, slow ტრაფიკი, HTTP/2 reset.
თამაშის დღე: Anycast გადართვა/მიგრაცია CDN- ს შორის, დეგრადაცია „მსუბუქ რეჟიმში“.
პროვაიდერის გადამოწმება: SLA scrubbing, ფილტრების ჩართვის/გამორთვის დრო, max ppps/bps.

14) ანტიპატერები

დაეყრდნო მხოლოდ L7-WAF- ს volumetric შეტევით.
URPF/ACL- ის არარსებობა ბორდერზე და conntrack heavy ფილტრაცია „შუბლზე“.
შეუზღუდავი სათაურები/სხეულები და გრძელი keep-alive მწვერვალზე.
ერთი რეგიონი/ROR Anycast/multi edge გარეშე.
NIC/IRQ/CPU- ს რეზერვების ნაკლებობა და რიგების მონიტორინგი.
არცერთი ქეში/კოალესინგი - დამატებითი RPS უკანა პლანზე.

15) iGaming/ფინანსების სპეციფიკა

დროებითი მწვერვალები (მატჩები/დერბი/ლოტო გათამაშებები): წინასწარ გააფართოვეთ POP შესაძლებლობები, ჩართეთ კოეფიციენტების აგრესიული ქეში, განათავსეთ კანარი-ჩელენჯი ანონიმებისთვის.
გადახდის/გაყვანის მარშრუტები: ცალკეული edge-pul mTLS- ით, მოკლე Timauts, კონკურენციის ლიმიტები; არა 0-RTT.
გეო პოლიტიკოსები: რეგიონალური ალოუ-ლაისტები, ASN ჰოსტინგის ფილტრაცია, სწრაფი geo გადართვა.
ანტიფროდთან კვეთა: velocity ლიმიტები და Risk API გადადიან „რთულ“ პროფილში DDoS ინციდენტში.

16) მზადყოფნის სიის სია

  • Anycast или multi-edge/CDN; შემოწმებულია არხები.
  • ბორდერი-ACL/uRPF; nftables/ebpf/XDP პროფილები, conntrack-less ფილტრაცია.
  • Sysctl tuning TCP/SYN, შეზღუდული pps UDP გამაძლიერებელი პორტებისთვის.
  • HTTP/2/3 ლიმიტები (streams, frames, headers), slow დაცვა, body/header-limits.
  • L7 ლიმიტები და გამოწვევა; ქეში და კოლესინგი პერიმეტრზე.
  • დაშბორდები pps/bps/conntrack/IRQ + L7 RED; ალერტები ანომალიებში h2 _ rst/429.
  • Runbook/playbooks, პროვაიდერის კონტაქტები, პროფილების ერთჯერადი ჩართვა.
  • სწავლებები: bursts, slow, HTTP/2 reset; ანგარიში და გაუმჯობესების დაფიქსირება.
  • გაყოფილი აუზები გადახდის/კრიტიკული მარშრუტებისთვის, mTLS და მკაცრი შეზღუდვებისთვის.

17) TL; DR

დაისვენეთ დაცვა: Anycast + scrubbing ააფეთქებს მოცულობას, eBPF/XDP + nftables ჭრის ნაგავს დასტაში, L7 ლიმიტები/chellenghi/ქეში ინარჩუნებს SLA. Tunit TCP (SYN cookies, backlog), შეზღუდეთ UDP გამაძლიერებლები, განათავსეთ HTTP/2/3 და slow დაცვა. გქონდეთ runbook და გაწვრთნათ იგი; iGaming- ისთვის - წინასწარ გააფართოვეთ edge პიკის საათებში და გამოყავით გადახდის მარშრუტები mTLS- ით და მკაცრი ლიმიტებით.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

Telegram
@Gamble_GC
ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.