حمله‌ Slowloris

حمله‌ی Slowloris یکی از شناخته‌شده‌ترین حمله‌های کم‌حجم در دنیای امنیت وب است که بدون مصرف پهنای باند سنگین، می‌تواند وب‌سرور را از دسترس خارج کند. این حمله در دسته‌ی حمله‌های DoS قرار می‌گیرد و بیش‌تر لایه‌ی Application را هدف قرار می‌دهد. مهاجم با باز‌ نگه‌ داشتن Connectionهای HTTP و ارسال درخواست HTTP ناقص، منابع سرور را درگیر می‌کند تا کاربران واقعی نتوانند به سایت دسترسی داشته باشند.

حمله‌ی Slowloris بیش‌تر با وب‌سرور Apache شناخته می‌شود، چون بعضی ساختارهای مدیریت Connection در آپاچی نسبت به این مدل حمله آسیب‌پذیرتر هستند. این حمله به‌ دلیل این‌که پهنای باند زیادی مصرف نمی‌کند، شناسایی آن نسبت به بعضی حمله‌های DDoS دشوارتر است.

در ادامه، عملکرد حمله‌ی Slowloris، نحوه‌ی اجرا، خطرات و روش‌های جلوگیری از آن بررسی می‌شود.

حمله‌ Slowloris چیست؟

حمله‌ی Slowloris نوعی حمله‌ی DoS در لایه‌ی Application است که با باز‌ نگه‌ داشتن تعداد زیادی Connection HTTP، منابع وب‌سرور را اشغال می‌کند. در این حمله، مهاجم درخواست HTTP را کامل ارسال نمی‌کند و فقط بخشی از Headerها را به‌شکل آهسته و تکه‌تکه می‌فرستد. سرور هم تصور می‌کند کاربر هنوز در حال تکمیل درخواست است و Connection را باز نگه می‌دارد.

وقتی تعداد درخواست‌های ناقص HTTP زیاد شود، Connectionهای آزاد سرور کم شده و کاربران واقعی با خطا، کندی یا Timeout روبه‌رو خواهند شد. برخلاف بعضی حمله‌های DDoS که روی حجم بالای ترافیک تمرکز دارند، عملکرد حمله‌ی Slowloris بیش‌تر بر اشغال Connectionهای هم‌زمان سرور استوار است.

سرورهای Apache در سال‌های گذشته بیش‌تر از سایر وب‌سرورها در بحث Slowloris مطرح بوده‌اند. چون بعضی مدل‌های مدیریت Connection در آپاچی می‌توانند در برابر تعداد زیادی اتصال نیمه‌کاره آسیب‌پذیرتر باشند. بنابراین، در بسیاری از تحلیل‌های امنیتی، Slowloris یکی از حمله‌های شناخته‌شده علیه Apache است.

تاریخچه حمله Slowloris

حمله‌ی Slowloris در سال ۲۰۰۹ به‌شکل عمومی معرفی شد و از همان ابتدا یک حمله‌ی DoS کم‌حجم بود. هدف اصلی این حمله، از دسترس خارج کردن وب‌سرورها بدون نیاز به ترافیک سنگین محسوب می‌شد. برخلاف حمله‌های حجمی رایج آن دوره، Slowloris تلاش می‌کرد با تعداد زیادی درخواست HTTP ناقص، Connectionهای سرور را اشغال کند و ظرفیت پاسخ‌گویی را کاهش دهد.

بعد از معرفی Slowloris، حمله‌های لایه‌ی Application بیش‌تر مورد توجه مهاجمان قرار گرفتند. چون این حمله‌ها به پهنای باند زیادی نیاز ندارند و در بعضی شرایط، شناسایی آن‌ها از حمله‌های DDoS حجمی سخت‌تر است. به‌مرور، مدل‌های دیگری مانند Slow HTTP POST و حمله‌های مبتنی‌بر Session هم توسعه پیدا کردند که همگی روی مصرف منابع Application تمرکز داشتند.

