حمله DDOS یا distributed denial of service چیست و چگونه از آن جلوگیری کنیم؟

 

تعریف حملات DDos:

حمله  دیداس – به انگلیسی  DDoS مخفف (distributed denial of service) به زبان ساده یعنی سرازیر کردن تقاضاهای زیاد به یک سرور و استفاده بیش از حد از منابع (پردازنده، پایگاه داده، پهنای باند، حافظه و…) به طوری که سرویس دهی عادی آن به کاربرانش دچار اختلال شده یا از دسترس خارج شود. (به دلیل حجم بالای پردازش یا به اصطلاح overload شدن عملیات های سرور)، در این نوع حمله ها در یک لحظه یا در طی یک زمان به صورت مداوم از طریق کامپیوترهای مختلف که ممکن است خواسته یا حتی ناخواسته مورد استفاده قرار گرفته باشند، به یک سرور (با آی پی مشخص) درخواست دریافت اطلاعات ارسال  می شود و موجب از دسترس خارج شدن سرور یا به اصطلاح  Down شدن سرور می شود.

 

طبقه بندی حملات DDoS

 این شیوه هک به ۵ نوع مهم و کلی دسته بندی می شوند. البته ممکن است شیوه های دسته بندی دیگری هم به صورت جزئی تر و یا با تعداد بیشتری برای حملات دیداس در مقالات راهنما استفاده شوند.

Buffer Overflow Attack

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

Ping of Death Attack

در تمامی قرن بیستم این شیوه یکی از مشهورترین حملات DoS بود. اما امروزه به طور کلی بلوکه شده و جلوی آن گرفته شده است. حمله کننده به عمد یک پاکت یا بسته IP بزرگتر از ۶۵۵۳۶ بایت را که توسط پروتکل IP مجاز شناخته می شود ارسال می کرد. در این پروتکل  فایل در مبدا به بسته های اطلاعاتی خرد شده و پس از ارسال به کامپیوتر مقصد، بسته های اطلاعاتی در مقصد سر هم شده و بر روی کامپیوتر مقصد فایل دوباره ساخته می شود. اما سیستم عامل مقصد از عهده سر هم کردن پاکت های اطلاعاتی با اندازه بزرگتر از استاندارد که حمله کننده به صورت عمدی ساخته و ارسال کرده بود، بر نمی آمد و قفل می کرد، ری استارت می شد یا حتی به راحتی کرش می کرد.

Smurf Attack

این حمله شیوه ای برای ایجاد یک ترافیک معنی دار و آزار دهنده بر روی شبکه کامپیوتری قربانی است. در این شیوه حمله کننده سیستم قربانی را با ارسال پیام های Ping قلابی غرق می کند.

در این روش، جانی تعداد بسیار زیادی ترافیک ICMP echo یا همان پینگ تولید می کند و آنها را از منابع ناشناس و قلابی به سمت هاست قربانی ارسال می کند. نتیجه هم تعداد فراوانی پاسخ پینگ است که باعث نابودی سیستم قربانی می شود.

Tear Drop

این حمله شامل ارسال قطعات پاکت های اطلاعاتی  روی هم افتاده ای است که بزرگ تر از اندازه معمول هستند اما کاملا انباشته نشده اند. این بسته های ناقص الخلقه در سیستم عامل های مختلف به دلیل باگ های موجود در کد های دوباره سازی بسته های اطلاعاتی مرتبط با پروتکل TCP/IP، باعث کرش کردن سیستم می شوند.

SYN Attack

حمله کننده درخواست های TCP SYN جعلی برای سرور قربانی ارسال می کند. سرور تمامی منابع را به کار می گیرد تا درخواست های دریافتی پاسخ دهد. اما مشکل اینجا است که درخواست دهنده ها قلابی هستند! هر پاسخ تا تایید توسط درخواست دهنده به صورت یک اتصال نیمه باز بر روی سرور باقی می ماند. سرور در پاسخ یک بسته TCP/SYN-ACK برای درخواست دهنده ارسال می کند و منتظر پاسخ از آدرس فرستنده می ماند. به هر حال به دلیل عدم وجود فرستنده واقعی، هیچ گاه پاسخی برنمی گردد. و کم کم اتصالات نیمه باز تمام اتصالات ممکن سرور را می مکند و اشباع می کنند. پس سرور از پاسخ گویی به دیگر کاربران معمول خود باز می ماند.

 

حملات DrDoS

حملات DrDoS که مخفف عبارت Distributed Reflection Denial of Service و به معنی حملات انسداد سرویس توزیع‌شده‌ی بازتابی می باشد و هدف از این حمله از کار انداختن سیستم های متصل به یک شبکه و یا حتی خود آن شبکه می باشد!

 

حملات DrDoS چیست؟

