از اوایل سپتامبر، سیستمهای محافظت DDoS Cloudflare در حال مبارزه با یک کمپین یک ماهه حملات DDoS با حجم بسیار بالا بودهاند. ترفند های دفاعی Cloudflare در طول این ماه بیش از صد حمله L3/4 DDoS با حجم بسیار بالا را خنثی کرده است که بسیاری از آنها بیش از ۲ میلیارد بسته در ثانیه (Bpps) و ۳ ترابیت در ثانیه (Tbps) را پشت سر گذاشتهاند. بزرگترین حمله به اوج ۳.۸ ترابیت بر ثانیه رسید – بزرگترین حملهای که تاکنون توسط هر سازمان به طور عمومی فاش شده است. تشخیص و خنثیسازی کاملاً خودکار بود.
تحلیل کمپین حمله
این کمپین حمله، مشتریان متعددی در حوزههای خدمات مالی، اینترنت، و ارتباطات از راه دور را هدف قرار داده است. هدف اصلی این حملات، اشباع پهنای باند و تخلیه منابع برنامههای آنلاین و دستگاهها است.
این حملات بیشتر از پروتکل UDP روی یک پورت ثابت استفاده میکنند و از دستگاههای مختلف و مناطق جغرافیایی متعدد، به ویژه از ویتنام، روسیه، برزیل، اسپانیا و ایالات متحده ارسال میشوند.
حملات با نرخ بسته بالا معمولاً از دستگاههای آسیبدیدهای مانند تجهیزات MikroTik، DVR ها، و سرورهای وب انجام میشوند که بهصورت هماهنگ عمل کرده و حجم زیادی از ترافیک را به سمت هدف روانه میکنند. در عین حال، حملات با نرخ بیت بالا عمدتاً از تعداد زیادی روتر خانگی ASUS که احتمالاً توسط یک آسیبپذیری بحرانی (CVE 9.8) مورد سوءاستفاده قرار گرفتهاند، آغاز میشوند.
آناتومی حملات DDoS
قبل از اینکه در مورد چگونگی تشخیص و خنثیسازی خودکار بزرگترین حمله DDoS توسط Cloudflare صحبت کنیم، مهم است که اصول اولیه حملات DDoS را درک کنیم. هدف یک حمله (DDoS) این است که دسترسی کاربران قانونی به یک سرویس را سلب کند.این کار معمولاً با مصرف بیش از حد منابعی انجام میشود که برای ارائه سرویس مورد نیاز هستند. در زمینه حملات اخیر L3/4 DDoS، هدف اصلی این حملات چرخههای CPU و پهنای باند شبکه است.
مصرف بیش از حد چرخههای CPU
پردازش یک بسته نیاز به چرخههای CPU دارد. در شرایط عادی (بدون حمله)، یک بسته قانونی که به یک سرویس میرسد، باعث میشود آن سرویس اقداماتی را انجام دهد، و هر اقدام به میزان متفاوتی از پردازش CPU نیاز دارد. اما قبل از آنکه یک بسته به سرویس مورد نظر برسد، پردازشهای اولیهای باید روی آن انجام شود. در لایه ۳، هدرهای بسته باید برای تحویل به دستگاه و رابط درست، تجزیه و پردازش شوند. در لایه ۴، هدرهای بسته باید پردازش و به سوکت مناسب هدایت شوند (در صورت وجود). مراحل پردازشی دیگری نیز ممکن است وجود داشته باشند که هر بسته را بررسی کنند. بنابراین، اگر یک مهاجم با نرخ بالایی بسته ارسال کند، میتواند منابع CPU موجود را به طور کامل مصرف کند و دسترسی کاربران قانونی به سرویس را مسدود کند.
برای دفاع در برابر حملات با نرخ بالای بسته، باید بتوانید بستههای خراب را با حداقل مصرف چرخههای CPU شناسایی و حذف کنید، به طوری که CPU کافی برای پردازش بستههای قانونی باقی بماند. همچنین میتوانید CPUهای بیشتر یا سریعتری را برای پردازش تهیه کنید، اما این فرایند ممکن است طولانی و پرهزینه باشد.
مصرف بیش از حد پهنای باند شبکه
پهنای باند شبکه، میزان کلی دادهای است که در واحد زمان میتواند به یک سرور منتقل شود. میتوانید پهنای باند را مانند لولهای برای انتقال آب تصور کنید. میزان آبی که میتوان از طریق نی نوشیدنی عبور داد، کمتر از میزان آبی است که از طریق یک شلنگ باغبانی میتوان منتقل کرد. اگر یک مهاجم بتواند دادههای زائد بیشتری نسبت به ظرفیت لوله به آن تزریق کند، هم دادههای خراب و هم دادههای قانونی در نقطه ورودی لوله حذف میشوند، و در نتیجه حمله DDoS موفقیتآمیز خواهد بود.
دفاع در برابر حملاتی که میتوانند پهنای باند شبکه را اشباع کنند، ممکن است دشوار باشد، زیرا اگر شما در سمت پاییندست لوله اشباعشده باشید، کار چندانی نمیتوانید انجام دهید. تنها چند گزینه واقعی وجود دارد: میتوانید لوله بزرگتری تهیه کنید، یا شاید راهی برای انتقال ترافیک قانونی به لولهای جدید و اشباعنشده پیدا کنید، یا از سمت بالادست لوله درخواست کنید که ارسال بخشی یا تمام دادهها به داخل لوله را متوقف کند.
ایجاد حملات DDoS
اگر از دیدگاه مهاجم به این موضوع نگاه کنیم، متوجه میشویم که محدودیتهای مشابهی وجود دارد. همانطور که برای دریافت یک بسته به چرخههای CPU نیاز است، برای ایجاد یک بسته نیز به چرخههای CPU نیاز است. اگر، برای مثال، هزینه ارسال و دریافت یک بسته برابر باشد، مهاجم به اندازه CPU مورد نیاز ما برای دفاع، به قدرت CPU نیاز خواهد داشت. در بیشتر موارد این موضوع صادق نیست و یک عدم تقارن هزینه وجود دارد، زیرا مهاجم میتواند بستهها را با استفاده از چرخههای کمتری نسبت به دریافت آنها ایجاد کند. اما لازم به ذکر است که ایجاد حملات رایگان نیست و ممکن است نیاز به قدرت CPU زیادی داشته باشد.
مصرف بیش از حد پهنای باند شبکه برای مهاجم حتی دشوارتر است. در اینجا، مهاجم باید بتواند پهنای باند بیشتری از آنچه سرویس هدف در اختیار دارد، تولید کند. در واقع، آنها باید بتوانند ظرفیت سرویس گیرنده را بیش از حد کنند. این امر بسیار دشوار است و به همین دلیل رایجترین روش برای انجام حمله پهنای باند شبکه، استفاده از روش حمله بازتاب/تقویت، مانند حمله تقویت DNS است. این حملات به مهاجم امکان میدهد که یک بسته کوچک را به یک سرویس واسطه بفرستد، و سرویس واسطه یک بسته بزرگ را به قربانی ارسال کند.
در هر دو سناریو، مهاجم باید دستگاههای زیادی را برای ایجاد حمله تهیه یا به آنها دسترسی پیدا کند. این دستگاهها میتوانند سرورهای قدرتمندی از ارائهدهندگان ابر یا خدمات میزبانی باشند، یا دستگاههای آسیبپذیری مانند DVRها، روترها و دوربینهای وب که به وسیله بدافزار مهاجم آلوده شدهاند. این دستگاهها با هم تشکیل یک Botnet را میدهند.
چگونه سیستمهای توزیعشده از حملات DDoS با مقیاس بزرگ محافظت میکنند؟
حملات DDoS با فرستادن حجم عظیمی از ترافیک به سرورها سعی در اشباع کردن منابع و از دسترس خارج کردن خدمات دارند. سیستمهای توزیعشده مانند شبکههای Anycast با استفاده از چندین سرور در سراسر جهان، از این حملات جلوگیری میکنند.
گسترش سطح حمله با Anycast جهانی
در شبکه انیکست، یک آدرس IP توسط چند سرور در نقاط مختلف جهان منتشر میشود. وقتی کاربری یا حتی یک دستگاه آلوده به این آدرس درخواست میفرستد، نزدیکترین سرور به آن درخواست پاسخ میدهد. این به این معناست که در حملات DDoS، ترافیک ورودی از دستگاههای آلوده در سراسر دنیا بهطور خودکار بین سرورهای مختلف توزیع میشود. به این ترتیب، حمله به یک نقطه متمرکز نخواهد شد و شبکه میتواند با توزیع این ترافیک از بار آن بکاهد.
همچنین، در مناطقی که ترافیک بالاتری دارند (مانند شهرهای بزرگ)، مراکز دادهای با منابع بیشتری (مانند پهنای باند و قدرت پردازشی) قرار دارند تا ترافیک بالا را مدیریت کنند. در مناطق کمجمعیت، مراکز داده کوچکتر هستند، چرا که نیاز کمتری به منابع دارند. این توزیع منابع به شبکه کمک میکند تا به طور مؤثر حملات را مدیریت کند.
مدیریت حملات حجیم با پهنای باند بالا
در حملاتی که حجم زیادی از دادهها ارسال میشود، شبکههای توزیعشده میتوانند از پهنای باند اضافی استفاده کنند و دادههای مخرب را فیلتر کنند تا به سیستم آسیب نرسد. این کار باعث میشود که ترافیک حجیم قبل از رسیدن به بخشهای حساس شبکه مدیریت و جذب شود.
شناسایی ردپای بستههای مشکوک
پس از رسیدن ترافیک حمله به سرورهای مراکز داده، رویکرد توزیعشده از اشباع شدن پیوندهای بالادستی جلوگیری میکند. سپس سیستم باید بستههای مخرب را شناسایی و حذف کند. نمونهبرداری از ترافیک و فیلتر کردن بستهها توسط مؤلفههایی انجام میشود که از ابزارهای تخصصی سطح هستهای مانند XDP و eBPF استفاده میکنند و به سیستم امکان میدهند تا بستهها را بهطور مستقیم در سطح کارت رابط شبکه (NIC) بهینهسازی و پردازش کند، که موجب کاهش بار CPU میشود.
این سیستم فیلترینگ، بستهها را نمونهبرداری میکند تا ردپای احتمالی حمله را شناسایی کند. با بررسی جزئیاتی مانند IP مبدأ، پورت، IP مقصد، پروتکل، فِلَگهای TCP و نرخ بسته، سیستم الگوهای مشکوک را تشخیص میدهد. یک مؤلفه اختصاصی این ویژگیها را تحلیل کرده و قوانین خاصی را برای مسدود کردن ترافیک مخرب ایجاد و اعمال میکند. این فرایند شامل ایجاد اثر انگشت برای ترافیک مشکوک و اعمال دفاع در سطوح مختلف از جمله سرور، مرکز داده و مقیاس جهانی است.
تمام فرایند دفاعی در زیرساخت شبکه انجام میشود و امکان پاسخ خودکار و تقریباً آنی را فراهم میکند. شبکههای توزیعشده معمولاً از مکانیزمهایی برای تبادل قوانین دفاعی بین مراکز داده استفاده میکنند تا در برابر حملات محلی و توزیعشده به صورت مؤثر مقاومت کنند.
دانشجوی مهندسی نرم افزار و علاقه مند به دواپس 🙂