در مقابل، روش‌های دفاعی وب‌سرورها هم تغییر کرد. بسیاری از وب‌سرورها و ابزارهای امنیتی، محدودیت Connection ،Timeout هوشمند، Rate Limiting و تحلیل رفتار درخواست‌های HTTP را جدی‌تر دنبال کردند. استفاده از Reverse Proxy، سرویس‌های ضد دی‌داس، CDN و ابزارهایی مانند WAF هم به بخشی از راهکارهای رایج جلوگیری از حمله‌ی Slowloris تبدیل شد.

چرا حمله Slowloris خطرناک است؟

حمله‌ی Slowloris با وجود ترافیک کم، می‌تواند وب‌سرور را از دسترس خارج سازد. مهاجم در این حمله به پهنای باند زیادی نیاز ندارد و فقط با تعداد بسیاری درخواست HTTP ناقص، Connectionهای سرور را برای مدت طولانی اشغال می‌کند. همین موضوع باعث می‌شود شناسایی حمله همیشه ساده نباشد، چون ترافیک آن گاهی شبیه رفتار یک کاربر کند یا Connection ضعیف است.

خطر اصلی Slowloris روی Availability سرور وجود دارد. با افزایش Connectionهای نیمه‌کاره، ظرفیت پاسخ‌گویی سرور کاهش پیدا می‌کند و کاربران واقعی با کندی، Timeout یا قطع دسترسی روبه‌رو می‌شوند. برای همین حتا یک حمله‌ی کم‌حجم هم می‌تواند اختلال جدی در سایت، سرویس آنلاین یا API را به‌همراه داشته باشد.

شیوه‌ عملکرد حمله‌ Slowloris

عملکرد حمله‌ی Slowloris بر پایه‌ی باز‌ نگه‌ داشتن تعداد زیادی Connection HTTP است. مهاجم ابتدا اتصال‌های متعددی با وب‌سرور برقرار و بعد فقط بخشی از Headerهای HTTP را ارسال می‌کند. چون درخواست کامل نمی‌شود، سرور منتظر دریافت ادامه‌ی داده‌ها می‌ماند و Connection را باز نگه می‌دارد.

در مرحله‌ی بعد، مهاجم در بازه‌های زمانی مشخص، بخش‌های کوچکی از Header را دوباره ارسال می‌کند تا اتصال قطع نشود. با تکرار این روند، تعداد زیادی Connection نیمه‌کاره روی سرور باقی می‌ماند و ظرفیت پاسخ‌گویی به کاربران واقعی کاهش پیدا می‌کند. اگر تعداد این اتصال‌ها زیاد شود، سایت با کندی، Timeout یا اختلال کامل روبه‌رو خواهد شد.

تفاوت حمله‌ Slowloris با حمله‌های DDoS

حمله‌ی Slowloris از نظر نحوه‌ی فشار روی سرور، با بسیاری از حمله‌های دی‌داس تفاوت دارد. Slowloris بیش‌تر روی اشغال Connectionهای سرور تمرکز می‌کند، در‌ حالی‌ که بسیاری از حمله‌های DDoS حجمی با ارسال ترافیک سنگین، پهنای باند یا منابع شبکه را هدف می‌گیرند.

معیار مقایسه حمله‌ Slowloris حمله‌ DDoS حجمی
نوع حمله حمله‌ی DoS در لایه‌ی Application حمله‌ی حجمی در شبکه یا زیرساخت
میزان مصرف پهنای باند مهاجم کم زیاد
تعداد درخواست‌ها اغلب کم‌تر ولی طولانی‌مدت بسیار زیاد و پرتعداد
نوع درخواست درخواست HTTP ناقص درخواست کامل یا Packetهای حجیم
روش فشار روی سرور اشغال Connectionها اشباع پهنای باند یا منابع شبکه
تشخیص حمله دشوارتر، چون ترافیک شبیه کاربر عادی است اغلب ساده‌تر به‌‌دلیل جهش ترافیک
روش مقابله Timeout، محدودیت Connection،

