جلوگیری از حملات DDoS که بسیار مخرباند و میتوانند سرورها یا شبکههای اینترنتی را از کار بیاندازند، کار دشواری است. در واقع راهحل قطعی برای جلوگیری از وقوع این حملات وجود ندارد، چرا که روش اجرای آن به صورت استاندارد است: درخواستهای ظاهراً قانونی به سمت سرور هدف ارسال میشوند، اما با حجم بسیار گستردهای که سرورها معمولاً توانایی پاسخگویی ندارند. در این مقاله نحوه جلوگیری از حملات DDoS را توضیح میدهیم.
تشخیص نوع حملات DDoS
همانطور که در مقاله حملات DDoS چه نوع حملاتی هستند؟ با ساختار و نحوه اجرای این حملات آشنا شدیم، باید بتوانیم درک واضحی از نحوه اجرای حملههای DDoS داشته باشیم تا بهترین روش برای جلوگیری را انتخاب کنیم.
لازم است بدانید هیچ روشی به صورت صد در صد نمیتواند جلوی این حملات را بگیرد. زمانی که قصد جلوگیری از حملات DDoS را دارید، باید ابتدا بدانید حمله در کدام لایه از مدل OSI شبکه رخ داده است.
جلوگیری از حملاتی که در لایه ۳ و ۴ به وقوع پیوسته باشند کار سادهای نیست. در حملات گسترده با حجم بالا، تنها با استفاده از فایروالهای سختافزاری امکان جلوگیری وجود دارد. اما در خصوص حملاتی که در لایه ۷ مدل OSI رخ میدهند، تا حدی میتوان با استفاده از فایروال نرمافزاری مانع وقوع آن شد.
در مقاله انواع حملات DDoS توضیحاتی در خصوص رایجترین روشهای اجرای حملات ارائه شده است. با توجه به نوع حمله، تکنیک مناسب برای جلوگیری را باید به کار بست.
موارد امنیتی و مهم در جلوگیری از حملات DDoS
روشهایی که نسبتاً برای جلوگیری از وقوع حملات DDoS موثرند:
- بهرهگیری از سرویسهای DDoS Protection مانند Cloudflare
- بهرهگیری از سیستمهای حفاظتی IDS
- حفظ امنیت کرنل یا هسته سیستمعامل
- حفظ امنیت سرویس PHP سرور
- حفظ امنیت اسکریپتهای تحت Perl
- حفظ امنیت اسکریپتهای تحت Python
- تأمین امنیت سرور با آنتیشل به لحاظ عدم اجرای Shell های مخرب
- بهرهگیری از آنتیویروس مناسب با کانفیگ صحیح به منظور بررسی سرور
- کانفیگ امنیتی symlink به منظور جلوگیری از دسترسیهای غیرمجاز
- بستن پورتهای قابل نفوذ بر روی سرور
- حذف کردن سرویسهای بلااستفاده یا غیرضروری از روی سرور
- بهرهگیری از موارد حفظ امنیت وبسرور نصبشده بر روی سرور مثل LiteSpeed یا Apache
- تأمین امنیت پورتهای بازی که امکان بستن آنها وجود ندارد، مثل پورت ۸۰
- بهروز بودن هسته وردپرس در سایتهای وردپرسی و استفاده از افزونههای امنیتی
بهترین ابزارها برای جلوگیری از حملات DDoS
علاوه بر موارد فوق، با استفاده از ابزارهایی میتوان از حملات DDoS جلوگیری کرد:
۱. Firewalls
با استفاده از تنظیمات قابل اجرا در فایروالها میتوانیم تعیین کنیم که پروتکلهایی پذیرفته یا رد بشوند. در صورت بروز حمله از چندین IP، میتوانیم رولی برای مسدود کردن پکتهای ارسالی از آن IP تعریف کنیم.
۲. Switches
اکثر سوئیچها دارای امکانات Rate-Limiting و ACL هستند که به صورت اتوماتیک قابلیتهای زیر را برای کشف و جلوگیری از حملات DDoS ارائه میکنند:
rate limiting، traffic shaping، delayed binding (TCP splicing)، deep packet inspection و Bogon filtering
۳. Routers
روترها نیز مانند سوئیچها دارای قابلیتهای Rate-Limiting و ACL هستند، اما کانفیگ آنها بسیار مهم است. اگر روتر به نحوی تنظیم شده باشد که گزارشات حملات را ارائه کند، به شدت کند شده و خودش مشکلساز خواهد شد. روترها در حملات سنگین DDoS امکان انجام کاری برای مقابله ندارند، اما در صورت تنظیم صحیح توانایی مقابله با حملات Ping را دارند.
۴. Application Front End Hardware
نوعی سختافزار است که در مسیر ترافیک ورودی به سرور قرار میگیرد. این سختافزار را بین روترها و سوئیچها میتوان قرار داد. بدین صورت پکتهای ارسالی ابتدا بررسی، آنالیز و اولویتبندی میشوند.
۵. IPS Based Prevention
پیشگیری بر اساس IPS در حملات Signature Associated کاربرد دارد. بنابراین حملاتی که دارای محتویات استاندارد هستند اما هدفی نادرست دارند، شناسایی میشوند. البته IPS های محتوایی نمیتوانند حملات رفتاری را تشخیص دهند.
۶. DDS Based Defense
برخلاف IPS ها، DDS ها حملات رفتاری و Connection-based را به خوبی تشخیص میدهند. بنابراین DDS ها میتوانند مانع اجرای حملات Protocol-based و Rate-based شوند.
۷. Blackholing and Sinkholing
روشی که معمولاً توسط ISP ها مورد استفاده قرار میگیرد و ترافیک ورودی به سمت DNS یا IP خاصی را به black hole ارسال میکند. این روش یک اشکال بزرگ دارد: تمامی ترافیک خوب و بد را به Black Hole منتقل میکند و دسترسی کاربران واقعی نیز قطع میشود.
۸. Clean Pipes
تمامی ترافیک ورودی از cleaning center عبور میکند و ترافیک بد از ترافیک واقعی جدا میشود. اجرای این روش به ارتباط مرکزی به اینترنت نیاز دارد.
۹. Intrusion Detection Systems (IDS)
سیستمهای کشف نفوذ که به همراه فایروالها قابل استفادهاند. این سیستمها میتوانند استفاده از پروتکلها به عنوان ابزار حملات DDoS را تشخیص دهند. کانفیگ این سیستمها باید توسط افراد متخصص انجام شود.
۱۰. Servers و Bandwidth
کانفیگ امنیتی سرورها بسیار حائز اهمیت است. مدیر سرور باید نحوه برخورد اپلیکیشنها با درخواستهای ورودی را در شرایط مختلف مشخص کند.
در اکثر روشهای اجرایی حملات DDoS، اولین مشکلی که برای سرور پیش میآید اتمام پهنای باند است. بنابراین با فراهم کردن پهنای باند اضافه، توانایی مقابله سرور با حملات تا حدی افزایش مییابد، هرچند این روش برای حملات بسیار سنگین جوابگو نباشد.
تفاوت انواع حملات DDoS از نظر لایه شبکه
درک تفاوت حملات DDoS در لایههای مختلف شبکه کمک میکند استراتژی دفاعی مناسب انتخاب کنید:
| لایه | نوع حمله | مثال | روش دفاع |
|---|---|---|---|
| لایه ۳-۴ (شبکه/انتقال) | Volume-based | UDP Flood، ICMP Flood | فایروال سختافزاری، blackholing |
| لایه ۴ (انتقال) | Protocol | SYN Flood، Ping of Death | Rate Limiting، SYN cookies |
| لایه ۷ (اپلیکیشن) | Application Layer | HTTP Flood، Slowloris | WAF، فایروال نرمافزاری |
حملات لایه ۷ سختترین نوع برای تشخیص هستند چون درخواستها ظاهر قانونی دارند. در این حالت Web Application Firewall (WAF) مثل Cloudflare یا ModSecurity بهترین ابزار دفاعی است.
نقش Cloudflare در مقابله با DDoS
Cloudflare یکی از محبوبترین و کارآمدترین سرویسهای محافظت در برابر DDoS است که بسیاری از سایتها از آن استفاده میکنند. مزایای آن:
- Anycast Network: Cloudflare از شبکه توزیعشده Anycast استفاده میکند که ترافیک حمله را در مراکز داده مختلف در سراسر دنیا توزیع میکند و از تمرکز حمله روی یک سرور جلوگیری میکند.
- Machine Learning: الگوریتمهای یادگیری ماشین Cloudflare میتوانند الگوهای حمله را شناسایی کنند و به صورت خودکار آنها را مسدود کنند.
- Rate Limiting: میتوانید قوانینی تعریف کنید که تعداد درخواست از یک IP را در یک بازه زمانی محدود کند.
- Bot Management: ترافیک رباتهای مخرب را از ترافیک انسانی واقعی تفکیک میکند.
برای فعال کردن حفاظت DDoS در Cloudflare، کافی است نیمسرورهای دامنه خود را به Cloudflare تغییر دهید. نسخه رایگان Cloudflare هم حفاظت پایهای در برابر DDoS ارائه میدهد.
تنظیم Rate Limiting با fail2ban در لینوکس
برای سرورهای لینوکس، ابزار fail2ban یکی از کارآمدترین راهحلها برای جلوگیری از حملات brute force و DDoS لایه ۷ است. این ابزار لاگهای سرور را مانیتور میکند و IP هایی که تعداد درخواست مشکوک دارند را به صورت خودکار مسدود میکند.
نصب fail2ban:
apt-get install fail2ban # Ubuntu/Debian
yum install fail2ban # CentOS/RHEL
یک قانون ساده برای محدود کردن درخواستهای HTTP در فایل /etc/fail2ban/jail.local:
[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
logpath = /var/log/apache2/access.log
maxretry = 300
findtime = 300
bantime = 600
action = iptables[name=HTTP, port=http, protocol=tcp]
این کانفیگ IP هایی را که در ۵ دقیقه بیشتر از ۳۰۰ درخواست HTTP ارسال میکنند به مدت ۱۰ دقیقه مسدود میکند. مقادیر را بر اساس نیاز سرور خود تنظیم کنید.
نشانههای احتمالی یک حمله DDoS در حال وقوع
شناسایی سریع حمله DDoS اهمیت زیادی دارد. این علائم را جدی بگیرید:
- کاهش ناگهانی سرعت سرور: اگر سرور بدون دلیل مشخص کند شده، میتواند نشانهای از بار غیرعادی باشد.
- افزایش غیرعادی ترافیک: در لاگهای سرور یا ابزارهای مانیتورینگ، ترافیک ناگهانی چند برابری مشکوک است.
- درخواستهای تکراری از IP های مشخص: اگر یک IP یا گروهی از IP ها درخواستهای زیادی ارسال میکنند.
- خطاهای ۵۰۳ Service Unavailable: این خطا معمولاً نشان میدهد سرور قادر به پاسخگویی به تمام درخواستها نیست.
- الگوی غیرعادی در User-Agent ها: درخواستهای زیادی با User-Agent یکسان یا خالی نشانه ربات است.
برای مانیتورینگ دائمی، ابزارهایی مثل Zabbix، Nagios یا Netdata میتوانند هشدارهای خودکار برای شما تنظیم کنند.
اقدامات سریع هنگام وقوع حمله DDoS
اگر سایت یا سرور شما تحت حمله DDoS قرار گرفت، این اقدامات را انجام دهید:
- با هاستینگ یا دیتاسنتر تماس بگیرید: آنها ممکن است بتوانند در سطح شبکه ترافیک حمله را فیلتر کنند.
- لاگهای سرور را بررسی کنید: IP های منشأ حمله را شناسایی کنید.
- IP های مهاجم را مسدود کنید: از طریق فایروال یا .htaccess IP های حمله را بلاک کنید.
- Rate Limiting فعال کنید: تعداد درخواست از هر IP را محدود کنید.
- CDN فعال کنید: اگر از CDN استفاده نمیکنید، فوراً آن را فعال کنید تا ترافیک از سرور اصلی شما عبور نکند.
سوالات متداول
آیا یک سایت کوچک هم ممکن است هدف DDoS قرار بگیرد؟
بله. گاهی حملات DDoS برای اخاذی انجام میشوند، گاهی از روی رقابت، و گاهی هم به صورت تصادفی (مثلاً سرور شما در یک زیرشبکه مشترک با هدف اصلی است). هیچ سایتی به خودی خود ایمن نیست.
تفاوت DoS و DDoS چیست؟
DoS (Denial of Service) از یک منبع اجرا میشود در حالی که DDoS (Distributed DoS) از هزاران یا میلیونها منبع به طور همزمان اجرا میشود. DDoS به مراتب قدرتمندتر است و مسدود کردن یک IP آن را متوقف نمیکند.
آیا Cloudflare رایگان برای DDoS کافی است؟
برای حملات کوچک تا متوسط، پلن رایگان Cloudflare معمولاً کافی است. برای حملات بزرگتر یا سایتهایی با ترافیک بالا، پلن Pro یا Business Cloudflare که قابلیتهای پیشرفتهتری دارند توصیه میشود.
جمعبندی
در این مقاله با موارد امنیتی و ابزارهایی که میتوانید قبل از بروز یا حین انجام حملات DDoS از آنها استفاده کنید آشنا شدیم. موارد گفتهشده کاملاً تخصصی است و توسط مدیران سرور متبحر قابل انجام است. لازم به ذکر است که هیچ روش دائمی برای جلوگیری از حملات DDoS وجود ندارد و همواره مهاجمان از روشها و تکنیکهای جدیدتری استفاده میکنند. پیگیری و تشخیص به موقع و داشتن مدیران سرور متخصص برای شرکتهای هاستینگ بسیار مهم است.
امیدواریم این مقاله برایتان مفید بوده باشد. اگر سوالی دارید که پاسخش را پیدا نکردید، در قسمت کامنتها مطرح کنید، کارشناسان ما در کمتر از چند دقیقه پاسخ خواهند داد.
این مقاله را با دوستان خود به اشتراک بگذارید.