امروزه که استفادهی فزاینده از اینترنت تبدیل به بستری برای بهرهبرداری مجرمین سایبری شده است، احتمال حملات DDoS (distributed denial-of-service) به شدت افزایش یافته است.
در این نوع حملات سرویس یا وبسایت قربانی با ارسال حجم سیل آسایی از ترافیک خرابکارانه توسط مهاجمین از کار میافتد. علت اصلی این افزایش حجم حملات DDoS تا حد زیادی ناشی از افزایش میزان استفاده از حملاتی است که به نام حملات SYN (Synchronization Packet Flood) شناخته میشوند.
حمله SYN Flood چیست؟
حملهی SYN Flood (حملهی نیمهی باز) نوعی حمله DDoS است که هدف آن، از دسترس خارج ساختن سرور برای ترافیک قانونی با مصرف تمامی منابع در دسترس سرور میباشد. یک مهاجم با ارسال درخواستهای مکرر (SYN) قادر است تمامی پورتهای روی سرور را مورد هدف قرار دهد و باعث شود دستگاه مورد نظر قادر به پاسخگویی به ترافیک قانونی نباشد و یا بسیار کند پاسخ دهد.
با مصرف کردن تمام منابع سرور، این نوع حملات میتوانند حتی سرورهای با ظرفیت بالا که قادر به پردازش میلیونها ارتباط مختلف هستند را نیز از کار بیندازند.
نحوه عملکرد SYN Flood چگونه است؟
با توجه به اینکه حملات SYN Flood DDoS از اتصال TCP (three-way handshake) و محدودیتهای آن در مدیریت کردن اتصالات نیمه باز بهره میگیرند، پس ابتدا بررسی کنیم که یک مکانیزم TCP چگونه کار میکند و سپس ببینیم حملات SYN Flood چگونه اتصال را مختل میکنند.
- وقتی که یک سیستم کلاینت میخواهد یک اتصال TCP را آغاز کند، پیام SYN (همگام سازی) را به صورت یک درخواست به سرور ارسال میکند.
- سرور با ارسال SYN-ACK به کلاینت، به این درخواست پاسخ میدهد.
- سپس، کلاینت با ارسال ACK به سرور، به این SYN-ACK پاسخ میدهد. پس از اتمام این ارسال و دریافت بسته ها، اتصال TCP به منظور برقراری ارتباط باز خواهد بود.
در حمله SYN Flood، هکر که خود را به عنوان یک کلاینت وانمود میکند، درخواست اتصال TCP SYN را با نرخ بالاتری نسبت به قدرت پردازش ماشین قربانی ارسال میکند. این حمله یک نوع حمله DoS اتلاف منابع است و نحوه عملکرد آن به شرح ذیل است:
- مهاجم، حجم زیادی از پکتهای SYN را به سرور مورد نظر ارسال میکند و غالبا با آدرسهای IP جعلی این کار انجام میشود.
- سپس سرور، به تمامی درخواستهای کانکشن پاسخ داده و یک پورت باز را برای دریافت پاسخ رها میکند.
- درحالیکه سرور منتظر آخرین ACK packet است که هرگز نخواهد رسید، مهاجم به ارسال پکتهای SYN بیشتری ادامه میدهد. رسیدن هر یک از پکتهای جدید SYN باعث میشود سرور به صورت موقتی در اتصال باز پورت برای یک مدت زمان مشخص باقی بماند و پس از استفاده از تمامی پورتهای موجود، سرور دیگر قادر به عملکرد عادی نیست.
در شبکه، زمانی که سرور یک کانکشن را به صورت باز رها میکند اما دستگاهی که در سمت دیگر قرار دارد کانکشن باز ندارد، به صورت نیمه باز در نظر گرفته میشود.
در این نوع حملات DDoS، سرور هدف به طور مداوم اتصالات را باز میگذارد و سپس منتظر به اتمام رسیدن زمان هر یک از کانکشنها قبل از در دسترس بودن مجدد پورتها میماند. در نتیجه به این نوع حمله، «حمله نیمه باز» نیز گفته میشود.
انواع حمله SYN Flood
– حمله SYN Flood مستقیم (Direct Attack):
در این روش، هکر حمله را با آدرس IP خودش آغاز میکند. هکر درخواستهای SYN متعددی را به سرور ارسال میکند. اما وقتی که سرور پاسخ SYN-ACK را به عنوان تایید ارسال میکند، پاسخ ACK را به سرور ارسال نمیکند. بلکه درخواست SYN جدیدی را به سرور قربانی ارسال میکند.
وقتی که سرور منتظر دریافت ACK است، دریافت بستههای SYN باعث میشود منابع سرور به مدت مشخصی برای یک اتصال نیمه باز اختصاص یابد که در نتیجه باعث میشود سرور قادر به عملکرد عادی نباشد و درخواستهای کلاینتهای واقعی را رد کند.
در روش حمله مستقیم، هکر فایروال خود را به گونهای تنظیم میکند که بستههای SYN-ACK نادیده گرفته شوند یا ترافیک خروجی را محدود میکند تا فقط اجازه خروج درخواستهای SYN را بدهد.
با توجه به اینکه هکرها از آدرس IP خودشان استفاده میکنند، امکان شناسایی مهاجمین بیشتر است. این نوع حمله به ندرت مورد استفاده قرار میگیرد.
– حمله Spoofed Attack:
به عنوان روشی دیگر و به منظور جلوگیری از شناسایی، خرابکار بستههای SYN را از آدرسهای IP جعلی ارسال میکند. پس از دریافت درخواست SYN، سرور SYN-ACK را به آدرس IP جعلی ارسال میکند و منتظر پاسخ میماند.
با توجه به اینکه آدرس جعلی بسته را ارسال نکرده است، پاسخی نیز به سرور نمیدهد. برای این نوع از حملات SYN Flood، مهاجمین آدرسهای IP را انتخاب میکنند که در حال استفاده نیستند تا مطمئن باشند که سیستم هرگز پاسخی به درخواست SYN-ACK نمیدهد.
در این حالت کشف حمله و همچنین راههای مقابله با آن بسیار دشوار است. با این که پکتها جعل میشوند، اما باز هم میتوان آنها را تا مبدأشان ردیابی نمود. انجام این کار و ردیابی آنها بسیار دشوار است اما غیر ممکن نیست، به خصوص اگر خدمات دهندهی اینترنت (ISP) مایل به همکاری و کمک باشد.
– حمله Distributed Attack (DDoS):
در صورتی که حمله با استفاده از بات نت ایجاد شده باشد، احتمال ردیابی مبدأ آن بسیار کم میشود. حتی ممکن است مهاجم آدرس IP دستگاهی که از آن پکتها را توزیع میکند را نیز جعل کند.
مهاجم میتواند با استفاده از حملهی SYN flood سعی در ایجاد حمله DoS در دستگاه یا خدمات مورد نظر با ترافیکی بسیار کمتر از حملهی DDoS داشته باشد. به جای حملات حجمی، که هدف آنها اشباع زیرساختهای شبکه است، حملات SYN میبایست بزرگتر از تعداد موجود در سیستم عامل هدف باشند. SYN Flood
اگر مهاجم بتواند اندازهی backlog و اینکه چه مدت هر کانکشن قبل از اتمام زمان باز میماند را تعیین کند، قادر خواهد بود پارامترهای دقیق مورد نیاز برای غیرفعال کردن سیستم را هدف قرار دهد. در نتیجه حجم کلی ترافیک را به کمترین میزان رسانده تا بتواند حملهی DoS را انجام دهد.
چگونه در برابر حملات SYN Flood از خود محافظت کنیم؟
مدت زیادی است که آسیبپذیری SYN Flood وجود دارد و روشهای مختلفی برای کاهش آن وجود دارد. برخی از روشهای مقابله با آن عبارتند از:
– افزایش Queue
هر سیستم عاملی که بر روی دستگاهی وجود دارد، دارای تعداد مشخصی کانکشن نیمه باز است. یک پاسخ به حجم بالای پکتهای SYN منجر به افزایش تعداد کانکشنهای نیمه باز میشود.
به منظور افزایش موفقیتآمیز حداکثر تعداد backlog، سیستم میبایست مجهز به منابع ذخیرهی مازاد، جهت پرداختن به درخواستهای جدید گردد. چنانچه سیستم حافظهی کافی جهت مدیریت backlog queue افزایش یافته را نداشته باشد، تاثیر منفی بر روی عملکرد سیستم خواهد داشت، اما باز هم بهتر از DoS است.
– حذف قدیمیترین اتصال نیمه باز
استراتژی دیگری که مورد استفاده قرار میگیرد، شامل overwrite کردن قدیمیترین کانکشن نیمه باز است زمانی که backlog به صورت کامل پر میشود.
این استراتژی مستلزم این است که کانکشنهای قانونی در زمان کمتری در مقایسه با پر شدن backlog توسط پکتهای مخرب SYN ایجاد شوند. این دفاع زمانی که حجم حمله افزایش یابد یا اگر اندازهی backlog بسیار کوچک باشد، از کار میافتد.
– کوکیهای SYN
این استراتژی شامل ایجاد یک cookie توسط سرور است. به منظور جلوگیری از خطر قطع کانکشن در هنگام پر شدن backlog، سرور به تمامی درخواستهای کانکشن با استفاده از یک پکت SYN-ACK پاسخ میدهد.
اما سپس درخواست SYN را از backlog و حافظه حذف میکند و پورت را به صورت باز رها نموده و آمادهی ایجاد یک کانکشن جدید میشود.
چنانچه کانکشن یک درخواست قانونی باشد و پکت نهایی ACK از دستگاه کاربر به سرور ارسال شود، در آن صورت سرور اقدام به بازسازی ورودی SYN backlog queue البته با برخی محدودیتها خواهد نمود.
اگرچه تلاش برای کاهش حملات منجر به از دست رفتن برخی از دادههای مربوط به TCP connection میگردد، اما باز هم بهتر از اجازه دادن به DoS به کاربران قانونی در نتیجه حمله است.
– فیلترینگ فایروال
با قرار دادن و تعریف یک فایروال هوشمند در مدار، پکتهای SYN را شناسایی و مسدود نمایید. این روش برای تمامی حملات DDoS مثل Packet Sweeps، Flooding، Unauthorized Port Scanning کارآمد میباشد.
برای مرتفع کردن حملات SYN Flood DDoS از دستگاههای IPS و فایروالهای سنتی فراتر بروید.
اگرچه فایروالهای مبتنی بر شبکه و دستگاههای IPS نقشی کلیدی در امنیت شبکه دارند، اما برای محافظت کامل در برابر حملات پیچیده کافی نیستند. حملات امروزی پیچیدهتر بوده و نیازمند یک رویکرد چندجانبه هستند.
برخی از قابلیتهایی که از بهترین روش محافظت DDoS و مرتفعسازی حملات SYN Flood انتظار میروند عبارتند از:
- پشتیبانی از شفافیت ترافیک درون خطی و خارج از باند جهت تحلیل ترافیک از قسمتهای مختلف شبکه
- استفاده از منابع مختلف هوشمند از جمله هشدارهای آستانهای قابل سفارشیسازی، تشخیص آماری ناهنجاری و پایگاه دادهای از حملات شناخته شده و حملات نوظهور جهت تشخیص حملات به شکلی دقیق
- مقیاس پذیری در برابر حملات ساده و پیشرفته
محافظت در برابر حملات DDoS سطح شبکه مانند حملات SYN باید بخشی از برنامه ارائه کنندهی سرویس میزبانی شما باشد و بسیاری از ارائه کنندگان ابرهای عمومی این قابلیت را در پیشنهادات خود لحاظ میکنند.
به عنوان صاحب یک کسبوکار، شما باید توجه بیشتری نسبت به مدل مسئولیتپذیری اشتراکی و نحوه محافظت در برابر ریسکهایی داشته باشید که مختص به بار شبکه و برنامههای میزبانی شده بر روی ماشینهای محاسباتی ارائه شده توسط ارائه کننده خدمات میزبانی هستند.
FortiDDos چگونه به شما در برابر حملات DDoS کمک میکند؟
راه حل محافظتی FortiDDos یک پیشنهاد SaaS است که از طریق محتوای متصل بر روی یک ابر اختصاصی میزبانی میشود و به شکل خودکار محافظت در برابر حمله DDoS را برای برنامههای شما تضمین میکند.
به علاوه، مرتفعسازی کامل DDoS را بدون خاموشی، از کار افتادگی، تاخیر یا اختلالات تجاری فراهم مینماید. همچنین فورتی وب (FortiWeb) که یک فایروال مبتنی بر وب با مدیریت کامل است میتواند در برابر دیگر حملاتی که آسیب آنها بیشتر به برنامههای تحت وب میباشد (مثل باتها) از شبکه شما محافظت نماید.