WAF

فیلتر ترافیک، CDN، سرویس ضد DDoS
تاثیر اصلی کاهش توان پاسخ‌گویی وب‌سرور قطع یا اشباع کامل سرویس

تفاوت حمله‌ HTTP Flood و Slowloris

حمله‌ی HTTP Flood و حمله‌ی Slowloris هر دو در لایه‌ی Application انجام می‌شوند، ولی روش فشار وارد کردن آن‌ها به سرور متفاوت است. در HTTP Flood، مهاجم تعداد زیادی درخواست کامل HTTP به سرور ارسال می‌کند تا منابع پردازشی، CPU یا Application درگیر شوند. این درخواست‌ها اغلب ظاهری عادی دارند و می‌توانند شبیه رفتار واقعی کاربران باشند.

در مقابل، Slowloris روی درخواست HTTP ناقص تمرکز دارد. در این حمله، اتصال‌ها کامل نمی‌شوند و سرور برای مدت طولانی منتظر دریافت ادامه‌ی Header یا داده باقی می‌ماند. بنابراین، فشار اصلی Slowloris روی Connectionهای هم‌زمان و ظرفیت نگه‌داری اتصال‌های سرور است.

نشانه‌های حمله‌ Slowloris

نشانه‌های حمله‌ Slowloris

نشانه‌های حمله‌ی Slowloris همیشه شبیه حمله‌های DDoS حجمی نیستند و گاهی به‌شکل تدریجی ظاهر می‌شوند. بعضی از رایج‌ترین نشانه‌ها عبارت‌اند از:

1. کند شدن سایت بدون افزایش واضح ترافیک

یکی از مهم‌ترین نشانه‌های حمله‌ی Slowloris، کاهش سرعت پاسخ‌دهی وب‌سایت بدون افزایش محسوس حجم ترافیک ورودی است. در این شرایط، سرور تحت فشار درخواست‌های ناقص قرار می‌گیرد و منابع آن به‌تدریج اشغال می‌شوند. به همین دلیل کاربران کندی سایت را تجربه می‌کنند، در حالی که میزان بازدید یا مصرف پهنای باند تغییر چشم‌گیری نکرده است.

Timeout .2 شدن درخواست کاربران

در جریان حمله‌ی Slowloris، بسیاری از درخواست‌های کاربران واقعی به‌دلیل اشغال بودن منابع سرور در زمان مقرر پردازش نمی‌شوند. این موضوع، بروز خطاهای Timeout و قطع ارتباط کاربران با وب‌سایت را به‌دنبال دارد. افزایش مداوم این خطاها می‌تواند نشانه‌ای از وجود یک حمله‌ی در حال اجرا باشد.

3. افزایش غیرعادی تعداد Connectionهای باز

این حمله با ایجاد تعداد زیادی اتصال باز و نگه‌ داشتن آن‌ها برای مدت طولانی عمل می‌کند. در نتیجه، تعداد Connectionهای فعال سرور به‌طور غیرعادی بالا می‌رود. مشاهده‌ی چنین الگوی رفتاری در ابزارهای مانیتورینگ شبکه می‌تواند هشداری برای شناسایی حمله باشد.

4. اشغال شدن Threadهای وب‌سرور

وب‌سرورها برای پردازش درخواست‌ها از Workerها یا Threadهای مشخصی استفاده می‌کنند. در حمله‌ی Slowloris، این منابع با Connectionهای ناقص اشغال می‌شوند و ظرفیت پردازش درخواست‌های جدید کاهش پیدا می‌کند. در نتیجه، عملکرد کلی سرور تحت تاثیر قرار می‌گیرد.

5. بالا رفتن مصرف RAM