حملات DrDoS که مخفف عبارت Distributed Reflection Denial of Service و به معنی حملات انسداد سرویس توزیع‌شده‌ی بازتابی می باشد و هدف از این حمله از کار انداختن سیستم های متصل به یک شبکه و یا حتی خود آن شبکه می باشد!

یکی از ویژگی های حملات زیرشاخه های DDoS این است که بعد از گذشت یک دوره زمانی قدرت خود را از دست می دهند و راه های جلوگیری از آن گسترش می یابد.هرچند شاید در بعضی موارد کارآمد باشند اما قدرت و توان قبلی خود را نخواهند داشت.اما برخی متخصصان معتقد هستند که حملات DrDoS حدود ۱۰ سال پیش آغاز شده و یکی از قدیمی ترین حملات انسداد سرویس محسوب می شوند ولی با این حال نه تنها هیچ نشانه ای از منسوخ شدن آن مشاهده نمی شود بلکه در سال های اخیر گسترش چشمگیری داشته و جالب تر اینکه بزرگترین حمله اینترنتی قرن با این متود رخ داده، وب سایت شرکت Spamhaus که در زمینه  ضد اسپم فعالیت می کند مورد حمله ی سنگین DrDoS قرار گرفت که حجم آن حدود ۳۰۰GBps تخمین زده شد! این حمله باعث کندی سرعت اینترنت در بخش هایی از اروپا و آمریکای شمالی شد, انجام چنین حمله ای نیازمند منابع قابل توجهی می باشد!

 دو مشخصه اصلی این متود بازتاب و تقویت قدرت می باشد.

بازتاب

مشخصه بازتاب این حمله به این صورت است که  اتکر ( کسی که حمله را انجام می دهد) درخواست های جعلی به یک سرویس دهنده ارسال می کند و در این درخواست از IP جعلی استفاده می نماید که IP هدف می باشد، بنابراین سرویس دهنده پاسخ درخواست را به IP هدف ارسال می کند چرا که فکر می کند درخواست از این IP صورت گرفته.ارسال پاسخ از سرویس دهنده به  IP هدف ترافیکی را به وجود می آورد، و از آنجایی که اتکر برای انجام این حمله نه از یک سرویس دهنده, بلکه از صدها و یا هزاران سرویس دهنده استفاده می نماید حجم این ترافیک به قدر قابل توجهی افزایش خواهد یافت و این ترافیک باعث کند شدن و در نهایت اختلال و قطعی کامل یک شبکه خواهد شد.
هر سرویس دهنده ای که در حال ارائه سرویس بر پایه پروتکل UDP باشد به صورت بالقوه یک بازتاب دهنده می باشد!
Spoofing که به معنای حقه بازی یا جعل است اصول اولیه و مهم در یک حمله باتابی می باشد. حمله ای با پاسخی بدون درخواست از IP هدف.

تقویت قدرت

دومین مشخصه حملات بازتابی DrDoS قدرت قابل توجه آن می باشد، تعداد بایت های پاسخ ارسالی از سرویس دهنده به IP بیشتر از بایتهای ارسال درخواست به سرویس دهنده می باشد، بنابراین ارسال یک درخواست DNS کوچک (۶۰ بایت) می تواند پاسخی به بزرگی ۳۰۰۰ بایت داشته باشد.

به عبارت دیگر این یک حمله تقویت شده است ! تقویت قدرت (اندازه پاسخ نسبت به اندازه درخواست) چیزی است که باعث میشود این حمله خطرناکترین حملات از نوع DDoS به حساب بیایید!
ایجاد حملات در اندازه ۱۰۰MBps با استفاده از چندین سرویس دهنده بر پایه UDP کار دشواری نیست و به راحتی می توان آن را انجام داد ولی این حمله برای بسیاری از شبکه ها و سرور هایی که دارای فایروال نباشند بسیار خطرناک خواهد بود.زمانی که اتکر قصد انجام حمله بزرگتری را داشته باشد ممکن است با افزایش تعداد سرویس دهنده ها حملات را حتی به گیگابیت در ثانیه برسانند!

یکی از پرطرفدار ترین سرویس دهنده هایی که نقش بازتاب را در حملات DrDoS بازی می کنند DNS servers ها می باشند و اتکر ها همیشه در حال جستجو برای DNS Server هایی می باشند که بتواند با IP جعلی از پاسخ آنها برای از کار انداخت هدف استفاده نمایند.

سرویس های SNMP نیز یکی دیگر از بازتاب دهنده های حملات DrDoS می باشد چرا که میزبان و دستگاه های متصل به شبکه می توانند با یک درخواست کوچک بازتاب گسترده و بزرگی را به سمت IP هدف داشته باشند.
SNMP پروتکل لایه Application است که امکان نقل و انتقال اطلاعات مدیریتی را بین عناصر شبکه ایجاد می کند و در واقع قسمتی از پروتکل TCP/IP می باشد. این پروتکل توانایی مدیریت و پیدا کردن مشکلات و حل آنها را در شبکه برای مدیران مهیا می کند.

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

 

 

