حملات منع سرویس (DOS) و حملات توزیعشده منع سرویس (DDOS) حملات بیرحمانهای هستند. اینگونه از حملات محدودیتهای وب سرور، برنامه کاربردی و وبسایت شما را با ارسال انبوهی از درخواستهای جعلی مورد آزمایش قرار میدهد. نحوه انجام این نوع حمله، فرایند پیدا کردن مبدأ اصلی آن را تبدیل به یک معمای پیچیده میکند.
برای کاربران نهایی وبسایت تفاوتی بیت هک شدن وبسایت شما و یا از دسترس خارج شدن آن توسط حمله DDOS وجود نخواهد داشت.
حملات توزیعشده منع سرویس روزبهروز ارزانتر، پیچیدهتر و دسترسی به آنها راحتتر میشود. درنتیجه تبدیل به ابزاری برای جنگ و مقاصد سیاسی شدهاند. مهاجمان ممکن است از مالکان وبسایت درخواست پول کنند و به یا طور موقت وبسایت را با فرستادن درخواستهای جعلی بیشمار از دسترس عموم خارج کنند که در این صورت به آن وبسایت زیان مالی خواهد رسید.
به عبارت سادهتر، حملات توزیعشدهٔ منع سرویس مانند کوکتل مولوتوف غیرقابل ردیابی هستند.
پیامدهای حملات DDOS
هزینههای آماده نبودن در مقابل حملات DDOS فراتر از آن چیزی است که میتوان تصور کرد. درواقع این نوع حمله تنها از دسترس خارج شدن موقتی وبسایت و از دست دادن سود حاصل از فروش نیست.
برای کاربران نهایی وبسایت تفاوتی بیت هک شدن وبسایت شما و یا از دسترس خارج شدن آن توسط حمله DDOS وجود نخواهد داشت. چراکه بازدیدکنندگان فکر میکنند وبسایت به خطر افتاده است و دیگر قابلاعتماد نیست.
اگرچه یک فایروال وبسایت خوب قادر به کاهش بیش از ۹۰% حملات DDOS است. ممکن است برخی از وبسایتها به خاطر آسیبپذیری بخصوصی نیاز به اقدامات و مراقبتهای خاص داشته باشند. در اینجا چند تمرین خوب وجود دارد که میتوانید آنها را، برای اطمینان پیدا کردن از این قضیه که وبسایت شما میتواند اوج ترافیک درخواستهای ارسالشده را کنترل کند، دنبال کنید.
حذف، بهینهسازی و اتکا به منابع بیرونی
در طی حملهای، هر بایت از دادهها ممکن است میلیونها بار توسط هزاران دستگاه دانلود شود. اولین قدم برای داشتن یک وبسایت قویتر این است که آن را سبکتر کنید. در نظر بگیرید که سرور میزبانتان دیگر نه یک واحد ذخیره اطلاعات، بلکه بیشتر شبیه به یک مرکز پردازش داده است!
۱. تصاویر
تقریباً تمام پلتفرمها دارای پلاگین ها و یا ماژولهایی برای بهینهسازی و یا تغییر اندازه تصاویر هستند. این کار بهطور قابلتوجهی وبسایت شمارا سبکتر میکند. برخی از انواع تصاویر ممکن است با آیکونها، SVG و آیکونهای فونتی جایگزین شوند و یا در یک تصویر واحد ادغام شوند. همچنین ممکن است برخی از تصاویر بهسختی بارگذاری شوند بنابراین اینگونه تصاویر فقط باید در صورت نیاز (وجود تقاضا از طرف کاربر) نمایش داده شوند.
فراموش نکنید که حافظه نهان تصاویر خود را طوری تنظیم کنید، تا مرورگر بتواند در غالب اوقات این دادههای نهان را شناسایی و ذخیره کند.
۲. ویدیوها
فیلمها قسمت قابلتوجهی از دیسک شمارا اشغال میکنند، سرعت پشتیبانگیری را کاهش میدهند و نیاز است که آنها را به فرمتهایی که حجم مناسبتری دارند تبدیل کنید.
فیلمها بیشتر در معرض کپیبرداریهای غیرقانونی هستند و این قطعاً سرور شما را در برابر حملات از روی پهنای باند آسیبپذیر خواهد کرد.
سرویسهای حرفهای فراوانی مانند آپارات، Youtube، Vimeo و دیگر موارد مشابه وجود دارند که میتوان از آنها برای انتشار ویدیو استفاده کرد. این سرویسها دارای مکانیسمها و فیلترهای ویژهای هستند که از حملات به فیلمهای شما و همچنین سرقت آنها جلوگیری میکنند، همچنین میتواند فیلمهای شمارا حتی با وجود سرعتپایین اتصالات بهخوبی پخش کنند.
۳. CSS و Javascript
با استفاده از تکنیک کوچکسازی (minifying) میتوان دادههای بیفایده را از فایلهای Javascript و CSS حذف کرد. با استفاده از تکنیک concatenating، میتوان چند فایل را باهم ادغام کرد. اگر نمیتوانید از شر فایلها خلاص شوید و یا آنها را در منابع خارجی بارگذاری کنید، تلاش کنید جایگزینهای بهتری (سبکتری) پیدا کنید.
۴. فونتها
فونتهای زیادی را در وبسایت خود بارگذاری نکنید. تنها از استایل های موردنیازتان استفاده کنید. سعی کنید از شبکههای انتشار محتوی (CDN) مانند Google fonts استفاده کنید.
۵. ویجت و iframe
محدودیتهایی را تعریف کنید که چه کسانی میتوانند از وبسایت شما با استفاده از آی فریم بهرهبرداری کنند و همچنین از استفاده بیشازحد ویجت ها اجتناب کنید. ویجتهای شبکههای اجتماعی مانند Like Box میتوانند با تصاویر ساده جایگزین شوند.
۶. جستجو، نظرات و سامانه چت
وقتیکه میتوانید از سیستمهای خارجی برای انجام جستوجو و یا بخش نظرات و همچنین سیستم گفتوگو بهره بگیرید نیازی نیست از منابع داخلی استفاده کنید. مانند عمل جستوجو که میتواند با استفاده از دورکهای گوگل و چند خط کد دستور ساده صورت پذیرد.
به خاطر داشته باشید که اضافه کردن کد شخص ثالث به وبسایت میتواند خطرناک باشد، بنابراین تنها از منابع معتبر استفاده کنید.
اگر نمیتوانید از منابع خارجی استفاده کنید، به یاد داشته باشید که یک CAPTCHA نصب کنید تا جلوی سو استفاده رباتها از ترافیک را بگیرید.
۷. POST و WebSocket
درخواستهایی از نوع POST و WebSocket فقط باید در صورت لزوم مورداستفاده قرار گیرد. درخواستهایی از این دست مقدار زیادی از منابع سرور را مصرف میکنند. حتی ناهمگام ساختن آنها و یا محدود کردن تعداد تکرارشان میتواند کار دشواری باشد!
برای مثال WooCommerce دارای یک ویژگی عالی به نام Cart Fragments AJAX است که کل سبد خرید را بدون تازهسازی صفحه بهروز میکند.
?wc-ajax=get_refreshed_fragments
بههرحال از کار انداختن آن استفاده از منابع را کاهش خواهد داد و سرعت وبسایت را افزایش میدهد.
مراقب باشید وقتیکه ارسال درخواستها بهصورت POST و WebSocket را غیرفعال میکنید وبسایت خود را از کار نیندازید.
۸. دانلودها
مشابه ویدیوها سعی کنید فایلهای دانلود را خود میزبانی نکنید، یا حداقل نشانی اینترنتی بارگیری را بر اساس آدرس IP مراجعهکننده بهصورت موقت ایجاد کنید.
این روش نمیتواند در طول یک حمله مورداستفاده قرار گیرد و کمتر احتمال دارد بهطور غیرمعمول ذخیرهشده یا سرقت شود.
۹. تغییر مسیر
وقتی نوبت استفاده از تغییر مسیرها شد، از تغیر مسیر زنجیرهای اجتناب کنید و مستقیم به سراغ آدرس اصلی بروید.
وقتی وبسایت شما از WWW، زیر دامنهها و SSL استفاده میکند، تلاش کنید http://yourdomain.com آدرس را مستقیماً به https://www.yourdomain.com مسیر تغییر دهید بهجای اینکه به مسیر https://yourdomain.com بروید و سپس به نسخه https://www.yourdomain.com.
برای کاربر نهایی بهتر است که بتواند سریعتر به وبسایت و سرور شما دسترسی داشته باشد که این نیاز به پردازش دو یا چند مسیر دیگر ندارد.
۱۰. خطای ۴۰۴
همانطور که از قبل هم میدانید تغییر مسیر صفحات قدیمی و بخشهای وبسایتتان به لینکهای جدیدتر به شرایط SEO وبسایت شما کمک شایانی میکند اما این کار عموماً توانایی منابع شمارا مصرف میکند. با ارائه یک نمونه خطا ۳۰۱ ساده، با توجه به فرآیند اجرای کد منابع کمتری نسبت به پردازش یک صفحه خطا ۴۰۴ که بهصورت دستی ساختهایم، صورت میپذیرد.
توصیه میشود به تعداد نمایش خطا ۴۰۴ دقت کنید، چون میتواند نشانی از ابزارهای اسکنکننده باشد که به دنبال اطلاعات، برای بهرهبرداری از آسیبپذیریها و یا ایجاد بار اضافی بر روی سرور شما با استفاده از درخواستهای تصادفی هستند باشد.
نتیجهگیری
امروز در این نوشته اولین تمرینی که میتواند انعطافپذیری وبسایت شمارا در مقابل حملات توزیعشده منع سرویس افزایش دهد، صحبت شده است. در پست بعدی بر روی تکنیکهای استفاده از کش و همچنین اهمیت داشتن وجود فایروالها برای محافظت از وبسایت در مقابل حملات توزیعشده منع سرویس تمرکز خواهیم کرد.
مطالب مرتبط:
نقصهای امنیتی سرور NginX بیش از یک میلیون سرور را در معرض حملات DOS قرار میدهد
۹ میلیون کاربر ۸۵ بدافزار تبلیغاتی از پلی استور گوگل نصبکردهاند
آسیب پذیری منع سرویس MikroTik – ویدیو
منبع: Sucuri Blog
