HTTP/2

پیاده‌سازی‌های مختلف HTTP/2 یعنی آخرین نسخه[۱] پروتکل شبکه HTTP، در برابر چندین آسیب‌پذیری امنیتی که روی محبوب‌ترین نرم‌افزارهای وب سرور ازجمله آپاچی، Microsoft’s IIS و NGINX  تأثیرگذار هستند، آسیب‌پذیر است.

 HTTP/2 که در ماه می سال ۲۰۱۵ راه‌اندازی شد، با سرعت بخشیدن به loadهای صفحه، برای امنیت بهتر و بهبود تجربه آنلاین طراحی شده است. امروزه بیش از صدها میلیون وب‌سایت یا حدود ۴۰ درصد از کل سایت‌های اینترنتی با استفاده از این پروتکل در حال اجرا هستند.

 درمجموع هشت آسیب‌پذیری HTTP/2 وجود دارند که هفت مورد از آن‌ها توسط Jonathan Looney از Netflix و دیگری توسط Piotr Sikora از گوگل کشف شدند. این آسیب‌پذیری‌ها به دلیلexhaustion  منابع هنگام استفاده از ورودی‌های موذی، به مشتری این امکان را می‌دهند کد مدیریت queue  سرور را بارگیری کند.

 از این آسیب‌پذیری‌ها می‌توان برای شروع حملات Denial of Service یا DoS علیه میلیون‌ها سرویس آنلاین و وب‌سایت‌هایی که با پیاده‌سازی HTTP/2  آسیب‌پذیر[۲] روی یک وب سرور در حال اجرا هستند، استفاده کرد و آن‌ها را برای همه آفلاین کرد.

سناریوی حمله این است که یک مشتری موذی از یک سرور آسیب‌پذیر مورد هدف می‌خواهد کاری را انجام دهد که باعث ایجاد پاسخ می‌شود، اما سپس مشتری از خواندن پاسخ امتناع می‌ورزد و سرور مجبور می‌شود هنگام پردازش درخواست‌ها، از حافظه و پردازنده اضافی استفاده کند.

 Netflix در تاریخ ۱۳ اوت ۲۰۱۹ دراین‌باره توضیح داد[۳]: “این نقص‌ها به تعداد محدودی از جلسات موذی دارای پهنای باند کم اجازه می‌دهند تا مشارکت‌کنندگان در اتصال از انجام کارهای اضافی منع شوند. این حملات احتمالاً منابع را exhaust می‌کند به‌طوری‌که سایر ارتباطات یا فرآیندهای موجود در همان دستگاه نیز ممکن است تحت تأثیر قرارگرفته یا خراب شوند.”

 بیشتر آسیب‌پذیری‌های در زیر ذکرشده در لایه  HTTP/2 transport کار می‌کنند:

  • CVE-2019-9511 — HTTP/2 “Data Dribble”
  • CVE-2019-9512 — HTTP/2 “Ping Flood”
  • CVE-2019-9513 — HTTP/2 “Resource Loop”
  • CVE-2019-9514 — HTTP/2 “Reset Flood”
  • CVE-2019-9515 — HTTP/2 “Settings Flood”
  • CVE-2019-9516 — HTTP/2 “0-Length Headers Leak”
  • CVE-2017-9517 — HTTP/2 “Internal Data Buffering”
  • CVE-2019-9518 — HTTP/2 “Request Data/Header Flood”

در این گزارش آمده است: “بعضی از آن‌ها به‌اندازه کافی کارآمد هستند که یک سیستم انتهایی واحد به‌طور بالقوه می‌تواند باعث ایجاد ویرانی در سرورهای مختلف شود. سایر حملات کارایی کمتری دارند؛ اما حملات با کارایی کمتری نیز می‌توانند برای حملات DDoS که شناسایی و مسدود کردن آن‌ها دشوار است استفاده شوند.”

 اما باید توجه داشت که از این آسیب‌پذیری‌ها فقط می‌توان برای ایجاد شرایط DoS استفاده کرد و به مهاجمان اجازه نمی‌دهد محرمانه یا یکپارچگی داده‌های موجود در سرورهای آسیب‌پذیر را به خطر بیندازند.

 تیم امنیتی Netflix، که برای افشای نقص گزارش‌شده با مرکز هماهنگی گوگل و CERT همکاری داشتند، هفت مورد از هشت آسیب‌پذیری را در چندین پیاده‌سازی سرور HTTP/2 در ماه مه سال ۲۰۱۹ کشف کردند و آن‌ها را با مسئولیت‌پذیری به هرکدام از فروشندگان و نگه‌دارندگان تحت تأثیر گزارش دادند.

 طبق گزارش CERT، فروشندگان تحت تأثیر شامل NGINX،آپاچی ،H2O ،Nghttp2، مایکروسافت(IIS)، Cloudflare ،Akamai ،Apple (SwiftNIO)، آمازون، فیس‌بوک (Proxygen)، Node.js و Envoy proxy هستند [۴-۱۰] که بسیاری از آن‌ها تاکنون وصله‌های امنیتی را برای محصولات خود منتشر کرده‌اند.

 

منابع

[۱] https://thehackernews.com/2015/02/http2-fast-websites.html

[۲] https://apa.aut.ac.ir/?p=1013

[۳] https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md

[۴] https://www.nginx.com/blog/nginx-updates-mitigate-august-2019-http-2-vulnerabilities/

[۵] https://markmail.org/message/konb64olyan5ye6t

[۶] https://github.com/h2o/h2o/issues/2090

[۷] https://blog.cloudflare.com/on-the-recent-http-2-dos-attacks

[۸] https://blogs.akamai.com/sitr/2019/08/http2-vulnerabilities.html

[۹] https://forums.swift.org/t/swiftnio-http-2-security-notice/27855

[۱۰] https://nodejs.org/en/blog/vulnerability/aug-2019-security-releases/

[۱۱] https://thehackernews.com/2019/08/http2-dos-vulnerability.html