حفاظت از DDoS و فیلتر کردن بسته
خلاصه ای کوتاه
حملات DDoS در سه کلاس قرار می گیرند: L3/L4 حجمی (کانال مسدود/تجهیزات)، حالت خستگی (جداول حالت اگزوز/CPU ها در متعادل کننده ها/فایروال ها) و L7 (تولید درخواست های «قابل قبول» به برنامه). دفاع موثر در چندین لایه ساخته شده است: اقدامات شبکه در محیط، فیلتر کردن/شستشو در خارج از شبکه شما، حفاظت از متعادل کننده ها/پروکسی ها و برنامه، به علاوه روش های عملیاتی با SLO قابل اندازه گیری.
چشم انداز تهدید
حجمی (سیل UDP/ICMP، DNS/NTP/SSDP/CLDAP/تقویت Memcached): هدف این است که کانال و پورت ها را مسدود کنید.
TCP حالت خستگی (سیل SYN/ACK، تکه تکه شدن TCP، اتصالات نیمه مخروطی): اتصال خروجی/شنونده.
L7 HTTP (S )/WebSocket/GraphQL سیل، حافظه پنهان، درخواست های «آهسته»: خوردن برنامه های CPU/IO و لایه کش.
بازتاب/تقویت: استفاده از بازتابنده ها/تقویت کننده های باز با جایگزینی منبع IP.
بمباران فرش: توزیع ترافیک در سراسر چندین IP/پیشوند، پیچیده فیلتر کردن نقطه.
اقدامات اساسی شبکه (قبل از حملات)
1. ضد جاسوسی: uRPF/BCP38 در مرز ؛ بسته های خروجی را با منابع دیگران رها کنید.
2. ACL در لبه/PE: انکار پروتکل های ناخواسته/پورت ؛ لیست های جداگانه برای بخش mgmt.
3. CoPP (کنترل هواپیما پلیس): پرداخت به روتر (BGP، OSPF، SSH، SNMP).
4. محدودیت نرخ/پرداخت در پورت: bps/PPS برای کلاس های «پر سر و صدا»، تنظیمات پشت سر هم.
5. به اشتراک گذاری بار: Anycast برای IP های عمومی، جغرافیایی ؛ CDN/WAAP برای استاتیک و ذخیره سازی.
6. RPKI/ROA + واردات سخت BGP: خطر ربودن ترافیک/تغییر مسیر را کاهش می دهد.
7. کاهش سطح: به حداقل رساندن خدمات منتشر شده، بستن منبع «خام» پشت پروکسی.
واکنش سریع هنگام حمله: اهرم های شبکه
RTBH (Blackhole از راه دور): جامعه BGP برای قربانی مسیر صفر/32 (یا/128).
BGP Flowspec: انتشار سریع قوانین L3/L4 (src/dst/port/TCP flags) به PE/edge.
مراکز شستشو/ارائه دهندگان ضد DDoS: تونل GRE/VRF یا بالادست مستقیم ؛ فیلتر کردن، سپس ترافیک «خالص» برای شما.
Anycast-antiDDoS: تقسیم جریان توسط نقاط حضور، محلی سازی آسیب.
CDN/edge cache: منشاء صفحه نمایش، محدودیت های L7 و مکانیسم های «چالش» را می دهد.
حفاظت از میزبان و L4
کوکی های SYN/SYNPROXY: وضعیت را تا تأیید مشتری نگه ندارید.
لینوکس: 'sysctl net. IPV4 tcp_syncookies=1' یا 'SYNPROXY' در ورودی متعادل کننده.
اتصال تنظیم (در صورت استفاده):- خلق و خوی 'nf _ conntrack _ max' به طور معقول با افزایش hashsize ؛
- کاهش وقفه برای «نیمه باز» و کشورهای غیر فعال.
- eBPF/XDP: افت اولیه در NIC (حفاظت PPS)، فیلتر کردن امضا/سرعت به هسته.
- nftables/iptables: محدودیت PPS، دور انداختن پرچم «مشکوک»، connlimit.
- سخت شدن UDP: اگر سرویس از 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: مدل مثبت در مسیرهای بحرانی، محدودیت نرخ، چالش/JS، نمره رفتاری.
ذخیره سازی/بارگیری استاتیک: کاهش درخواست ها به مبدا ؛ حفاظت از حافظه پنهان (لیست های سیاه نرمال/پارامتر).
محدود کننده های GraphQL: «maxDepth»، «maxCost»، ممنوعیت خودآزمایی در فروش.
الگوی BFF: نشانه های مشتری نازک، منطق سنگین/محدودیت در سرور.
Idempotence و صف: جلوگیری از تکرار بهمن مانند در طول تخریب.
تله متری و کشف
جریانهای شبکه: NetFlow/sFlow/IPFIX (pps، بلندگوهای برتر، پروتکلها/پورتها/ASN).
سنسورهای منفعل L7: سیاهههای مربوط به تعادل/پروکسی (nginx/envoy)، معیارهای p95/99، نرخ خطا.
آستانه های اساسی: «رشد غیر منتظره PPS/CPU در لبه»، «افزایش SYN-RECV»، «UDP بدون لغو».
امضا/رفتار: فرکانس های IP/ASN/JA3، خوشه های 4xx/5xx، ناهنجاری های عامل کاربر.
تجسم: داشبورد فردی L3/L4/L7 ؛ زمان نقشه ترافیک Geo/ASN به RTBH/Flowspec.
SLO/SLI و هشدار
مثال های SLO:- «MTTD ناهنجاری های DDoS ≤ 60 ثانیه، MTTM (فعال سازی RTBH/Flowspec) ≤ 3 دقیقه».
- "تأخیر p95 از طریق لبه ≤ حملات 50 میلی ثانیه در خارج ؛ هنگام حمله به ≤ 200 میلی ثانیه تحت کاهش"
- سهم ترافیک مخرب دور ریخته شده 99٪ ≥ در حالی که ≥ 98٪ از ترافیک قانونی را حفظ می کند.
- PPS/CPU/IRQ گره های شبکه> آستانه ؛
- SYN-RECV/نیمه باز> X ؛
- رشد 5xx/latency در نقاط پایانی عمومی ؛
- درصد چالش/انکار در آستانه WAF> (خطر FP).
دفاع از الگوهای معماری
1. دفاع چند لایه: لبه (ACL/CoPP) → اسکراب/Anycast → L7 پروکسی/WAAP → برنامه
2. انحراف ترافیک: جامعه BGP برای حرکت به شستشو، GRE beckhol برای زمان شیرجه.
3. لبه بدون حالت: حداکثر فیلتر بدون حالت برای اتصال ؛ stateful - نزدیک به برنامه.
4. eBPF/XDP اول: قطره در اوایل (توسط JA3/ports/speed) به هسته.
5. مسیرهای طلایی: IP/دامنه های جداگانه برای API های مهم به منظور «تخریب» همه چیز به طور کامل.
روش های عملیاتی و حوادث
Runbooks: چه کسی و تحت چه معیارهایی RTBH/Flowspec/scrubbing را روشن می کند، چگونه Anycast/pools را تغییر دهید.
لیست سیاه و TTL: بلوک کوتاه مدت به طوری که به «بیش از حد» ؛ منابع تست مجدد اتوماتیک
ارتباطات: قالب پیام برای ارائه دهندگان/شرکا/فروشندگان ؛ کانال ارتباطی خارج از دامنه مورد حمله
پس از حادثه: گزارش با یک جدول زمانی (T0... TN)، «چه کار کرد/نه»، به روز رسانی کاتالوگ آزمون.
تمرینات: به طور منظم بازی روز: RTBH خشک اجرا, از دست دادن منطقه Anycast, اشباع لینک, «آهسته» حملات.
تنظیم لینوکس/متعادل کننده (نمونه)
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 در لبه → فرسودگی conntrack. تا جایی که می توانید بدون دولت کار کنید.
اواخر RTBH/Flowspec → کانال در حال حاضر "به صفر است. "خودکار آستانه و فعال کردن.
یک IP/یک لبه برای «همه» → بدون انزوا شعاع انفجار. دامنه ها/IP و سهمیه ها را تقسیم کنید.
کش صفر → هر تماس L7 ضربه منشاء ؛ فعالسازی نهانسازی و نرمالسازی پارامتر.
مسدود کردن کور از کشورها/ASN بدون تجزیه و تحلیل legite - کاهش تبدیل ؛ از قوانین/چالش های متنوع استفاده کنید.
محدودیت های بیش از حد تهاجمی → FP عظیم در اوج کسب و کار.
نقشه راه پیاده سازی
1. ارزیابی سطح: IP/prefix/port/protocol inventory، نقشه مسیر بحرانی.
2. بهداشت شبکه: ضد جاسوسی، ACL، CoPP، RPKI/ROA، امتناع از خدمات غیر ضروری UDP.
3. انحراف ترافیک: قرارداد با ارائه دهنده اسکراب، جوامع Anycast/CDN، BGP.
4. تنظیم لبه: فیلتر بدون حالت، SYNPROXY/eBPF، زمان بندی مناسب اتصال.
5. L7/WAAP: مدل مثبت، محدودیت ها/چالش ها، حافظه پنهان.
6. قابلیت مشاهده: NetFlow/sFlow، L3/L4/L7 داشبورد، هشدارها، SLO.
7. اتوماسیون: دکمه های RTBH/Flowspec، IaC برای قوانین، طرح قناری پیکربندی.
8. دریل و RCAs: آزمون به طور منظم، به روز رسانی playbook.
ویژگی های برای iGaming/fintech
رویدادهای پیک (مسابقات، تبلیغات، مسابقات): ظرفیت/محدودیت برنامه، گرم کردن انبارها، CDN قبل از گرم شدن.
یکپارچگی پرداخت: IP/دامنه اختصاصی، کانال های اولویت از طریق ارائه دهنده ضد DDoS، mTLS به PSP، محدودیت های شدید در نقاط پایانی بحرانی.
ضد تقلب/کنترل ربات: به ثمر رساند رفتاری و چالش های انسانی در کدهای ثبت نام/ورود/تبلیغی.
UX و تبدیل: با حفاظت تهاجمی، استفاده از لیست فضل برای VIP/شرکای، تخریب نرم (کش/فقط خواندنی).
الزامات قانونی: شفافیت ورود به سیستم، ذخیره سازی تله متری، اشکال زدایی تاثیر اقدامات در زمان به کیف پول و معیارهای گردش مالی.
مثال: Flowspec و RTBH (از لحاظ مفهومی)
RTBH از طریق جامعه (به عنوان مثال):
route 203. 0. 113. 10/32 blackhole set community 65535:666 announce to upstream
Flowspec (واحد UDP> 1 مگابیت/رابط در هر پورت 19/1900):
match destination 203. 0. 113. 0/24 protocol = udp destination-port {19,1900}
then rate-limit 1000
سوالات متداول
WAF DDoS را حل می کند ؟
بخشی از L7 در برابر L3/L4 و حجمی، اقدامات شستشو/Anycast/شبکه مورد نیاز است.
کوکی ها SYN به اندازه کافی ؟
این حفاظت اساسی در برابر سیل SYN است، اما بدون محدودیت شبکه و شستشو، کانال هنوز هم می تواند مسدود شود.
آیا باید ICMP را غیرفعال کنم ؟
نه، اينطور نيست محدودیت نرخ بهتر و تنها انواع خطرناک، ICMP برای تشخیص/PMTU مفید است.
تونل GRE با شستشو تاخیر را اضافه نمی کند ؟
بله، اما معمولا قابل قبول است. جبران با کش و مسیر دقیق به نزدیکترین PoP.
مجموع
حفاظت DDoS قابل اعتماد یک معماری چند سطحی است: بهداشت شبکه (anti-spoofing/ACL/CoPP)، انحراف ترافیک سریع (RTBH/Flowspec/scrubbing/Anycast)، میزبان و مکانیزم های L7 (SYNPROXY، eBPF/XDP، WAAP)، به علاوه تله متری، SLO و playbooks debugged. این رویکرد خرابی را به حداقل می رساند، کانال ها را زنده نگه می دارد و معیارهای تجاری را حتی تحت فشار حملات توزیع می کند.