حملات منع دسترسی و مقابله با آنها
حملات منع دسترسی به واسطه پیچیدگی فنی و هزینه کم یکی از بزرگترین خطرات برای نگهدارندگان سرویس های اینترنتی هستند. سرویس CDN به کمک ابزارها و راهکار های مورد اشاره این مقاله بزرگترین سپر دفاعی در مقابل این حملات است و کمک میکند با مکانیزمهای متنوعی به صورت ترکیبی در برابر این حملات مقاومت کنید.
لازم به ذکر است که حمله کنندگان دائما در حال افزایش ظرفیت، دسترسی به منابع جدید، استفاده از سخت افزارهای قدرتمندتر و استفاده از روشهای نوآورانه هستند و همین موضوع مقاومت در برابر آنها را دشوار میکند.
انواع مختلف حملات منع دسترسی نیازمند روش های مقابله متفاوتی هستند. مقاله زیر به رایجترین انواع این حملات و روش های پیشنهادی مقابله میپردازد.
اولین نشانه این حملات معمولا با تکمیل شدن ظرفیت زیرساخت مشتری و افزایش درخواست های 5xx از سرورهای آپستریم مشاهده میشود، به همین خاطر هشدارهای مشاهده شده در مانیتورینگ اولین اخطار حمله هستند.
متریک های زیر میتوانند حملات منعدسترسی را از دیگر انواع اختلال تفکیک کنند:
- افزایش ناگهانی Requests/Sec روی یک یا چند دامنه
- افزایش ناگهانی Requests By Country از یک یا چند کشور خاص (قابل مشاهده در داشبورد بخش Security)
- افزایش ناگهانی Top URL برای یک یا چند URL خاص (قابل مشاهده در داشبورد بخش Heavy Hitters)
برای تفکیک حملات DOS از DDOS از متریک های زیر استفاده کنید:
- افزایش متریک های Unique IPs و Requests/Unique IP/1m (قابل مشاهده در داشبورد بخش Security)
در صورتی که متریک بالا افزایش قابل توجهی نداشت IP سرور های مهاجم با کمک متریک Top IPs (قابل مشاهده در داشبورد بخش Security) قابل شناسایی خواهند بود.
فایروال وب CDN ستون، یک دیواره آتش لایه هفت محسوب میشود که به شما امکان کنترل ترافیک ورودی/خروجی روی شبکه توزیع محتوایتان را میدهد. شما میتوانید با استفاده از قوانینی که برای این فایروال تعریف میکنید، تصمیم بگیرید که چه نوع ترافیکی را به سرورهای پشتی خود بفرستید و یا به چه کاربرانی اجازه بازدید از سایت خود را بدهید.
در این فایروال، میتوانید با استفاده از ترکیبی از شرطها که بر اساس متغیرهای درخواست/پاسخ (مثل کشور بازدیدکننده، محدوده IP، آدرس و پارامترهای ورودی مثل Query Strings و …) تعیین میشوند قوانینی تعریف کنید و تصمیم بگیرید که کدام ترافیک را عبور دهید، کدام را متوقف کنید و یا چالشی برای آن طرح کنید.
برای اینکه فایروال را برای سرویس CDN خود فعال کنید، ابتدا در صفحهی مرتبط با CDN به قسمت فایروال رفته و آن را فعال کنید. سپس با کلیک بر روی گزینهی ساخت قانون فایروال میتوانید قوانین مد نظر خود را بر روی فایروال پیکربندی کنید.
حمله از IP های محدود (کمتر از ۲۰)
با اضافه کردن یک یا چند قانون Block فایروال دسترسی این IPها قابل مسدود شدن است.
قبل از مسدود کردن هر IP:
- از اینکه IP به مشتری تعلق ندارد مطمئن شوید.
- WHOIS را بررسی کنید تا از مسدود شدن دسترسی کاربران عادی (مثلا کاربران پراکسی Cloudflare) جلوگیری شود. در صورتی که IP متعلق به سرویس دهندگان VPN یا Proxy بود برای مقابله با حمله از روش های دیگر استفاده کنید. توضیحات بیشتر
حمله روی URL های مشکوک
در صورتی که درخواست های یک یا چند URL مشکوک افزایش پیدا کرده بودند احتمال حمله DOS به خاطر ایراد نرمافزاری وجود دارد. پس پیش از هرکاری به بررسی تغییرات کلاینت یا اپلیکیشن سرور خود بپردازید. پس از بررسی این URL ها و در صورت صحت این حالت، با قانون های فایروال دسترسی را مسدود کنید.
حمله به دامنه های API
با اضافه کردن قانون Rate Limit فایروال تعداد درخواست ها را محدود کنید. برای تعیین پارامتر نرخ Rate Limit، مقدار متریک Requests/Unique IP/1m برای دامنه تحت حمله قبل از شروع حمله را بررسی کنید، این عدد نشان دهنده میانگین درخواست های هر IP یکتا در هر دقیقه است. با اضافه کردن حاشیه منطقی (50% تا 150%) به این عدد نرخ درخواست قابل قبول در هر دقیقه برای کاربران عادی دامنه را محاسبه کنید.
نکته: در صورتی که IP های مهاجم پراکندگی بالایی داشته باشند ممکن است استفاده از Rate Limit به تنهایی قادر به کاهش اثر حمله نباشد. در این شرایط استفاده فیلد «جریمه زمانی» پیشنهاد میشود. استفاده از این قابلیت امکان مسدود کردن درخواست های مهاجم، حتی در حالتی که این درخواست ها در پنجره مجاز Rate Limit قرار میگیرند را ایجاد میکند. برای فیلد «جریمه زمانی» زمانی بین ۵ تا ۱۰ دقیقه پیشنهاد میشود. توضیحات بیشتر
حمله به دامنه های غیر API
برای مقابله با این حملات میتوانید از قوانین Cookie/JS Challenge و CAPTCHA استفاده کنید. قوانین Cookie/JS Challenge اثری بر تجربه کاربران عادی ندارند و تنها مهاجمین را تحت تاثیر قرار میدهند، اما در صورتی که مهاجم از ابزار های پیشرفته استفاده کند موثر نخواهند بود. قانون CAPTCHA توانایی مقابله با مهاجمین پیشرفته تر را دارد، اما ایجاد این قانون نیازمند ثبت دامنه در پرتال ReCAPTCHA توسط مشتری است و مقداری زمان بر و پیچیده است.
ابتدا یک قانون Cookie/JS Challenge ایجاد کنید، در صورتی که حمله خنثی نشد از و دسترسی به مشتری وجود داشت از قانون CAPTCHA استفاده کنید. در صورتی که ثبت CAPTCHA با مشکل مواجه شد، مشابه حمله به دامنه های API از قانون Rate Limit فایروال استفاده کنید.
حملات پیشرفته تر
در صورتی که روش های ذکر شده برای خنثی کردن حمله ناموفق بودند، اگر منشا حمله خارج از ایران بود با استفاده از قانون Block فایروال دسترسی را برای کاربران خارجی محدود کنید.
اگر منشا حمله از ایران بود و یا مسدود کردن دسترسی کاربران خارجی برای مشتری ممکن نبود، به کمک Logforwarder اکسس لاگ درخواست های مهاجم را بررسی کنید و با شناسایی الگو در پارامتر های درخواست (مانند Header, Cookie، URL و Query String) اقدام به مسدود کردن این درخواست ها به کمک فایروال کنید.
علاوه بر این حملات ممکن است حملات گستردهتری رو کل CDN ستون انجام شود. مثل:
حملات HTTP Flood
این نوع حمله مشابه حملات قبلی است با این تفاوت که اندازه حمله بیشتر از ظرفیت CDN است. متریک های زیر میتوانند این حملات را تفکیک کنند:
- افزایش CPU Usage روی سرور های تحت حمله
- افزایش ناگهانی Requests
- تغییر ناگهانی ترکیب درخواست های Countries یا ISPs
- افزایش ناگهانی Unique IPs
حملات TLS Termination
این نوع حملات توان پردازشی سرور های لبه را هدف قرار میدهند، به همین خاطر به طور مستقیم زیرساخت مشتری درگیر نخواهد شد. متریک های زیر میتوانند این حملات را تفکیک کنند:
- افزایش CPU Usage روی سرور های تحت حمله
- افزایش ناگهانی TLS Errors
حملات Volumetric
این نوع حملات با مصرف پهنای باند شبکه سرور، پاسخگویی به کاربران و در مواردی دسترسی به سرور را مختل میکنند. افزایش ناگهانی ترافیک سرور و نزدیک شدن به ظرفیت پهنای باند شبکه نشان دهنده این نوع حمله است.
روش های مقابله
ستون با استفاده از ابزارهایی که توسعه داده میتواند با شناسایی و مسدود کردن ترافیک IPهای مهاجم اثر حمله را کمتر کند. همین طور در صورتی که حمله از مبدا چند IP خاص در جریان بود، به کمک ابزار ویژهای میتواند ترافیک آنها را مسدود کند.