حمله HTTP Flood چیست؟ آشنایی با حمله get/post
امروزه حمله HTTP Flood به زیرساختها در حال افزایش است. همین موضوع باعث شده بسیاری از افراد بخواهند بیشتر با این نوع از حملات آشنا شوند. حملات HTTP Flood نوعی از حملات DDoS هستند که در لایه هفتم مدل OSI (لایه اپلیکیشن) رخ میدهند. این حملات وب سرورها و برنامه را مورد هدف قرار میدهند. به این نوع از حملات، حمله get/post هم گفته میشود؛ زیرا با استفاده از درخواستهای HTTP GET یا HTTP POST حمله را انجام میدهد. ازآنجاییکه درخواستها در طول این حمله به نظر معتبر میرسند، جلوگیری از آنها دشوارتر خواهد بود. در ادامه این مطلب از بلاگ ابر زَس بیشتر با حمله HTTP Flood آشنا شده و میبینیم که چطور عمل میکند.
حمله HTTP Flood چیست؟
HTTP flood یکی از انواع حملات DDoS است. در روند این حملات، مهاجم یا هکر تلاش میکند با ارسال درخواستهای ظاهراً معتبر HTTP POST یا HTTP GET، به وب سرورها یا برنامهها نفوذ کند. به همین دلیل به این حملات، حمله get/post هم گفته میشود. در این دسته از حملات، اغلب از باتنت “zombie army” استفاده میشود. zombie army گروهی از کامپیوترها هستند که هریک با استفاده از بدافزارهایی ازجمله اسب تراوا، تحت کنترل قرار میگیرند.
حملات HTTP Flood از پکتهای نامتعارف، تکنیکهای جعل یا بازتاب استفاده نکرده و برای از دسترس خاج کردن سایت یا سرور به پهنای باند کمتری نسبت به سایر حملات نیاز دارد. به همین دلیل است که در حمله HTTP Flood مهاجمان نیاز دارند تا درک عمیقتری درباره سایت یا برنامه موردنظر داشته باشند. هر حمله باید به شکل خاص طراحی و ساخته شود تا مؤثر واقع شود. همه اینها باعث میشود تا شناسایی و مسدود کردن حملات HTTP Flood سختتر از بسیاری از حملات دیگر باشد. برای اینکه بیشتر درباره حمله Flood و انواع آن بدانید، پیشنهاد میکنیم مطلب «حمله Flood چیست؟» را مطالعه نمایید.
نحوه عملکرد حمله HTTP Flood
حالا که میدانیم حمله HTTP Flood چیست بیایید با نحوه کار آنها آشنا شویم. زمانی که یک سرویس گیرنده HTTP، برای مثال یک مرورگر وب، با یک برنامه یا سرور ارتباط برقرار کرده یا بهاصطلاح “Talk” برقرار میکند، یکی از دو درخواست HTTP را بهصورت GET یا POST را ارسال میکند. درخواست GET مربوط به بازیابی یک محتوای استاندارد و ثابت، مانند تصاویر است درحالیکه درخواست POST، در دسترسی به منابع پویا و داینامیک تولید شده، استفاده میشود.
زمانی حملات مؤثرتر هستند که سرور یا اپلیکیشن را وادار میکند تا بیشترین میزان منابع ممکن را برای پاسخ به درخواستها، اختصاص دهد. بهعبارتدیگر، هدفی که مهاجم دنبال میکند، آن است که سرور یا برنامه مورد هدف را تا جایی که امکان دارد، با درخواستهای متعدد که هرکدام نیاز به پردازش دارند، مشغول کند. از این موضوع میتوان نتیجه گرفت که در بین انواع حمله get/post این، حملات HTTP Flood POST هستند که مؤثرتر واقع میشوند. دلیل این مسئله آن است که درخواستهای POST ممکن است پارامترهایی را شامل شود که آغاز پردازشهای پیچیدهتر سمت سرور را به همراه داشته باشد. از طرف دیگر، ایجاد حملات HTTP GET سادهتر هستند و میتوانند در سناریوهایی که به باتنتها متکی هستند، به شکل مؤثرتری از نظر ابعاد حمله گسترش یابند.
انواع راهکارهای حمله HTTP Flood
همانطور که گفتیم، حمله HTTP Flood شامل دو نوع مختلف است. انواع این حملات عبارت است از:
- حمله HTTP GET
در این نوع از حملات HHTP Flood چندین کامپیوتر یا دستگاه مختلف با هم هماهنگ میشوند تا درخواستهای متعددی برای تصاویر، فایلها یا برخی موارد دیگر در سرور هدف، ارسال کنند. زمانی که سرور یا برنامه هدف با درخواستها و پاسخهای آنها به شدت مشغول شود، حمله DDoS اتفاق میافتد و به دنبال آن سرور از پاسخ به درخواستهای عادی باز میماند.
- حمله HTTP POST
زمانی که یک فرم در یک وبسایت ارسال میشود، سرور باید درخواستی که دریافت کرده را ابتدا بررسی نموده و سپس دادهها را به یک لایه دیگر که اغلب یک پایگاهداده است، ارسال کند. معمولاً روند رسیدگی به دادههای فرم و اجرای دستورات پایگاهداده، نسبت به قدرت پردازش و پهنای باند لازم برای ارسال درخواستهای POST، فرایندی پیچیدهتر است. در این نوع از حملات، از تفاوت در مصرف منابع، سوء استفاده میشود و با ارسال درخواستهای مستقیم متعدد به سرور هدف، در نهایت ظرفیت منابع اشباع شده و حمله DDoS اتفاق میافتد.
مخاطرات حمله HTTP Flood
یکی از مهمترین سؤالاتی که باعث میشود افراد متخصص سعی کنند تا با روند حمله HTTP Flood آشنا شده و راههای مقابله با آن را یاد بگیرند، این است که چرا حملات HTTP Flooding DDoS خطرناک است؟
قبل از این گفتیم که در یک حمله HTTP Flood از درخواستهای URL استاندارد استفاده میشود. به همین دلیل است که تشخیص درخواستهای این حملات نسبت به ترافیک معتبر و قانونی، دشوار خواهد بود. همچنین ازآنجاییکه به بستههای ناقص یا تکنیکهای جعل و بازتاب نیاز ندارند، شناسایی آنها سختتر میشود. این نوع از حملات به پهنای باند کمتری هم نسبت به حملات brute force نیاز دارند و به همین دلیل میتوانند بهراحتی یک سایت یا سرور را از دسترس خارج کنند. بهعبارتدیگر، حملات HTTP Flood DDoS برای اهداف خاص طراحی شده و کشف یا مسدود کردن آنها کار سادهای نیست. به همین دلیل بهراحتی امکان آسیب به زیرساختهای وب سرور یا برنامهها را دارند.
نحوه مقابله با حمله HTTP Flood
اگرچه گفتیم که مقابله با انواع حمله HTTP Flood میتواند بسیار سخت باشد، اما میتوان با روشهایی با آنها مقابله کرد. باتوجهبه ماهیت خاص و مکانیسم منحصربهفرد این حملات، بهترین رویکرد برای مقابله با انواع حمله get/post آن است که یک روش ترکیبی از امنیت لایه شبکه و اپلیکیشن در مدل OSI را استفاده کنید.
مکانیسمهای امنیت شبکه باید روی ایجاد لیست سیاه مهاجمان و آدرسهای IP که به حملات HTTP Flood ارتباط دارد، تمرکز داشته و همچنین مشخصات رفتاری هر درخواست و درخواستهای محدودکننده نرخ را بررسی میکند. در امنیت لایه برنامه، روی اصلاح آسیبها در اپلیکیشنهای وب، پیادهسازی محدودیتهای نرخ دسترسی و آدرسهای مشکوک و نیز استفاده از چالشهای CAPTCHA و رمزنگاری، تمرکز میشود. همچنین در این لایه از امنیت، از خدمات حفاظتی DDoS، متعادلکننده بار و وب اپلیکیشنها و حفاظت APIها استفاده میشود.
بهطورکلی، سازمانها و کسبوکارهای مختلف میتوانند از مراحل زیر برای مقابله با حملات HTTP Flood استفاده کنند:
افزایش محدودیتهای اتصال به سرور وب و اپلیکیشن
در این روش، با افزایش تعداد اتصالات HTTP که ممکن است همزمان پردازش شوند، آسیب در برابر حملات HTTP Flood کاهش پیدا میکند. همچنین میتوان با اجرای وقفههای زمانی، منابع اتصال به سرور وب و برنامه را آزاد کرد.
پیادهسازی محدودیتهای نرخ دسترسی
برای اجرای محدودیت روی نرخ دسترسی به سرویسها، باید درخواستهای دریافتی از هر آدرس IP معین محدود شود تا از حملات DDoS ازجمله حملات HTTP Flood جلوگیری شود. البته باید به این موضوع توجه داشته باشید که در صورت ناشناس بودن، احتمال جعل آدرسهای IP وجود دارد و در نتیجه این اتفاق ممکن است محدودیتهای نرخ دسترسی با مشکل مواجه شود.
استفاده از لود بالانسر و فایروال وب (WAF)
فایروالهای وب، از HTTP GET و POST در کنار مکانیسمهای مختلف مانند چالشهای CAPTCHA، رمزنگاری و تکنیکهای جلوگیری از دسترسی رباتها استفاده میکنند تا با حملات HTTP Flood مقابله کنند. متعادلکنندههای بار (Load Balancers) و پراکسیهای معکوس با بافر کردن اتصالات و پیادهسازی چندین تکنیک مدیریت اتصال، از تأثیرگذاری درخواستهای HTTP GET و POST بر برنامهها و منابع وب سرور جلوگیری میکنند.
بیشتر بخوانید: WAF چیست؟
استفاده از خدماتی مانند DDoS protection مبتنی بر ابر یا ردیابی باتنت
با استفاده از این راهحلها میتوانید شناسایی سریع فعالیتهای مشکوک را انجام داده و پاسخهای مناسب برای مقابله با حملات، داشته باشید. یکی از این راهکارها، سرویس کلود گارد است که از سرورهای شما در مقابل انواع حملات شامل حمله HTTP Flood محافظت میکند.
حفظ همیشگی امنیت
برای این روش، کافی است سعی کنید نرمافزارهای سرورهای خود را همیشه بهروز نگه داشته شده و آسیبپذیریها را مرتباً اصلاح کنید. این کار تا حد زیادی به کاهش خطر حملات و محافظت در برابر انواع تهدیدها، از جمله تهدیدات حمله get/post، کمک میکند.
استفاده از راهحلهای حفاظت DDoS
در این روش، میتوانید با استفاده از رویکردهایی که حملات را بدون تأثیر بر ترافیک قانونی مسدود میکنند، از انواع حمله HTTP Flood جلوگیری کنید. این رویکردها همچنین از یادگیری ماشینی و رفتاری استفاده کرده و شامل الگوریتمهای مبتنی بر درک رفتار هستند. درنهایت، همزمان با مدیریت مؤثر اتصالات کاربر و بدون آن که روی درخواستهای HTTP قانونی تأثیر گذاشته باشید، میتوانید حملات مخرب را مسدود کنید. این روش میزان دقت در محافظت را افزایش داده و درعینحال، اختلال در کار کاربران قانونی را به حداقل میرساند.
جمعبندی
در این مطلب هرآنچه را که درباره حمله HTTP Flood و انواع آن، راهکاری مقابله و همچنین روند کار آن لازم است بدانید، بررسی کردیم. این نوع از حملات که بهصورت حمله get/post اجرا میشود، بهسختی شناسایی شده و میتوانند بهراحتی سرور وب یا اپلیکیشنها را آسیبپذیر کنند. برای مقابله با این دسته از حملات بهتر است با ساختار آن آشنا شده و بدانید که چه روشهایی برای مقابله با آن وجود دارد.