هجوم CPDoS الذي يجعل الصفحات التي يتم تقديمها عبر CDN غير قابلة للوصول

باحثون من جامعتي هامبورغ وكولونيا
المتقدمة تقنية جديدة لمهاجمة شبكات توصيل المحتوى ووكلاء التخزين المؤقت - CDoS (رفض الخدمة المسموم بذاكرة التخزين المؤقت). يسمح الهجوم برفض الوصول إلى الصفحة من خلال تسميم ذاكرة التخزين المؤقت.

تتعلق المشكلة بحقيقة أن ذاكرة التخزين المؤقت لشبكات CDN لا تقتصر على الطلبات المكتملة بنجاح فحسب، بل أيضًا في المواقف التي يُرجع فيها خادم http خطأً. كقاعدة عامة، في حالة حدوث مشكلات في تكوين الطلبات، يصدر الخادم خطأ 400 (طلب غير صالح)، والاستثناء الوحيد هو IIS، الذي يصدر خطأ 404 (لم يتم العثور عليه) للرؤوس الكبيرة جدًا. يسمح المعيار فقط بتخزين الأخطاء 404 (غير موجود)، و405 (الطريقة غير مسموح بها)، و410 (ذهب)، و501 (لم يتم التنفيذ)، ولكن بعض شبكات CDN تقوم أيضًا بتخزين استجابات 400 (طلب غير صالح)، والتي تعتمد على الطلب المرسل .

يمكن للمهاجمين أن يتسببوا في إرجاع خطأ "400 طلب غير صالح" إلى المورد الأصلي عن طريق إرسال طلب باستخدام رؤوس HTTP مصممة خصيصًا. لا تأخذ شبكة CDN هذه الرؤوس في الاعتبار، لذلك سيتم تخزين المعلومات المتعلقة باستحالة الوصول إلى الصفحة مؤقتًا، وقد تؤدي جميع طلبات المستخدم الصالحة الأخرى قبل انتهاء المهلة إلى حدوث خطأ، على الرغم من أن الموقع المصدر يعرض المحتوى دون أي مشاكل.

لإجبار خادم HTTP على إرجاع خطأ، تم اقتراح ثلاثة خيارات للهجوم:

  • HMO (تجاوز طريقة HTTP) - يمكن للمهاجم تجاوز طريقة الطلب الأصلية من خلال رؤوس "X-HTTP-Method-Override" أو "X-HTTP-Method" أو "X-Method-Override" التي تدعمها بعض الخوادم، ولكن لا يعتبر في CDN . على سبيل المثال، يمكنك تغيير طريقة "GET" الأصلية إلى طريقة "DELETE" المحظورة على الخادم أو طريقة "POST" التي لا تنطبق على الإحصائيات؛

    هجوم CPDoS الذي يجعل الصفحات التي يتم تقديمها عبر CDN غير قابلة للوصول

  • HHO (HTTP Header Oversize) - يمكن للمهاجم اختيار حجم الرأس بطريقة تتجاوز حد الخادم المصدر، ولكنها لا تقع تحت قيود CDN. على سبيل المثال، يحدد Apache httpd حجم الرأس بـ 8 كيلو بايت، بينما يسمح Amazon Cloudfront CDN برؤوس تصل إلى 20 كيلو بايت؛
    هجوم CPDoS الذي يجعل الصفحات التي يتم تقديمها عبر CDN غير قابلة للوصول

  • HMC (رمز تعريف HTTP) - يمكن للمهاجم استبدال أحرف خاصة (\n، \r، \a) في الطلب، والتي تعتبر غير صالحة على الخادم المصدر، ولكن يتم تجاهلها في CDN.

    هجوم CPDoS الذي يجعل الصفحات التي يتم تقديمها عبر CDN غير قابلة للوصول

تبين أن CDN CloudFront المستخدم في Amazon Web Services (AWS) هو الأكثر عرضة للهجوم. قامت أمازون الآن بإصلاح المشكلة عن طريق حظر التخزين المؤقت للأخطاء، لكن الأمر استغرق من الباحثين أكثر من ثلاثة أشهر لإضافة الحماية. أثرت المشكلة أيضًا على Cloudflare وVarnish وAkamai وCDN77 و
بسرعة، ولكن الهجوم من خلالها يقتصر على الخوادم المستهدفة التي تستخدم IIS، ASP.NET، قارورة и لعب 1. هذا مدونمن المحتمل أن يتم مهاجمة 11% من نطاقات وزارة الدفاع الأمريكية، و16% من عناوين URL من قاعدة بيانات أرشيف HTTP، وحوالي 30% من أكبر 500 موقع وفقًا لتصنيف Alexa.

كحل بديل لمنع الهجوم على جانب الموقع، يمكنك استخدام رأس "Cache-Control: no-store"، الذي يمنع تخزين الاستجابات مؤقتًا. بعض شبكات CDN، مثل
CloudFront وAkamai، يمكنك تعطيل التخزين المؤقت للأخطاء على مستوى إعدادات ملف التعريف. للحماية، يمكنك أيضًا استخدام جدران الحماية لتطبيقات الويب (WAF، جدار حماية تطبيقات الويب)، ولكن يجب تنفيذها على جانب CDN أمام مضيفي التخزين المؤقت.

المصدر: opennet.ru

إضافة تعليق