نگه‌داری تعداد زیادی اتصال هم‌زمان، افزایش مصرف RAM را در پی دارد. هر Connection بخشی از منابع سرور را به خود اختصاص می‌دهد و با افزایش تعداد آن‌ها، فشار بیش‌تری بر حافظه وارد می‌شود. رشد غیرعادی مصرف RAM می‌تواند یکی از نشانه‌های فعالیت این نوع حمله باشد.

6. طولانی شدن زمان بارگذاری صفحات

کاربران معمولن نخستین اثر حمله‌ی Slowloris را در قالب افزایش زمان بارگذاری صفحات مشاهده می‌کنند. از آن‌جا که سرور بخش بسیاری از منابع خود را صرف مدیریت Connectionهای مخرب می‌کند، پاسخ‌دهی به درخواست‌های واقعی کندتر انجام می‌شود. این موضوع تجربه‌ی کاربری را به‌شدت تحت تاثیر قرار می‌دهد.

سرورهای آسیب‌پذیر در برابر Slowloris

وب‌سرور Apache یکی از شناخته‌شده‌ترین هدف‌ها در حمله‌ی Slowloris است. چون در بعضی مدل‌های پردازشی Apache، هر Connection برای مدتی بخشی از منابع سرور را درگیر می‌کند. اگر تعداد زیادی اتصال نیمه‌کاره روی سرور باقی بماند، Workerها یا Threadهای آزاد کم می‌شوند و توان پاسخ‌گویی سرور پایین می‌آید.

در مقابل، Nginx مقاومت بیش‌تری در برابر Slowloris دارد. چون ساختار Event-driven آن برای مدیریت تعداد زیادی Connection هم‌زمان بهینه‌تر است و وابستگی کم‌تری به Threadهای جداگانه نشان می‌دهد. البته این موضوع به‌ معنی مصون‌ بودن کامل Nginx نیست و تنظیمات اشتباه هم‌چنان می‌توانند ریسک حمله را بالا ببرند.

تنظیمات سرور نقش مهمی در مقاومت در برابر Slowloris دارند. محدود کردن تعداد Connectionهای هم‌زمان، تنظیم Timeout مناسب و کنترل نرخ دریافت Headerهای HTTP می‌تواند احتمال موفقیت حمله را کم‌تر کند. استفاده از Load Balancer هم بخشی از فشار اتصال‌ها را قبل از رسیدن به وب‌سرور مدیریت کرده و در بعضی زیرساخت‌ها، تاثیر حمله را کاهش می‌دهد.

روش‌های جلوگیری از حمله‌ Slowloris

روش‌های جلوگیری از حمله‌ Slowloris

جلوگیری از حمله‌ی Slowloris به ترکیب چند تنظیم امنیتی و زیرساختی نیاز دارد. چون این حمله روی Connectionهای HTTP تمرکز می‌کند، مدیریت درست اتصال‌ها و تحلیل رفتار درخواست‌ها بسیار مهم است.

1. استفاده از Web Application Firewall

استفاده از WAF یکی از رایج‌ترین روش‌های مقابله با Slowloris است. WAF می‌تواند الگوهای مشکوک در درخواست‌های HTTP را شناسایی کند و بخشی از Connectionهای مخرب را قبل از رسیدن به وب‌سرور مسدود سازد. برای آشنایی بیش‌تر با عملکرد این ابزار، مطالعه‌ی مطلب WAF چیست می‌تواند مفیدباشد.

2. تنظیم Timeout مناسب

تنظیم Timeout برای دریافت Header و Body درخواست‌ها باعث می‌شود Connectionهای طولانی و ناقص زودتر بسته شوند. این کار احتمال اشغال‌ شدن Workerها و Connectionهای سرور را کاهش می‌دهد.

3. محدود کردن Connectionهای هم‌زمان

محدودسازی تعداد Connection از هر IP می‌تواند بخشی از فشار حمله را کنترل کند. این محدودیت روی وب‌سرور، فایروال یا Reverse Proxy اعمال می‌شود.

4. استفاده از Reverse Proxy