چه کسانی حمله ddos را انجام می دهند؟

اصولا حمله های ddos با انگیزه های متفاوت ممکن است توسط یک یا چند نفر و یا حتی گروهی از افراد صورت گیرد، اما آماری که تا به امروز به ثبت رسیده، حکایت از انگیزه های بیشتر فردی یا چند نفره داشته است، به طور مثال ممکن است افرادی برای از سر راه برداشتن ناجوانمردانه رقیبشان در وب، دست به این نوع اعمال بزنند تا مخاطبان آن سایت یا سرور دچار دلسردی شده و از آن فاصله بگیرند یا برعکس عده ای هکر، خیرخواهانه به سایتی ضد اجتماعی یا به فرض جنگ طلب حمله ddos کنند، لذا گستره افراد و انگیزه ها، بسته به نوع مورد، متفاوت خواهد بود، اما آنچه مسلم است معمولا انسان ها پشت این حملات هستند یا ترکیبی از اندیشه انسان و به کارگیری سیستم، سرور و ابزارهای خاص (DDOS tools) دست به دست هم می دهند تا یک حمله ddos شکل بگیرد.

علائم حمله ddos چیست؟

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

- کندی در پاسخگویی به درخواست ها
سروری که مود حمله قرار گرفته باشد، معمولا خیلی کند و با وقفه به درخواست بارگذاری صفحات پاسخ می دهد، البته این نشانه همیشه دلیل حمله ddos نیست، چرا که این اتفاق به طور طبیعی نیز برای سرورها و سایتهای با بازدید بالا ممکن است رخ دهد یا کنترل این امر بستگی زیادی به قدرت سخت افزاری سرور و تنظیمات آن دارد.

- عدم اتصال به پایگاه داده
گاهی ممکن است صفحات استاتیک که نیازی به اتصال پایگاه داده ندارند به راحتی بارگذاری شوند، ولی اتصال به پایگاه داده برای صفحات داینامیک برقرار نشود، در چنین مواقعی معمولا پیام تکمیل ظرفیت اتصال به پایگاه داده یا too many connection  ظاهر خواهد شد، بهترین کار در چنین حالتی این است که با تنظیم یک دستور هِدر 500 HTTP، به ربات های جستجوگر بگوییم که سایت ما فعلا دچار مشکلی است و بعدا مراجعه نمائید!، چرا که در غیر اینصورت با وجود down بودن دیتابیس سرور، ربات ها با دریافت وضعیت HTTP 200، صفحه خالی را ایندکس می کنند که این حالت اصلا مناسب نیست، در php این کار را با دستورات header می توان انجام داد.
header('HTTP/1.0 500 Internal Server Error');
- مصرف بیش از حد منابع سرور
یکی دیگر از نشانه های حمله ddos می تواند مصرف بیش از حد و غیر طبیعی منابع سرور مثل حافظه و یا پهنای باند در یک بازه زمانی کوتاه باشد.
- افزایش انفجاری درخواست ها
یکی دیگر از نشانه های حمله ddos، وجود شمار زیادی درخواست http به سرور است که با مشاهده فایل log و قسمت آمار، می توان به این موضوع پی برد.

- اختلالات در سرویس های جانبی نظیر ایمیل
گاهی مواقع حملات ddos سرویس های جانبی یک سرور نظیر سرویس ایمیل را هدف می گیرند، در این مواقع ارسال و دریافت ایمیل ممکن است به کندی صورت گیرد یا دچار وقفه شود، البته همانطور که گفتیم، هر وقفه و اختلالی به معنی حمله ddos نیست، تنها به عنوان یک نشانه می توان آن را محسوب کرد.

حمله ddos چقدر طول می کشد؟

یکی از سوال های همیشگی در چنین موقعیت هایی این است که یک حمله ddos چقدر طول می کشد و ظرف چه مدتی به پایان می رسد، پاسخ این سوال نیز می تواند یک جمله باشد: تا زمانی که به پایان رسد! این موضع بستگی به میزان سماجت مهاجم و ضعف مدافع دارد، یعنی اگر مهاجم بر ادامه حملات خود اصرار داشته باشد و در مقابل مدافع که همان مدیران سرور هستند نتوانند از عهده کنترل اوضاع بر آیند، ممکن است حمله ddos ساعت ها یا روزها به طول انجامد، در خوش بینانه ترین حالت ظرف چند دقیقه و در بدترین حالت چندین و چند روز و به دفعات ممکن است طول بکشد.

 

برای جلوگیری از حمله ddos چه کارهایی را انجام دهیم؟

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