امروزه مقوله امنیت و شاخه های آن در فضای وب به امری حیاتی و همه گیر
تبدیل شده است، مخصوصا برای صاحبان سایت ها و مهم تر از آن برای مدیران
سرورهای وب، چرا که آسیب پذیری و ضعف امنیتی به عنوان عاملی بازدارنده در
مسیر پیشرفت و توسعه اهدافشان در وب است، بعضا شاهد هستیم که افراد مختلف
با انگیزه های متفاوت اقدام به هک و ایجاد اختلال در سایت ها و سرورها و در
نتیجه باعث از دسترس خارج شدن و یا در حالتی پیشرفته تر از کنترل خارج شدن
آنها می شوند، این افراد برای رسیدن به مقاصدشان از شیوه های متفاوتی
استفاده می کنند که البته بسته به میزان هوشمندی مدیران سرور و رعایت نکات
امنیتی در سیستم های مدیریت محتوا، خیلی از این روش ها به راحتی قابل
پیشگیری است؛ اما آنچه در این مطلب قصد داریم به آن بپردازیم، آشنا کردن
شما با نوعی از ایجاد اختلال در وب موسوم به حمله های DDOS یا distributed
denial of service attack است که بیشترین شیوع را دارد.
حمله DDOS چیست؟
حمله
ddos یا dos مخفف (denial of service attack) به زبان ساده یعنی سرازیر
کردن تقاضاهای زیاد به یک سرور (کامپیوتر قربانی یا هدف) و استفاده بیش از
حد از منابع (پردازنده، پایگاه داده، پهنای باند، حافظه و...) به طوری که
سرویس دهی عادی آن به کاربرانش دچار اختلال شده یا از دسترس خارج شود (به
دلیل حجم بالای پردازش یا به اصطلاح overload شدن عملیات های سرور)، در این
نوع حمله ها در یک لحظه یا در طی یک زمان به صورت مداوم از طریق
کامپیوترهای مختلف که ممکن است خواسته یا حتی ناخواسته مورد استفاده قرار
گرفته باشند، به یک سرور (با آی پی مشخص) درخواست دریافت اطلاعات می شود و
به دلیل محدود بودن قدرت پردازش سرور به کاربران در وضعیت عادی (یعنی قدرت
سرور را به تعداد کاربرانش در حالت عادی در نظر گرفته اند نه حالت غیر
طبیعی)، مثل حالاتی که کامپیوترهای رومیزی دچار کندی یا توقف کامل می شوند،
دچار وقفه در سرویس دهی یا حتی down شدن آن می شود.
چه کسانی حمله 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 از چه روش هایی استفاده می شود؟
چند روش به عنوان شایع ترین ها در این نوع حملات استفاده می شود، که در زیر به آنها به طور مختصر و جهت آشنایی اشاره می کنیم:
- روش Ping Flood یا طوفان درخواست ها
در
این شیوه مهاجم سعی می کند با ارسال درخواست ها (یا بسته های ping) به سمت
کامپیوتر هدف (قربانی)، و با تکرار این عمل، کل منابع سرور را اشغال کند
تا در نهایت آن را به طور کامل از کار بیندازد، در این شیوه معمولا از
کامپیوترهای موجود در یک شبکه یا از سرورهایی به طور همزمان درخواست به سمت
سرور قربانی ارسال می شود تا در نهایت موجب از کار افتادن آن شود.
- روش Smurf attack یا استفاده از نقص تنظیمات
یک
Smurf attack نوع خاصی از طوفان درخواستها به یک سرور است که طی آن به
دلیل وجود ضعف در تنظیمات سرویس، اجازه ارسال بسته هایی از اطلاعات به تمام
کامپیوتر های موجود در یک شبکه در عوض ارسال آن به یک کامپیوتر خاص از
طریق آدرس Broadcast آنها است، آدرس Broadcast می تواند به عنوان مثال آی
پی اشتراکی سایت های موجود در یک سرور باشد؛ در این حالت اگر تنظیمات سرور
به درستی انجام نشده باشد، ارسال یک درخواست به این آی پی، موجب تقسیم شدن
آن بین تمام زیر شاخه ها و در نتیجه overload شدن سرور می شود.
- حملات موسوم به SYN یا SYN flood
روش
اخیر نیز در عمل مشابه با موارد گفته شده است، با این تفاوت که در اینجا
مهاجم با ارسال درخواستهایی از نوع بسته های TCP/SYN در پشت چهره ای عادی و
تایید شده به عنوان یک کاربر معمولی، از سرور تقاضای اتصال می کند که پس
از ارسال پاسخ درخواست، هیچ جوابی به پاسخ سرور داده نمی شود تا اتصال نیمه
باز همچنان برقرار باشد (سرور در انتظار پاسخ مهاجم مدتی صبر می کند)، در
این بین با افزایش این اتصالات نیمه باز، منابع سرور اشغال شده و نهایتا
موجب بروز اختلال و از کار افتادن آن می شود.
- روش Teardrop یا Teardrop attacks
در
این شیوه رشته ای از آی پی های ناقص به هم متصل شده و شبیه به هم را به
سرور ارسال می کنند که اگر تنظیمات قسمت TCP/IP fragmentation re-assembly
سرور دچار نقص در تشخیص آنها باشد، موجب بروز مشکل اضافه بار یا overload
در سرور خواهد شد.
![ddos-attack-to-server ddos-attack-to-server](http://webgoo.ir/example/other/ddos-attack-to-server.jpg)
حمله ddos چقدر طول می کشد؟
یکی
از سوال های همیشگی در چنین موقعیت هایی این است که یک حمله ddos چقدر طول
می کشد و ظرف چه مدتی به پایان می رسد، پاسخ این سوال نیز می تواند یک
جمله باشد: تا زمانی که به پایان رسد! این موضع بستگی به میزان سماجت مهاجم
و ضعف مدافع دارد، یعنی اگر مهاجم بر ادامه حملات خود اصرار داشته باشد و
در مقابل مدافع که همان مدیران سرور هستند نتوانند از عهده کنترل اوضاع بر
آیند، ممکن است حمله ddos ساعت ها یا روزها به طول انجامد، در خوش بینانه
ترین حالت ظرف چند دقیقه و در بدترین حالت چندین و چند روز و به دفعات ممکن
است طول بکشد.
برای جلوگیری از حمله ddos چه کارهایی را انجام دهیم؟
واقعیت
این است که کنترل حمله های ddos پس از وقوع کمی دشوارتر از پیشگیری از آن
است، امروزه در سایتها و انجمن های زیادی به افراد آموزش شیوه های هک و
ایجاد حمله های ddos داده می شود که این امر با افزایش شمار کاربران
اینترنت (که می توانند میانجی و قربانی بالقوه برای حمله به سرورها باشند)
رو به گسترش است، البته آسیب پذیری در این رابطه، بیشتر به امنیت سرور برمی
گردد تا به امنیت سایت شما، در مورد سرور می توان پس از اطمینان از حمله
ddos، آی پی هایی را که بیشترین تقاضا را به سرور داشته اند و ناشناس
هستند، توسط فایروال ها بلاک و مسدود کرد، یا با نصب بسته های امنیتی خاص و
به روزرسانی و ارتقا سخت افزاری و نرم افزاری، آسیب پذیری سرور را کاهش
داد، آگاهی از روند عادی سرور نیز می تواند کمک بزرگی در این خصوص محسوب
شود، چرا که اگر مدیر سرور نسبت به عادی یا غیر عادی بودن ترافیک آن،
آشنایی داشته باشد، به سرعت می تواند پی به وجود این نوع حمله ها ببرد و در
جهت رفع آن برآید، به عنوان یک کاربر در سرویس های میزبانی وب، بهترین کار
این است که به محض مشکوک بودن به چنین حمله هایی، موضوع را به هاست خود
اطلاع دهید تا در کوتاه ترین زمان جلوی آن گرفته شود.