استفاده از Reverse Proxy کمک می‌کند تا بخشی از مدیریت Connectionها قبل از رسیدن درخواست به سرور اصلی انجام شود. در بسیاری از زیرساخت‌ها، Reverse Proxy فشار مستقیم روی Apache یا Application Server را کاهش می‌دهد.

5. به‌روزرسانی وب‌سرور

نسخه‌های جدید Apache ،Nginx و سایر وب‌سرورها اغلب مکانیزم‌های بهتری برای کنترل Connection و مقابله با Slow HTTP دارند. از‌ این‌ رو، به‌روزرسانی منظم وب‌سرور و ماژول‌های امنیتی بسیار مهم است.

6. استفاده از CDN و سرویس‌های امنیتی

استفاده از CDN و سرویس‌های امنیتی ابری می‌تواند بخشی از ترافیک و Connectionهای مشکوک را قبل از رسیدن به سرور مدیریت کند. در بعضی زیرساخت‌ها، استفاده از راهکار امنیت ابری در کنار تنظیمات امنیتی سرور، احتمال موفقیت حمله‌های لایه‌ی Application را کاهش می‌دهد.

ابزارهای مقابله با حمله‌ Slowloris

ابزارهای مقابله با حمله‌ Slowloris

ابزارهای مختلفی برای شناسایی و کاهش اثر حمله‌ی Slowloris وجود دارند. بعضی از این ابزارها روی مانیتورینگ ترافیک تمرکز دارند و بعضی دیگر برای فیلتر کردن درخواست‌های مشکوک یا مدیریت Connectionها استفاده می‌شوند. در ادامه، چند مورد از شناخته‌شده‌ترین ابزارهای مقابله با Slowloris را بررسی می‌کنیم.

1.  ModSecurity

این ابزار یک ماژول امنیتی متن‌باز برای وب‌سرورها است که نقش فایروال برنامه‌های وب (WAF) را ایفا می‌کند. ModSecurity با بررسی درخواست‌های HTTP و اعمال قوانین امنیتی، درخواست‌های مشکوک یا مخرب را شناسایی و مسدود می‌سازد. ModSecurity می‌تواند در کاهش اثر حمله‌های Slowloris و سایر حمله‌های لایه‌ی Application نیز موثر باشد.

Cloudflare .2

Cloudflare یک سرویس CDN و امنیت ابری است که ترافیک ورودی وب‌سایت را پیش از رسیدن به سرور اصلی مدیریت می‌کند. این سرویس با استفاده از مکانیزم‌های امنیتی مختلف، درخواست‌های مشکوک را شناسایی کرده و فشار ناشی از حمله‌ها را کاهش می‌دهد. کلادفلر هم‌چنین به بهبود پایداری و سرعت دسترسی به وب‌سایت کمک می‌کند.

Fail2Ban .3

Fail2Ban ابزاری برای مانیتورینگ لاگ‌های سیستم و سرور است که رفتارهای غیرعادی و مشکوک را شناسایی می‌کند. این ابزار پس از تشخیص الگوهای مخرب، IP مهاجم را به‌طور خودکار برای مدت مشخصی مسدود می‌سازد. استفاده از Fail2Ban می‌تواند از تکرار اتصال‌های مشکوک و سواستفاده از منابع سرور جلوگیری کند.

Arvancloud Security .4

سرویس امنیت ابری آروان‌کلاد برای محافظت از وب‌سایت‌ها در برابر انواع حمله‌های شبکه و وب طراحی شده است. این سرویس با تحلیل ترافیک HTTP و فیلتر کردن درخواست‌های غیرعادی، به کاهش تاثیر حمله‌های Slow HTTP مانند Slowloris کمک می‌کند. استفاده از این راهکار می‌تواند امنیت و پایداری سرویس‌های آنلاین را افزایش دهد.

نمونه‌های واقعی از حمله Slowloris

