در دنیایی که همه روزه دستگاه های جدید تحت شبکه به یکدیگر متصل میشوند، تهدید های مربوط به امنیت سایبری نیز رشد و تکامل می یابند. یکی از روشهای نگرانکننده مهاجمان، حمله تقویت شده DDoS توسط Memcached می باشد. مهاجمان با بهرهبرداری از سرورهای Memcached آسیبپذیر، میتوانند ترافیک عظیمی را ایجاد کنند که وبسایتها و سرویسهای هدف را فلج میکند. درک فرایند این حملات و اجرای اقدامات حفاظتی قوی جهت محافظت از موجودیت آنلاین سازمان ها بسیار مهم است.
حمله DDoS زمانی رخ می دهد که مهاجم سعی می کند با ارسال ترافیک بیش از حد به وب سایت یا سرور سرویس دهنده، عملکرد آن را مختل یا کاملا متوقف نماید. حمله تقویت شده DDoS نیز حمله ای است که در آن مهاجم از یک سرویس شخص ثالث استفاده مینماید تا حجم ترافیک ورودی به سرور هدف را افزایش دهد، به نحوی که وب سایت یا سرور میزبان نتواند آن حجم از ورودی را مدیریت نماید. یکی از روش های تقویت DDoS، سوء استفاده از قابلیت مفید Memcached می باشد.
Memcached سرویسی است که با ذخیره برخی از داده ها در حافظه سرور، به وب سایت ها کمک می کند تا با سرعت بیشتری اجرا شوند اما برخی از مدیران سرورها، Memcached را به درستی ایمن نمی کنند. در این صورت هر فردی می تواند از آن برای ارسال یا دریافت داده استفاده نماید و این دقیقا همان نقص امنیتی است که هکرها جهت پی ریزی حمله DDoS توسط Memcached به دنبال آن هستند.
تصویر(1)
مهاجم میتواند از Memcached برای حمله تقویتکننده استفاده نماید. در این حالت، مهاجم از Memcached دادههای زیادی درخواست می کند سپس Memcached آن دادهها را به وبسایت و سرور مبدا ارسال مینماید. سرور با تصور این که درخواست ها حقیقی هستند، اقدام به ارسال پاسخ و ارائه خدمات می نماید.
به این ترتیب، مهاجم میتواند مقدار کمی از ترافیک را به Memcached ارسال کند اما Memcached را مجبور خواهد کرد تا حجم عظیمی از ترافیک را به وبسایت یا سرور سرویس دهنده ارسال نماید. این امر می تواند باعث از کار افتادن یا کاهش سرعت وب سایت و سرور شود.
حمله تقویت شده DDoS توسط Memcached چگونه پیاده سازی می شود؟
این حملات معمولا از پروتکل UDP استفاده می کنند. UDP یک مدل ارتباطی ساده بدون اتصال با حداقل مکانیسم پروتکل است. این بدان معنی می باشد که یکی از طرفین می تواند در این نوع ارتباط، بدون محدودیت تعداد بالایی درخواست را برای دیگری ارسال کند.
تصویر(2)
با توجه به نحوه کار پروتکل UDP، مجرمان سایبری از آن برای ایجاد حملات تقویت شده DDoS استفاده می کنند. در این روش مهاجم یک درخواست UDP کوچک با آدرس IP جعلی که در واقع همان IP سرور قربانی می باشد را به سرویس دهنده های عمومی ارسال می کند.
پروتکل UDP نیازی به تأیید اتصال بین طرفین ندارد. به همین دلیل است که سرویس دهنده های عمومی، داده های درخواستی را طی پاسخ خود به آدرس IP قربانی ارسال می کنند. هرچقدر که داده های بازگردانده شده توسط سرویس دهنده های عمومی بیشتر باشند، ضریب تقویت DDoS توسط Memcached بزرگتر خواهد بود.
در چند سال گذشته، هکرها از سرور های DNS عمومی و سرورهای NTP بسیاری، جهت ایجاد حملات DDoS گسترده علیه وبسایتها و سرویسهای محبوب استفاده کردهاند.
نحوه پیاده سازی حملات تقویت شده DDoS توسط Memcached
تصویر(3)
حمله تقویت شده DDoS توسط Memcached، یک سوء استفاده مخرب از قابلیت های کاربردی و مفید موجود در اینترنت است. در این حمله، مهاجمان از سرورهای آسیب پذیر Memcached برای ایجاد و هدایت ترافیک بسیار گسترده به سمت یک هدف استفاده می کنند. با ارسال درخواستهای کوچک به چندین سرور، مهاجمان به صورت غیر مستقیم، پاسخهای بزرگتری را به سرور قربانی ارسال میکنند و ضریب تقویت حمله را بالا می برند. این موج عظیم ترافیک می تواند زیرساخت شبکه هدف را فلج کند و ارائه خدمات را مختل سازد. برای کاهش چنین حملاتی، سازمانها باید سرورهای Memcached خود را ایمن سازند، کنترل دسترسی را پیادهسازی نمایند و از روش های خاص جهت کاهش اثر DDoS استفاده کنند.
این حمله چگونه صورت می پذیرد؟
- شناسایی سرورهای آسیب پذیر: مهاجمان، سرویس دهندگان اینترنتی را اسکن می کنند تا سرورهای Memcached که به صورت عمومی در دسترس هستند و از UDP پشتیبانی مینمایند را شناسایی نمایند. UDP به دلیل ماهیت بدون اتصال آن انتخاب می شود و جعل آدرس های IP منبع نیز آسان تر می شود.
به طور پیشفرض Memcached روی پورت 11211 از UDP پشتیبانی می کند. از طرفی، در تنظیمات ارتباطی پایگاه داده، بار ثابت 1400 بایت برای بستههای UDP تعریف شده است.
درخواست اولیه UDP با اندازه 15 بایت به سرور Memcached ارسال می شود و سرور با 1400 بایت پاسخ می دهد. در این صورت یک ضریب تقویت بیش از 93 برابری ایجاد میشود. برای نمونه، با داشتن یک سرور دارای پورت 1 گیگابیت بر ثانیه و تعداد قابل توجهی از سرورهای آسیب پذیر، مهاجم می تواند حملات DDoS توسط Memcached را با سرعت 90 گیگابایت بر ثانیه ایجاد کند.
تصویر (4)
- جعل آدرس IP منبع: با استفاده از تکنیک های مختلف، مهاجمان آدرس IP خود را پنهان می کنند و در این حالت به نظر می رسد که ترافیک حمله از آدرس IP قربانی نشات می گیرد. این موضوع تضمین می کند، ترافیک برگشتی که اکنون تقویت نیز شده است، به سمت قربانی هدایت می شود.
- ارسال درخواست های جعلی کوچک: مهاجمان درخواست های سبک و بی خطری را به سرورهای Memcached آسیب پذیر، ارسال می کنند. این درخواست ها معمولاً اندازه کوچکی دارند (اغلب حدود 15 بایت) که منابع لازم برای ارسال آنها را به حداقل می رساند.
- تقویت ترافیک برگشتی: با سوء استفاده از رفتار سرورهای Memcached که به درخواست های کوچک با پاسخ های بسیار بزرگتر پاسخ می دهد، مهاجمان به یک عامل تقویت کننده دست می یابند که توسط آن می توانند به حجم خیره کننده ای از درخواست ها برسند.
- غلبه بر سرویس هدف: ترافیک تقویت شده توسط سرورهای Memcached، زیرساخت شبکه قربانی را با حجم عظیمی از داده ها مختل می سازد. این سیل ترافیک می تواند به سرعت پهنای باند شبکه قربانی و منابع پردازشی را اشغال نماید و باعث اختلال در سرویس یا توقف کامل آن گردد.
حجم حمله DDoS توسط Memcached چقدر می تواند بزرگ باشد؟
در حوزه امنیت سایبری، شاهد یک ضریب تقویت بی سابقه با رقم شگفت انگیز 51200 برابر حجم درخواست اولیه، خواهید بود. برای نمونه، یک درخواست 15 بایتی، پتانسیل ایجاد یک پاسخ عظیم 750 کیلوبایتی را دارد. این عامل تقویت کننده حیرتانگیز، خطر امنیتی بسیار بزرگی ایجاد میکند. با پتانسیل تقویت قابل توجه و سرورهای آسیب پذیر، Memcached به هدف اصلی برای عوامل مخربی تبدیل می شود که قصد دارند حملات DDoS ویرانگر را علیه طیف گسترده ای از اهداف انجام دهند.
در اوایل ماه مارس سال 2018، یک حمله DDoS با قدرت 1.3 ترابیت بر ثانیه، سایت GitHub را برای دقایقی از مدار خدمت رسانی خارج نمود (تصویر 5). این حمله توسط یک روش جدید و خطرناک انجام شده بود که از سرور های memcached استفاده میکرد. این سرورها برای ذخیره دادههای موقت در حافظه استفاده میشوند و معمولاً در شبکههای داخلی قرار دارند اما بعضی از آنها اشتباها به صورت عمومی در دسترسی قرار می گیرند و میتوانند توسط هکرها برای تقویت حملات DDoS استفاده شوند. به این ترتیب، هکر میتواند با فرستادن درخواستی کوچک به یک سرور memcached، پاسخی بزرگ دریافت کند و آن را به آدرس IP هدف هدایت نماید. این روش باعث میشود که حجم ترافیک حمله چندین برابر شود و سایت هدف را از کار بیندازد.
تصویر(5)
این حمله نشان داد که چگونه یک ضعف طراحی در نرمافزاری کاربردی میتواند منجر به تهدیدی جدی برای امنیت اینترنت شود. بسیاری از کارشناسان و سازمانها بلافاصله به دنبال روش هایی برای جلوگیری و مقابله با این نوع حملات رفتند. GitHub با استفاده از سرویس Prolexic ( که از سوی Akamai CDN ارائه شده است)، توانست حمله را خنثی کند و سایت خود را مجددا در دسترس قرار دهد اما برای جلوگیری از تکرار این حملات، لازم است که سرورهای memcached را به درستی پیکربندی کنند و از دسترسی عمومی آنها جلوگیری نمایند.
روش های ایمن سازی سرور memcache
مدیران می توانند توسط روش های زیر، از سرورهای Memcached محافظت کنند:
- پیکربندی سرور را برای دریافت درخواست ها فقط از ip محلی 127.0.0.1 (localhost) تنظیم نمایید. اگر از سرور Memcached فقط به صورت محلی استفاده می شود و هیچ اتصال خارجی به سرور وجود ندارد، باید این مورد انجام گردد. می توان این کار را توسط کد زیر انجام داد:
–listen 127.0.0.1
- اگر از UDP استفاده نمی شود، پشتیبانی از آن را غیرفعال نمایید. می توان این عمل را با کد زیر انجام داد.
-U 0
- فایروال را جهت کنترل و بررسی پورت UDP 11211 تنظیم نمایید. اگر به اتصالات خارجی و پشتیبانی UDP نیاز است، باید اطمینان حاصل نمود که سرور فقط از طریق IP های مورد نیاز شما در دسترس خواهد بود.
- به جای اینکه سرور Memcached را مستقیماً در معرض اینترنت قرار دهید، می توانید از یک سرور واسط استفاده نمایید.
مهاجمان با بهرهبرداری از سرورهای Memcached آسیبپذیر، میتوانند سیل عظیمی از ترافیک را ایجاد کنند و باعث اختلالات گسترده شوند. برای دفاع در برابر این حملات، سازمانها باید سرورهای Memcached خود را ایمن کنند، کنترل دسترسی دقیقی را پیادهسازی نمایند و از روش های موثر کاهش DDoS بهره مند شوند.
جمع بندی
حمله تقویت شده DDoS، نوعی حمله سایبری است که در آن از آسیبپذیری برخی پروتکلها یا سرویسهای اینترنتی برای تقویت ترافیک ارسال شده به سرور هدف، سوء استفاده می شود.
Memcached یک سیستم توزیع ذخیره سازی در حافظه است و ضریب تقویت بسیار بالایی دارد. به این معنی که یک درخواست کوچک می تواند پاسخ بزرگی ایجاد کند. از طرفی، Memcached هیچ مکانیزمی جهت احراز هویت یا رمزگذاری ندارد و هر شخصی میتواند درخواستهایی را برای آن ارسال کند و پاسخ دریافت نماید. علاوه بر این، از UDP استفاده می شود که یک پروتکل بدون اتصال است و منبع بسته ها را بررسی و اعتبار سنجی نمی کند.
این ویژگیها Memcached را به ابزاری ایدهآل برای حملات تقویت شده DDoS توسط Memcached تبدیل میکنند. از طرفی، مهاجمان میتوانند آدرس IP هدف خود را جعل نموده و درخواستهایی را به سرورهای Memcached ارسال نمایند. در نتیجه حجم عظیمی از ترافیک به سرور هدف ارسال شده و تمام منابع آن را درگیر خواهد کرد.
در این مقاله راهکارهایی مانند غیرفعال کردن پشتیبانی از UDP، پیادهسازی قوانین فایروال، بروزرسانی نرمافزار Memcached و استفاده از تنظیمات شبکه ایمن، جهت کاهش خطر حملات تقویت شده DDoS مرور شد.