امروزه حملات DDoS یا Distributed Denial of Service که به دستهای از حملات سایبری اطلاق میشوند، به یکی از مهمترین نگرانیها در حوزه امنیت اینترنت تبدیل شدهاست. در این مقاله سعی شده جزئیات مرتبط با چگونگی عملکرد حملات DDoS و نحوه مقابله با آنها بررسی شود.
DDoS چیست؟
حمله DDoS که در واقع مخفف عبارت Distributed Denial of Service است و به حمله منع از سرویس توزیع شده معروف میباشد، نوعی از حملات سایبری بوده که در بستر اینترنت انجام میشود. یک حمله DDoS نه تنها ممکن است تجربه بدی را برای کاربران ایجاد کند بلکه حتی میتواند اعتبار سازمان یا کسبوکار شمارا تحت تاثیر قراردهد، با ما همراه باشید تا درباره این حملات و چگونگی وقوع آنها بیشتر بدانید. طی این حملات مهاجم یا Attacker با ارسال تعداد زیادی درخواست برای شبکه یا سرور قربانی، ترافیک شدیدی را ایجاد کرده و بدین ترتیب مانع سرویسدهی به کاربران مجاز میشود. برای درک بهتر این موضوع به ذکر یک مثال میپردازیم: اگر سرور و یا شبکه هدف را به مثابه یک فروشگاهی در نظر بگیریم که به مشتریان خود خدماتی ارائه میکند، مهاجم یا Attacker در این مثال با ایجاد شلوغی و ازدحام در مقابل درب فروشگاه میتواند باعث اختلال در سرویس دهی فروشگاه شود.
تفاوت بین مفاهیم DOS و DDOS (DDoS vs. DoS)
حمله انکار از سرویس توزیع شده یا دی داس(DDoS)، زیرمجموعهای از حملات منع از سرویس عمومیتر بهنام Dos Attack میباشند. در یک حمله DoS مهاجم از یک سیستم استفاده میکند تا هدف را با درخواستهای زیاد جعلی دچار اختلال در سرویس دهی کند به این معنا که یک IP مسئول این حمله یا Attack میباشد، در صورتی که در حمله DDoS، حملات به صورت توزیع شده و در مقیاس بزرگتری با استفاده از هزاران دستگاه متصل برای احقاق هدف انجام میشود و به طبعِ تعدد دستگاههای شرکتکننده در حمله، مقابله با این نوع حملات دشوارتر است. تفاوت این دو حمله را میتوان به طور واضح در شکل زیر مشاهده کرد.
این تصویر بیانگر تفاوت میان مفاهیم حملاتDDoS و DoS است. تفاوت این حملات در تعداد سیستمهای مشارکتکننده در حمله است به گونهای که در حملات DoS یک سیستم و در حملات DDoS چندین سیستم در حمله شرکت میکنند.
نحوه عملکرد یک حمله DDoS
مهاجمان برای یک حمله DDoS نیاز به بات نت ها (Botnet) دارند، در واقع رکن اصلی این حملات بات نت ها هستند. واژه بات نت (Botnet) از ترکیب کلملات Robot و Network ایجاد شده است. بات نت به گروهی از رایانهها اطلاق میشود که توسط یک بدافزار آلوده، و تحت کنترل یک عامل مخرب قرار گرفتهاند. به هر یک از دستگاه های موجود در بات نت یک Robot، یا Zombie گفته میشود. پس از شکلگیری بات نت ها مهاجم با ارسال دستورالعملهایی به بات ها موجب میشود که سرور و یا شبکه مورد هدف برای کاربران غیرقابل دسترس یا غیرمفید شود به این صورت که هر یک از بات های موجود در بات نت IP مورد هدف را با درخواستهای متعدد خود تحتالشعاع قرار داده، ترافیک شدیدی برای سرور یا شبکه ایجاد میکنند و در نتیجه پاسخ به ترافیک کاربران مجاز برای سرور ناممکن میشود.
دسته بندی حملات DDoS
حملات DDoS مختلف بر اساس لایه شبکه مورد هدف به سه دسته تقسیم میشوند.
حملات لایه کاربرد (Application Layer Attacks)
حملات لایه کاربردی لایهای را در مدل OSI هدف قرار میدهند که در آن صفحات وب روی سرور تولید شده و در پاسخ به درخواست های HTTP ارسال میشوند و هدف این حملات اختلال در ترافیک عادی یک وب سایت یا سرویس میباشد.
اثربخشی این دسته از حملات دی داس به دلیل اختلاف تعداد منابع مصرفی در سرور برای پاسخگویی به درخواستهای کاربران و منابع مورد نیاز در سمت کاربران است. در واقع حملات لایه کاربردی موجب آسیب بیشتر با پهنای باند کل کمتر میشوند. چرا و چگونه؟ برای پاسخ به این سوال ابتدا باید نگاهی به تفاوت میزان منابع مصرفی سمت مشتری(Client) و سرور پاسخگو به درخواست های مشتری داشتهباشیم. به طور مثال هنگامی که کاربر درخواستی برای ورود به یک حساب کاربری آنلاین مثل Gmail را ارسال میکند، تعداد منابعی که در سیسستم کاربر تخصیص داده میشوند نسبت به تعداد منابعی که در سمت سرور به جهت بررسی فرآیند اعتبارسنجی ورود به سیستم، بارگذاری داده های مربوطه از پایگاه داده (Database) و در نهایت ارسال پاسخ حاوی صفحه وب درخواستی رزرو میشوند، بسیار کمتر است بنابراین مهاجم با تعداد منابع کمتری میتواند باعث اخلال در فرآیند سرویس دهی به کاربران توسط سرور شود.
حملات پروتکلی (Protocol Attacks)
هدف حملات پروتکلی تخلیه منابع سرور و یا شبکه مانند فایروال ها (Firewalls)، موتور های مسیریابی (Routing engines) و متعادل کننده های بار(Load balancers) است. این دسته از حملات دی داس از نقاط ضعف لایههای 3 و 4 در معماری OSI برای غیرقابل دسترس کردن هدف استفاده میکنند.
حملات حجمی (Volumetric Attacks)
این نوع از حملات دی داس با هدف قرار دادن لایه انتقال(Transport layer) یا لایه شبکه (Network layer) سعی میکنند تا پهنای باند در داخل شبکه/سرویس هدف یا بین شبکه/سرویس هدف و باقی اینترنت را مصرف کرده و در نتیجه اشغال پهنای باند توسط بستههای داده، شبکه منابع موجود برای تایید سایر درخواستهای قانونی را نداشته که به معنی اختلال و شکست در سرویس دهی به کاربرانی است که سعی در اتصال به این شبکه را دارند.
برخی از انواع رایج حملات DDoS
HTTP Flood Attack
حملات سیل HTTP یا همان HTTP Flood Attacks یکی از انواع رایج حملات لایه کاربردی بوده و مشابه بهروزرسانی یک وب سایت بارها و بارها در عین واحد از سمت سیستمهای مختلف است. در این صورت تعداد زیادی از درخواست های Http به سمت سرور سرازیر شده و هنگامی که سرور از درخواستهای جعلی ایجاد شده اشباع شده و در پاسخگویی به ترافیک کاربران مجاز ناتوان شود، حمله منع از سرویس سیل Http صورت گرفته است.
SYN Flood Attack
حمله SYN Flood یا سیل SYN که در دسته حملات پروتکلی قرار میگیرد از یک ضعف در فرآیند دست دادن TCP/IP (TCP/IP Handshaking) یا همان (TCP 3-Way Handshaking) استفاده میکند. برای درک بهتر چگونگی یک حمله دی داس سیل SYN، ابتدا باید به بررسی نحوه اتصال یک ارتباط TCP بپردازیم. برای برقراری یک اتصال TCP، طبق فرآیندی بنام 3-Way Handshaking مشتری و سرویس دهنده باید اطلاعات کنترلی لایه انتقال (Transport Layer) را مبادله و پارامترهای انتقال داده را تعیین کنند. این فرآیند که شامل سه مرحله است، ابتدا با ارسال یک بسته SYN (SYN Packet) توسط کلاینت به جهت برقراری اتصال TCP در مرحله اول آغاز میشود. سپس سرویس دهنده در مرحله دوم با ارسال بسته SYN/ACK، برقراری اتصال را تایید کرده و در نهایت مشتری یا کلاینت نیز با ارسال یک بسته ACK در تایید بسته ارسالی سرویس دهنده در مرحله سوم برقراری اتصال را تایید میکند.
پس از تکمیل این ترتیب ارسال و دریافت بستهها، اتصال TCP برقرار شده و قادر به ارسال و دریافت داده میباشد. حال با توجه به روند برقراری یک ارتباط TCP، میتوان دریافت که در یک حمله سیل SYN، مهاجم حجم بالایی از بسته های SYN که اغلب از IP آدرس های جعلی میباشد به سمت سرور ارسال کرده و به طبع سرور نیز برای پاسخ به هریک از این درخواست ها یک پورت (Port) باز در نظرمیگیرد. درحالیکه سرور در انتظار بسته نهایی ACK ارسالی توسط مشتری ذکر شده در مرحله سوم فرآیند 3 Way Handshaking است که هرگز نخواهد رسید، فرستنده درخواست های SYN بیشتری به سمت سرور ارسال کرده و با ورود هر بسته SYN جدید سرور به طور موقت یک پورت جدید را به آن اختصاص دهد و با ادامه این روند در انتها با اشباع تمامی پورت ها توسط بسته های SYN جعلی، سرور دیگر قادر به پاسخگویی به درخواستهای کاربران نخواهد بود.
DNS Amplification Attack
مثال بعدی از انواع حملات DDoS، حمله DNS Amplification یا حمله تقویت DNS بوده که از مثالهای بارز حملات حجمی میباشد. در این نوع حمله که مبتنی بر خاصیت بازتاب درخواستهای DNS و افزایش ترافیک DNS بر روی سیستم قربانی است، مهاجم با ارسال درخواست های جستجو نام DNS (DNS Name Look Up) به سرورهای DNS باز در دسترس عموم با استفاده از IP جعلی که همان آدرس IP قربانی میباشد، موجب هدایت ترافیک پاسخ DNS Serverها به سمت هدف میشود. بدین ترتیب با استفاده از یک بات نت برای تولید حجم زیادی از کوئریهای DNS جعلی و با توجه به بزرگ بودن حجم پاسخهای سرورهای DNS در مقابل حجم درخواست اولیه، یک مهاجم میتواند ترافیک عظیمی را برای یک سیستم هدف ایجاد کرده و سیستم قربانی از ارائه سرویس منع گردد.
برخی از ابزار های مورد استفاده در حمله DDoS
Low Orbit Ion Cannon (LOIC)
Low Orbit Ion Cannon که به اختصارLOIC نام دارد یک ابزار کاربر پسند (User Friendly) بوده که در ابتدا توسط Praetox Technology به عنوان یک برنامه برای تست پایداری و زیرساخت های شبکه با زبان #C توسعه داده شده بود اما در حال حاضر به صورت متن باز (Open Source)اوپن سورس یا متن باز چیست؟ اوپن سورس به چه معناست؟اوپن سورس یا متن باز چیست؟ این صفحه عالی به بررسی این موارد و همچنین تاریخچه نرم افزار متن باز و نحوه به کارگیری متن باز در توسعه نرم افزار پرداخته است در اختیار کاربران قرار گرفته شده است. کاربران امروزه حتی قادر به استفاده از نسخه جاوا این ابزار با نام JS LOIC و یا نسخه وب آن با نام Low Orbit Web Cannon میباشند.
High Orbit Ion Cannon (HOIC)
High Orbit Ion Cannon (HOIC) که توسعه یافته LOIC توسط گروه هکری Anonymous است، با یک رابط کاربری ساده که به صورت منبع باز در اختیار کاربران قرارگرفته است، با استفاده از ترافیک HTTP برای حملات انکار از سرویس (DoS) و انکار از سرویس توزیع شده (DDoS)، استفاده میشود. HOIC برای بهبود برخی از نواقص در LOIC توسعه یافت. نواقصی مانند :
- در LOIC مهاجمان قادر به مخفی کردن آدرس IP خود نبودند که این نقص در HOIC برطرفشده و به مهاجمان اجازهمیدهد ترافیک حمله را پراکنده کرده و موقعیت جغرافیایی خود را پنهانکنند.
- در این نسخه توسعهیافته (HOIC) ، برخلاف نسخه قبلی (LOIC) که برای یک حملهDDoS موفق به هماهنگی هزاران کاربر نیاز بود، تنها با 50 عامل میتوان یک حمله DDoS موفق داشت.
R U Dead Yet? (R.U.D.Y.) attack
R.U.D.Y یک ابزار حمله آهسته است که ترافیک قانونی را تقلید کرده و می تواند سرور را برای مدت نامحدودی متصل نگه دارد. برای پاسخ به چگونگی عملکرد این ابزار و علت نامگذاری آن به حمله آهسته ابتدا باید با روند ارسال یک فرم از سمت کاربر آشنا شویم. هنگامی که کاربران عادی اطلاعات فرم را کامل کرده و اقدام به ارسال فرم میکنند، اطلاعات این فرم در قالب یک بسته (Packet)، با استفاده از درخواست های HTTP POST به وب سرور ارسال شده و سپس سرور ارتباط (Connection) بین خود و کلاینت را قطع میکند بنابراین سرور پس از آن آماده پاسخگویی به درخواستهای دیگر میباشد.
حال در حمله R.U.D.Y مهاجم با جستجو در سیستم هدف، به محض یافتن یک فرم درخواست HTTP POST با هدر همان فرم را برای سرور ارسال خواهد کرد با این تفاوت که اطلاعات جعلی را به تعداد زیادی بستههای کوچک با اندازه 1 بایت (1 Byte) شکسته و در فواصل زمانی تصادفی ارسال میکند. با این کار مهاجم از بسته شدن این ارتباط توسط سرور جلوگیری کرده و سرور را مجبور به انتظار تا اتمام درخواست میکند بنابراین سرور از دسترس کاربران عادی خارج میشود. علت نامگذاری این ابزار به یک ابزار حمله آهسته این است که در این حمله سرور به جای این که با حجم بالایی از درخواستهای سریع تحت تأثیر قرار گرفته و از سرویس دهی منع شود، بر پاسخگویی به چند درخواست طولانی تمرکز دارد.
چگونگی تشخیص حملات DDoS
شناسایی هرچه سریعتر یک حمله DDoS به منظور کاهش اثرات آن ضروری میباشد. حال شما چگونه متوجه میشوید که یک حمله دی داس در حال وقوع میباشد؟
دشوارترین قسمت در مورد حملات دی داس تشخیص آنها میباشد، زیرا هیچ هشداری برای حملات DDoS وجود ندارد. بارزترین علامت حملات DDoS این است که سایت یا سرویسی ناگهان کند شود یا از دسترس خارج شود. اما از آن جایی که بسیاری از دلایل دیگر نیز عملکردی مشابه داشته و ممکن است باعث کند شدن سایت یا سرویس گردند معمولاً شناسایی این حملات به بررسیهای بیشتری نیاز دارد. با این حال سرنخ هایی وجود دارند که میتوان آنها را هشداری برای یک حمله DDoS در نظر گرفت. سرنخ هایی مانند:
- مقادیر مشکوکی از ترافیک از یک آدرسIP یا یک محدوده آدرسIP.
- سیل ترافیک از سمت کاربرانی که یک پروفایل رفتاری مشترکی دارند مانند نوع دستگاه، موقعیت جغرافیایی و یا نسخه مرورگر وب یکسان.
- الگوهای ترافیکی غیرعادی مانند افزایش ترافیک در ساعات مشخص یا هر 10 دقیقه یکبار.
علائم خاص دیگری از حمله DDoS وجود دارد که بسته به نوع حمله میتواند متفاوت باشد.
روش های مقابله با حمله DDoS
چالش اصلی در کاهش حملات دی داس تمایز بین ترافیک عادی و ترافیک حمله میباشد. حملات DDoS امروزه به شکلهای گوناگونی وجود دارند از حملات تک منبعی گرفته تا حملات چند برداری پیچیده که لایههای مختلفی از پشته پروتکل را به طور همزمان هدف قرارمیدهند. یک حمله چند برداری (Multi-Vector DDoS Attack) از مسیرهای متعددی استفاده میکند تا به هدف غلبه کند مانند یک حمله چند برداری که از DNS Amplification Attack در لایه هدف 3 و4 و ازHTTP Flood Attack در لایه هدف 7 برای حمله استفاده میکند. هرچه حمله پیچیدهتر باشد تشخیص ترافیک حمله و ترافیک عادی در آن سختتر میباشد.
در ادامه به فهرستی از راه های پیشگیری از حملات DDoS اشاره خواهیم کرد.
Blackhole routing
Blackhole Routing به شکلی از دفاع گفته میشود که در آن مدیر شبکه یک مسیری را به عنوان سیاه چاله در نظرگرفته و در حالت عادی بدون اعمال محدودیت و معیاری تمام ترافیک شبکه اعم از ترافیک مخرب و قانونی به این مسیر هدایتشده و در نهایت از شبکه حذف میشوند. در شبکهسازی، سیاهچاله به مکانی در شبکه اطلاق میشود که در آن ترافیک ورودی یا خروجی بدون اینکه به منبع اطلاع داده شود که دادهها به گیرنده مورد نظر خود نرسیده است، حذف میشود.
Rate Limiting
راهی دیگر برای کاهش حملات DDoS محدود کردن تعداد درخواستهایی است که سرور میتواند در یک بازه زمانی خاص بپذیرد. این به تنهایی به طور کلی برای مبارزه با یک حمله چند برداری پیچیده کافی نیست، اما ممکن است به عنوان بخشی از یک رویکرد چندجانبه مفید واقع شود.
Web Application Firewall (WAF)
WAF یا فایروال برنامه وب، یک سیستم امنیتی است که با استفاده از مجموعه ای از قوانین، ترافیک HTTP بین برنامه وب و اینترنت را فیلتر میکند. به عنوان مثال این فایروال ها را میتوان به مثابه یک عوارضی در ورودی یک شهر در نظر گرفت که فقط اجازه ورود به ماشین هایی را میدهند که هزینه عوارض را پرداخت کردهاند. با قرار دادن یک WAF بین اینترنت و سرور مبدا و فیلتر ترافیک HTTP بر اساس قوانین مورد استفاده در شناسایی حملات DDoS میتوان از سرور در برابر ترافیک های مخرب محافظت کرد.
جمعبندی
با توجه به رشد روزافزون اهمیت تهدیدات سایبری در این مقاله سعیکردهایم به معرفی یکی از رایجترین حملات در حوزه حملات سایبری یعنی حمله DDoS، انواع و برخی از روش های مقابله با آن بپردازیم.
حمله DDoS چیست؟
حمله DDoS به گونهای از حملات منع از سرویس اطلاق میشود که هدف آن غرق کردن یک سرور یا شبکه با ترافیک ساختگی به منظور اخلال در عملکرد عادی آن میباشد.
تفاوت حملات DoS و DDoS چیست؟
هدف هر دو حمله اخلال در سرویس دهی توسط سیستم قربانی میباشد با این تفاوت که حملات DDoS از چندین منبع سرچشمه گرفته اما مسئول حملات DoS یک سیستم میباشد فلذا شناسایی و مقابله با حملات DDoS دشوارتر است.