در سال‌های گذشته، نام Slowloris در بعضی گزارش‌ها و اخبار حمله‌های سایبری مطرح شده است. البته در برخی موارد، نوع دقیق حمله به‌شکل رسمی تایید نشده و بیش‌تر در حد گزارش یا ادعا باقی ماند.

سال ۲۰۰۹: هم‌زمان با ناآرامی‌های پس از انتخابات ایران، بعضی گزارش‌ها از استفاده از حمله‌های Slowloris علیه وب‌سایت‌های دولتی ایران خبر دادند و در برخی رسانه‌ها، اتهام این حمله‌ها به ایالات متحده نسبت داده شد.

سال ۲۰۱۱: گروه هکری LulzSec ادعا کرد وب‌سایت CIA را برای مدتی از دسترس خارج کرده است. بعضی تحلیل‌ها این رخداد را به حمله‌های لایه‌ی Application و مدل‌هایی شبیه Slowloris مرتبط دانستند.

سال ۲۰۱۸: در بعضی گزارش‌های امنیتی، فعالیت‌های گروه MoneyTaker و حمله علیه بانک‌های روسیه با سواستفاده از ضعف زیرساخت‌ها و حمله‌های Application Layer بررسی شد. هرچند ارتباط مستقیم همه‌ی این حمله‌ها با Slowloris به‌شکل قطعی تایید نشده است.

تاثیر Slowloris بر کسب‌وکارها

حمله‌ی Slowloris می‌تواند باعث کندی شدید یا از دسترس خارج شدن سایت شود و همین اختلال، تجربه‌ی کاربر را تحت تاثیر قرار دهد. در سرویس‌های آنلاین، فروشگاه‌های اینترنتی و سامانه‌های پرترافیک، چند دقیقه اختلال هم ممکن است به از‌ دست‌ رفتن سفارش، کاهش اعتماد کاربران و نارضایتی مشتری‌ها منجر شود.

ادامه‌دار شدن این مشکل فقط روی کاربران اثر نمی‌گذارد و می‌تواند هزینه‌ی مالی و فنی برای کسب‌وکار ایجاد کند. علاوه‌بر‌ این، اگر موتورهای جست‌وجو هنگام بررسی سایت با خطا یا Timeout روبه‌رو شوند، احتمال تاثیر منفی روی سئو و رتبه‌ی صفحات هم وجود دارد.

اشتباهات رایج در مقابله با Slowloris

بعضی اشتباهات امنیتی می‌توانند شناسایی و کنترل Slowloris را سخت‌تر کنند و باعث شوند سرور مدت بیش‌تری درگیر حمله باقی بماند.

  • تصور کافی‌ بودن فایروال شبکه بدون استفاده از WAF
  • تنظیم‌ نبودن Timeout برای Connectionهای HTTP
  • بررسی‌ نکردن Connectionهای باز و لاگ‌های HTTP
  • استفاده از نسخه‌های قدیمی Apache و ماژول‌های قدیمی
  • بی‌توجهی به به‌روزرسانی‌های امنیتی سرور
  • نداشتن محدودیت برای Connectionهای هم‌زمان

جمع‌بندی

حمله‌ی Slowloris یکی از حمله‌های دی‌داس در لایه‌ی Application است که با باز‌ نگه‌ داشتن Connectionهای HTTP و ارسال درخواست‌های ناقص، ظرفیت پاسخ‌گویی وب‌سرور را اشغال می‌کند. این حمله به پهنای باند زیادی نیاز ندارد و برای همین در بعضی شرایط شناسایی آن از حمله‌های حجمی سخت‌تر است.

Slowloris بیش‌تر روی دسترس‌پذیری سرویس و عملکرد وب‌سرور تاثیر دارد و می‌تواند باعث کندی، Timeout یا قطع دسترسی کاربران واقعی شود. بنابراین، مانیتورینگ Connectionها، تنظیم درست Timeout، استفاده از WAF و به‌روزرسانی مداوم وب‌سرور نقش مهمی در کاهش ریسک این حمله ایفا می‌کنند.

ارسال پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *