اكتشف باحثو الأمن السيبراني ثغرة أمنية جديدة تعرف باسم قنبلة HTTP/2، والتي تؤثر على مجموعة واسعة من خوادم الويب الشهيرة، بما في ذلك NGINX و Apache HTTPD و Microsoft IIS و Envoy و Cloudflare Pingora.
صدر الاكتشاف الذي تم عن طريق الخطأ بفضل تقنية التعلم الآلي، عن شركة Calif.، وهي شركة أبحاث في مجال الأمن السيبراني، مما يثير قلقاً بالغاً حول أمن البنية التحتية الرقمية.
ثغرة قنبلة HTTP/2 تهدد خوادم الويب
تستغل هذه الثغرة، التي اكتشفها باحثو الأمن السيبراني، ميزة ضغط الرؤوس (HPACK) في بروتوكول HTTP/2. يمكن للمهاجمين استغلال هذه الثغرة لتنفيذ هجمات حجب الخدمة عن بعد، مما يؤدي إلى تعطيل الخوادم وجعلها غير متاحة للمستخدمين الشرعيين.
تعتمد الثغرة على تقنيتين معروفتين، وهما “القنبلة الضاغطة” و “الاحتجاز البطيء” (Slowloris-style hold). تجمع هذه الثغرة بين الآليتين بطريقة فعالة.
آلية عمل الثغرة
تستهدف الثغرة آلية ضغط الرؤوس HPACK في HTTP/2. يقوم المهاجم بإرسال طلبات مصممة خصيصاً، حيث يتسبب بايت واحد في استهلاك مساحة كاملة في ذاكرة الخادم لرأس معين. يتم تكرار هذه العملية آلاف المرات لكل طلب.
من جهة أخرى، تستخدم الثغرة تقنية “الاحتجاز البطيء” التي تتمثل في إبقاء نافذة تدفق البيانات مفتوحة بحجم صفر بايت. هذا يمنع الخادم من تحرير الذاكرة المستهلكة، مما يؤدي إلى استنزاف موارد الخادم بسرعة.
يُذكر أن HPACK هي آلية ضغط رؤوس مخصصة لـ HTTP/2، وتعمل على تقليل حجم بيانات تعريف الطلبات والاستجابات بشكل كبير. تم تصميمها لمقاومة هجمات مثل CRIME، ولكن قنبلة HTTP/2 استطاعت تجاوز هذه الحماية.
أما بالنسبة لـ Slowloris، فهي نوع من هجمات حجب الخدمة التي تهدف إلى إرباك الخادم عبر فتح وإبقاء عدد كبير من اتصالات HTTP متزامنة بين المهاجم والهدف. وهو هجوم على مستوى التطبيق.
تاريخ مشابه وتطورات جديدة
تستلهم قنبلة HTTP/2 من هجمات وأساليب معروفة سابقاً، مثل HPACK Bomb (المعروفة أيضاً باسم CVE-2016-6581) التي تم الكشف عنها في عام 2016. كما ترتبط ببعض الثغرات الأخرى التي استهدفت خادم Apache HTTPD.
ومع ذلك، يكمن الجديد في هذه الثغرة في مصدر التضخيم. فبينما كانت الهجمات السابقة تعتمد على حجم كبير من البيانات، تستغل قنبلة HTTP/2 حجم ذاكرة كبير من خلال تكرار عمليات إدارية للرؤوس، حتى لو كانت هذه الرؤوس صغيرة الحجم.
من الأمثلة على ذلك، يمكن لجهاز كمبيوتر منزلي متصل بشبكة بسرعة 100 ميجابت في الثانية أن يتسبب في جعل خادم معرض للخطر غير متاح في غضون ثوانٍ. كما يمكن لعميل واحد استهلاك ما يصل إلى 32 جيجابايت من ذاكرة الخادم ضد Apache HTTPD و Envoy في حوالي 20 ثانية.
التدابير الوقائية والتوصيات
قدمت شركة Calif. مجموعة من التوصيات للتخفيف من آثار هذه الثغرة، وتشمل:
تحديثات وإعدادات الخوادم
بالنسبة لـ NGINX، يُنصح بالترقية إلى الإصدار 1.29.8 وما بعده، والذي يتضمن توجيه `max_headers` بحد أقصى 1000. إذا لم يكن الترقية خياراً، يمكن تعطيل HTTP/2 عبر `http2 off;`.
بالنسبة لـ Apache HTTPD، تم إصلاح الثغرة في `mod_http2` الإصدار 2.0.41. وفي حال عدم إمكانية الترقية، يُنصح بتعيين `Protocols http/1.1` لتعطيل HTTP/2.
فيما يتعلق بـ Microsoft IIS و Envoy و Cloudflare Pingora، لم تتوفر تصحيحات رسمية حتى وقت نشر التقرير.
تكمن الثغرة الأعمق في أن بروتوكول HTTP/2 يسمح للعميل بإبقاء الاتصال مفتوحاً لفترة طويلة، مما يثبت كل بايت من الذاكرة المخصصة بقدر ما يشاء. وهذا يحول تقنية تضخيم الذاكرة من إزعاج إلى هجوم كامل.

