حمله QUIC Flood چیست؟ + راهکارهای مقابله با آن
حمله QUIC Flood نوعی از حملات DDoS است که از از پروتکل QUIC برای سیلابی از حملات سوء استفاده میکند. اگر میخواهید بدانید حمله QUIC Flood چیست و چگونه عمل میکند، در ادامه این مطلب از بلاگ ابر زس با ما همراه باشید.
درباره پروتکل QUIC
قبل از آن که بررسی کنیم که حمله QUIC Flood چیست و چطور انجام میشود، بهتر است به روند کار پروتکل QUIC که در حملات QUIC Flood مورد سوء استفاده قرار میگیرد، نگاهی بیندازیم.
یکی از سریعترین، کارآمدترین و امنترین پروتکلهای ارسال دادهها ازطریق اینترنت، پروتکل QUIC است. این پروتکل تحت عنوان transport Protocol شناخته میشود و در لایه انتقال مدل شبکه OSI یا به عبارتی لایه Transport عمل میکند.
پروتکل QUIC را میتوان جایگزین پروتکلهای TCP (یک پروتکل انتقال) و TLS (یک پروتکل رمزگذاری) دانست. آخرین نسخه پروتکل HTTP، یعنی HTTP/3 از پروتکل QUIC استفاده میکند.
نحوه عملکرد پروتکل QUIC
برای آن که بتوانیم بررسی کنیم حمله QUIC Flood چیست و فرایند اجرای آن به چه صورت است، باید عملکرد پروتکل QUIC را تشریح نماییم. هدف اصلی این پروتکل، ایجاد اتصالات سریعتر و امنتر نسبت به پروتکلهای قدیمیتر است. این پروتکل، از پروتکل انتقال UDP برای بهبود سرعت انتقال بهره میبرد. البته باید اشاره کرد که پروتکل UDP در مقایسه با TCP کمتر قابل اعتماد است اما در عوض سرعت بالاتری هم دارد. در این پروتکل چندین جریان داده به طور یکجا ارسال میشود تا دادههای گمشده در مسیر جبران شود. این تکنیک ارسال «مالتیپلکسینگ» نام دارد.
برای آن که امنیت در پروتکل QUIC در سطح بالاتری ارائه شود، هر چیزی که ازطریق آن ارسال شود، به طور خودکار رمزگذاری میشود. برای رمزگذاری، دادهها باید ازطریق HTTPS ارسال شوند، اما در پروتکل QUIC با استفاده از پروتکل TLS، رمزگذاری در فرایندهای عادی ارتباط انجام میشود.
روند رمزگذاری داخلی که در این پروتکل انجام میشود، به افزایش سرعت پروتکل کمک میکند. در HTTPS معمول، قبل از آن که دست دادن چندمرحلهای (multi-step handshake) مرتبط با TLS انجام شود، باید در لایه انتقال یک روند دست دادن سهطرفه TCP (یا به عبارتی three-way TCP handshake) انجام شود. هریک از این مراحل، قبل از آن که هر نوع داده معمولی بین کلاینت و سرور ارسال شود، انجام میشوند. در پروتکل QUIC هر دو نوع دست دادن سهمرحلهای و چندمرحلهای ترکیب میشود و سرور و کلاینت تایید میکنند که اتصال بین آنها باز شده و به طور مشترک اقدام به تولید کلیدهای رمزنگاری TLS میکنند. حالا که با روند عملکرد این پروتکل آشنا شدیم، راحتتر میتوانید نحوه حمله QUIC Flood را درک کنید.
حمله QUIC Flood چیست؟
همانطور که گفتیم، حمله QUIC Flood یکی از انواع حملات DDoS است. در این نوع از حملات، با ارسال دادهها در حجم بسیار زیاد و به صورت توزیع شده از چندین منبع، مهاجم سعی میکند بر سرور غلبه و عملکرد عادی آن را مختل کند. سرور قادر به تشخیص دادههای جعلی از واقعی نیست و به همین دلیل با صرف زمان و منابع زیاد برای پردازش همه دادههای QUIC و البته گاه با اشغال شدن منابع شبکه، روند ارائه خدمات برای کاربران واقعی بهشدت کُند شده و حتی ممکن است سرور بهطورکلی از کار بیفتد.
معمولاً انسداد حملات QUIC DDoS کار دشواری است و نمیتوان بهراحتی به سرور کمک کرد تا در مقابل این حملات مقاومت کند. اما دلیل دشواری مقابله با حمله QUIC Flood چیست؟ این مسئله دو علت دارد که عبارت است از:
- به دلیل استفاده QUIC از UDP، اطلاعات کم و محدودی در اختیار گیرنده بستههای داده قرار گرفته و درنتیجه اطلاعات کمی برای مسدود کردن آن وجود دارد.
- به دلیل رمزگذاری دادهها در QUIC، سرور گیرنده، به سادگی قادر به تشخیص، مجاز یا مخرب بودن این دادهها نیست.
حملات QUIC Flood را ازطریق چندین روش میتوان انجام داد. پروتکل QUIC معمولاً در برابر حملات DDoS که مبتنی بر بازتاب یا Reflection-based هستند، آسیبپذیر است. اما حملات بازتابی چه هستند و چطور انجام میشوند؟!
حمله بازتاب QUIC چیست؟
حالا که میدانیم حمله QUIC Flood چیست و چطور اجرا میشود، بیایید با حملات reflection-based در حملات DDoS آشنا شویم که معمولاً سرور قادر به مقابله با آن نیست. در حملات بازتابی یا reflection، معمولاً آدرس IP سیستم قربانی توسط مهاجم جعل شده و مهاجم، از سرورهای مختلف، اطلاعاتی را درخواست میکند. پس از پاسخ دادن سرورها، تمام اطلاعات موردنظر بهجای آدرس IP هکر، به آدرس IP قربانی فرستاده شده و درنتیجه، سرور با اطلاعات ناخواستهای در حجم زیاد، مواجه میشود.
در پروتکل QUIC میتوان حملات بازتابی را تنها با ارسال یک پیام اولیه مشابه “hello” شروع کرد. اما بر خلاف اتصال TCP، در یک اتصال مبتنی بر QUIC، ارتباط با سرور تنها با یک پیام ACK ساده آغاز نمیشود. دلیل این موضوع این است که پروتکل QUIC، پروتکل انتقال UDP را با رمزنگاری TLS ترکیب میکند و از سمت سرور نیز باید گواهینامه TLS به همراه اولین پاسخ به کلاینت ارسال شود.
تمامی اینها به این معنی است که اولین پیام سرور، بسیار حجیمتر از اولین اولین پیام کلاینت است. در نتیجه هنگامی که سرور مجبور شود به تعداد زیادی از پیامهای مبتنی بر پروتکل QUIC پاسخ دهد، باید حجم عظیمی از دادهها را آماده کرده و ارسال نماید.
برای مقابله با این نوع از حملات، طراحان پروتکل QUIC یک میزان حداقلی از دریافت پیام “hello” را از سمت کلاینت تعیین میکنند تا به این ترتیب، هکرها برای ارسال پیامهای جعلی اولیه با تعداد بالا، نیاز به پهنای باند بالایی داشته باشند و از این لحاظ با چالشهای بیشتری مواجه شوند. با این حال همانطور که اشاره کردیم، پیام اولیه ارسال شده از سمت سرور، همچنان از پیام ارسالی اولیه از سمت کلاینت حجیمتر است و همین موضوع موجب میشود حملات مبتنی بر QUIC همچنان قابل اجرا باشند.
نحوه مقابله با حمله QUIC Flood چیست؟
بسیار مهم است که بدانیم روش مقابله با حمله QUIC Flood چیست. همانطور که گفتیم، یکی از راههای مقابله با حمله QUIC Flood آن است که محدودیتهای دریافت پیام شروع را ایجاد کرده و به این ترتیب کاری کنیم که هکر برای شروع حمله نیاز به پهنای باند بسیاری بیشتری داشته باشد. البته با این راهکار هم همچنان امکان انجام حملات وجود دارد، زیرا حجم اولین پیام ارسالی از سمت سرور، همچنان از حجم اولین پیام ارسالی از سوی کلاینت، بیشتر است. همچنین برای جلوگیری از این حمله، میتوان محدودیت نرخ دسترسی به سرور نیز تعیین کرد.
یکی دیگر از راههای کاهش اثر این حملات و مقابله با آن، استفاده از فایروال وب اپلیکیشن یا WAF (مخفف Web Application Firewall) و انتشار شبکه Anycast است. به این منظور میتوان از سرویس کلود گارد بهره برد که از انواع حملات DDoS از جمله حمله QUIC Flood جلوگیری میکند. این سرویس، علاوه بر توزیع ترافیک آلوده DDoS، از امکان پاکسازی ترافیک آلوده به واسطه مراکز لایهبردرای ترافیک (Scrubbing Centers) بهره میبرد.
مقایسه QUIC Flood و UDP Flood
یکی دیگر از انواع حملات DDoS، حمله UDP Flood است که با ارسال حجم بسیار زیاد بستههای UDP ناخواسته، انجام میشود. اگرچه QUIC از UDP استفاده میکند، اما نمیتوان گفت که QUIC Flood و UDP Flood یکسان هستند. یکی از راههای اختلال در سرور موردنظر توسط حمله UDP Flood آن است که بستههای جعلی و غیرواقعی را به یک پورت خاص روی سرور که در حال استفاده نیست، ارسال میکند.
ازآنجاییکه سرور باید به تمام بستهها با یک پیغام خطای ICMP پاسخ دهد، قدرت پردازش کاهشیافته و درنتیجه سرعت سرور کم میشود. این نوع از حملات با استفاده از QUIC هم امکانپذیر است، اما معمولاً مهاجم ترجیح میدهد تا این حمله را تنها ازطریق UDP انجام دهد که به دلیل عدم نیاز به افزودن سربار پروتکل QUIC به هر بسته، هزینه کمتری را برای او به همراه دارد.
جمعبندی
در این مطلب، به طور کامل بررسی کردیم که حمله QUIC Flood چیست و چطور اجرا میشود. این نوع از حملات از دسته DDoS بوده و با ایجاد بار اضافی روی سرور، عملکرد واقعی آن را مختل میکنند.