إعادة الخدمة

شرح هجمات ReDoS: ما هي هجمات حجب الخدمة باستخدام التعبيرات النمطية وكيفية الوقاية منها

يُعدّ هجوم حجب الخدمة باستخدام التعبيرات النمطية (ReDoS) خطرًا متزايدًا في أمان التطبيق الحديثمع ازدياد اعتماد الفرق على التحقق من صحة المدخلات ومطابقة الأنماط، قد يؤدي استخدام تعبير نمطي مصمم بشكل سيئ إلى ثغرات أمنية في الأداء يمكن للمهاجمين استغلالها لإبطاء الخدمات أو التسبب في انقطاعها. في الواقع، OWASP يصف ReDoS بأنه هجوم حجب الخدمة الذي يستغل حقيقة أن العديد من تطبيقات regex يمكن أن تصبح بطيئة للغاية، وأحيانًا مع وقت تشغيل ينمو بشكل كبير مع حجم الإدخال.

في الوقت نفسه، تُعدّ هجمات ReDoS خطيرة بشكل خاص في بيئات الحوسبة السحابية الأصلية و CI/CDفي البيئات التي تعتمد على الثغرات الأمنية، قد يؤثر تعبير نمطي واحد ضعيف في واجهة برمجة التطبيقات أو البوابة أو عملية المصادقة على التوافر على نطاق واسع. لهذا السبب، يجب على الفرق التعامل مع هجمات الحرمان من الخدمة المُعاد توجيهها (ReDoS) كمخاطر حقيقية على التوافر، وليس مجرد حالة نادرة.

والأهم من ذلك، أن هذه الثغرات الأمنية غالباً ما تبقى غير مكتشفة أثناء التطوير، لأن الأساليب التقليدية تركز على بناء الجملة بدلاً من سلوك التنفيذ. ونتيجة لذلك، يمكن لأنماط التعبيرات النمطية غير الفعالة أن تصل بسهولة إلى بيئة الإنتاج دون إثارة أي تنبيهات.

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

ما هو هجوم ReDoS (هجوم حجب الخدمة باستخدام التعبيرات النمطية)؟

ReDoS (Regular Expression Denial of Service) هي ثغرة أمنية تحدث عندما يتسبب نمط regex في التراجع المفرط، مما يؤدي إلى وقت تنفيذ أسي.

بعبارات بسيطة، يمكن أن يؤدي إدخال ضار إلى إجبار تطبيقك على قضاء وقت طويل للغاية في تقييم التعبير النمطي، مما يؤدي إلى حظر النظام وتدهور الأداء.

على سبيل المثال، الأنماط التي تحتوي على محددات كمية متداخلة مثل:

(a+)+

قد تصبح غير فعالة للغاية عند معالجة مدخلات معينة، خاصة عندما يتم تصميمها عمداً من قبل مهاجم.

على الرغم من أن هذا قد يبدو حالة شاذة، إلا أنه شائع بشكل مدهش في تطبيقات العالم الحقيقي، لا سيما في منطق التحقق من الصحة، ومدخلات النماذج، ومعالجة طلبات واجهة برمجة التطبيقات.

كيف تعمل هجمات إعادة الطلب (ReDoS)

لا يحتاج هجوم إعادة فرض الخدمة (ReDoS) إلى استغلال متقدم. بل يعتمد على استغلال سلوك محرك التعبيرات النمطية المتوقع.

تراجع كارثي

يستهدف المهاجم تعبيرًا نمطيًا (regex) يمكنه استيعاب مسارات مطابقة متعددة. ثم يقدم مدخلات تجبر المحرك على استكشاف معظم المسارات أو جميعها.

مدخلات صاغها المهاجمون

يرسل المهاجمون عادةً ما يلي:

  • سلاسل طويلة تحتوي على أحرف متكررة.
  • المدخلات التي تكاد تتطابق، ثم تفشل في النهاية.
  • حمولات تركز على الجزء الأكثر غموضًا من النمط.

انحطاط الأداء

لأن كل طلب يمكن أن يستهلك موارد المعالج، فإن التأثير يتراكم بسرعة:

  • زيادة زمن الاستجابة عبر نقاط النهاية.
  • استنفاد مخزون الخيوط.
  • تتعطل حلقة الأحداث في بيئات التشغيل أحادية الخيوط.

لا تتطلب هذه الهجمات ثغرات معقدة. بل تستغل عدم كفاءة مطابقة الأنماط، مما يجعل اكتشافها صعباً إذا كانت أدواتك تتحقق فقط من بناء الجملة أو الثغرات الأمنية المعروفة (CVEs).

يعيد

التأثير الواقعي لثغرات هجمات إعادة الهجوم

تُحقق هجمات ReDoS العنصر "أ" في مثلث CIA: التوافر. قد تبدو المشكلة وكأنها مشكلة استقرار، وليست حادثة أمنية، إلى أن تربط الخيوط ببعضها.

تباطؤ واجهة برمجة التطبيقات

يمكن لنقطة نهاية واحدة تستخدم تعبيرًا نمطيًا ضعيفًا أن ترفع استهلاك وحدة المعالجة المركزية بشكل كبير أثناء التحقق من صحة المدخلات أو توجيه الطلبات أو عمليات التحقق من المصادقة.

انقطاع الخدمة

تحت الضغط، يمكن أن تتسبب نقطة اتصال ReDoS في إعادة تشغيل الحاويات، وتدهور التوسع التلقائي، والتسبب في حدوث أعطال متتالية.

استنزاف الموارد

يمكن لهجمات ReDoS أن تستهلك:

  • وحدة المعالجة المركزية على عقد التطبيق.
  • الذاكرة الناتجة عن حالة التراجع.
  • خيوط العمل التي تعيق الطلبات الأخرى.

لأن هجمات ReDoS تستهدف الأداء بدلاً من كشف البيانات، فإن العديد من الفرق تقلل من شأن تأثيرها. ومع ذلك، فإن التوافر جزء أساسي من أمن التطبيقات، ويمكن أن تتحول الانقطاعات بسرعة إلى مخاطر على الأعمال.

التغييرات الجذرية هي المشكلة الحقيقية للثقة

عندما يقول المطورون إنهم لا يثقون في خاصية الإصلاح التلقائي، فإنهم غالباً ما يقصدون شيئاً واحداً محدداً للغاية: إنهم لا يثقون في أنها لن تتسبب في حدوث خلل ما.

تتجلى مشكلة الثقة هذه بشكل أوضح في معالجة التبعية.

قد يتوفر إصدار مُرَقَّع من حزمة برمجية مُعرَّضة للثغرات، لكن هذا لا يعني أن التحديث آمن. فقد يُزيل الإصدار المُرَقَّع دالةً يستخدمها تطبيقك، أو يُعيد تسمية واجهة برمجة تطبيقات، أو يُشدد شروط نوع البيانات، أو يُعدِّل سلوك التطبيق بطريقة تجتاز اختبارات الوحدة ولكنها تُسبب مشاكل في بيئة الإنتاج. في كثير من الفرق، لا تكمن التكلفة الحقيقية للمعالجة في تطبيق الرقعة، بل في دراسة نطاق تأثيرها.

لنأخذ مثالاً بسيطاً في لغة جافا. يعتمد برنامج ما على مكتبة حيث توجد طريقة مشتركة في الإصدار 1.x ولكنها تُزال في الإصدار 2.x.

هجمات إعادة الهجوم (ReDoS) والحوادث الأمنية في العالم الحقيقي

لا يُعدّ هجوم ReDoS مجرد ثغرة أمنية نظرية، بل تم استغلاله في تطبيقات واقعية، مما أثر على المكتبات وأنظمة الإنتاج واسعة الاستخدام.

فيما يلي بعض الأمثلة البارزة التي تسلط الضوء على تأثير أنماط التعبيرات النمطية غير الفعالة:

ثغرة أمنية في Moment.js تسمح بهجمات ReDoS

إحدى أكثر ثغرات ReDoS شهرةً متأثرة Moment.jsمكتبة بيانات جافا سكريبت شائعة الاستخدام.

  • تسبب نمط التعبير النمطي المصمم بشكل سيئ في تراجع مفرط
  • يمكن للمهاجمين التسبب في ارتفاع استهلاك وحدة المعالجة المركزية من خلال إدخال بيانات مُصممة خصيصًا.
  • أصبحت التطبيقات التي تستخدم Moment.js عرضة لهجمات حجب الخدمة

أظهرت هذه المشكلة كيف يمكن حتى للمكتبات الموثوقة أن تُدخل ثغرات أمنية متعلقة بالأداء في آلاف التطبيقات.

مكتبة التحقق من صحة البيانات في Node.js (validator.js)

ومثال آخر يتضمن Validator.js، ويستخدم عادةً للتحقق من صحة المدخلات.

  • اعتمدت بعض وظائف التحقق على التعبيرات النمطية غير الفعالة
  • قد تؤدي المدخلات الخبيثة إلى تأخير التنفيذ بشكل كبير
  • وقد أثر ذلك على واجهات برمجة التطبيقات وخدمات الواجهة الخلفية التي تعتمد على التحقق من صحة مدخلات المستخدم.

نظراً لأن validator.js يستخدم على نطاق واسع، فقد امتد التأثير عبر تطبيقات وخدمات متعددة.

انقطاع خدمة كلاود فلير (عطل ناتج عن استخدام التعبيرات النمطية)

حادثة بارزة شملت كلودفلاري، حيث تسبب نمط التعبير النمطي الخاطئ في انقطاع كبير للخدمة.

  • تسبب استخدام تعبير نمطي (regex) في بيئة الإنتاج في استهلاك مفرط لوحدة المعالجة المركزية (CPU).
  • أصبحت الأنظمة غير مستجيبة على مستوى العالم
  • تأثرت أجزاء كبيرة من الإنترنت مؤقتًا

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

لماذا تفشل أدوات الأمان التقليدية في مواجهة هجمات إعادة الهجوم (ReDoS)؟

هذا هو قسم التحويل لأنه يشرح الفجوة التي تشعر بها معظم الفرق: تشغيل الماسحات الضوئية، dashboardومع ذلك، لا يزال هجوم ReDoS يتسلل.

تركز الأدوات الثابتة على بناء الجملة

يمكن للعديد من الماسحات الضوئية أن تحدد "أنماط التعبيرات النمطية الخطيرة"، لكنها غالباً ما تفتقر إلى الثقة بشأن ما إذا كان النمط قابلاً للاستغلال حقاً في سياقك.

لا يوجد سياق تنفيذي

يتعلق هجوم ReDoS بسلوك وقت التشغيل. وتشير OWASP إلى أن العديد من تطبيقات التعبيرات النمطية قد تصل إلى حالات متطرفة وتعمل ببطء شديد، وأحيانًا يكون هذا البطء مرتبطًا بشكل كبير بحجم المدخلات.
إذا لم تفكر الأداة أبدًا في شكل الإدخال، أو شروط فشل المطابقة، أو مسارات التنفيذ، فسوف تفوتها المخاطر أو تغرقك في نتائج إيجابية خاطئة.

لا يوجد تحليل لإمكانية الاستغلال

قد يكون استخدام التعبير النمطي "محفوفًا بالمخاطر نظريًا" ولكنه غير عملي. في المقابل، قد يُمثل مُدقِّق "صغير" في نقطة نهاية عامة مشكلة حقيقية. وبدون سياق، تتجاهل الفرق التنبيهات أو تُبالغ في الإصلاح.

غالباً ما تفشل الماسحات الضوئية التقليدية في اكتشاف هجمات ReDoS لأنها لا تُقيّم سلوك التعبيرات النمطية أثناء التشغيل أو في ظل ظروف إدخال ضارة. وهنا تبرز أهمية منصات مثل Xygeni من خلال دمج التحليل مع تقييم المخاطر السياقية، مما يساعد الفرق على فهم ما إذا كان من الممكن بالفعل معالجة نقطة الضعف وما إذا كان لها تأثير فعلي.

كيفية اكتشاف ثغرات هجمات إعادة التفويض

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

تصميم آمن باستخدام التعبيرات النمطية

ابدأ بأنماط تقلل من الغموض. تجنب المحددات الكمية المتداخلة والبدائل المتداخلة.

اختبار واختبار عشوائي

اختبر أنماط التعبيرات النمطية باستخدام:

  • مدخلات طويلة جدًا.
  • مدخلات كادت أن تفشل لكنها فشلت في وقت متأخر.
  • رموز متكررة مصممة لتحفيز التراجع.

تحليل ثابت

استخدم التحليل الذي يُشير إلى البنى والأنماط الخطرة المعروفة والمتوافقة مع سي دبليو إي-1333.

التحقق من صحة وقت التشغيل

قم بتطبيق حدود طول الإدخال والمهل الزمنية حول تقييم التعبيرات النمطية كلما أمكن ذلك. إرشادات التحقق من صحة المدخلات الصادرة عن OWASPيحذر بشكل صريح من هجمات ReDoS ويسلط الضوء على أهمية تحديد الحد الأدنى والحد الأقصى لطول الإدخال.

تتجاوز حلول أمن التطبيقات المتقدمة مثل Xygeni مجرد اكتشاف الأنماط من خلال تحليل التعليمات البرمجية في سياق سير العمل ومساعدة الفرق على التركيز على القضايا التي من المرجح أن تكون مهمة في السيناريوهات الحقيقية، مما يقلل من النتائج الإيجابية الخاطئة ويسرع عملية المعالجة.

كيفية منع هجمات إعادة الهجوم (ReDoS)

الوقاية هي مزيج من أنماط أكثر أمانًا، ومدخلات أكثر أمانًا، وخيارات تشغيل أكثر أمانًا.

تجنب استخدام المحددات الكمية المتداخلة

غالباً ما يؤدي التكرار المتداخل إلى أسوأ حالات التراجع المفاجئ.

تحديد حجم الإدخال

هذا هو أبسط وأكثر الحلول موثوقية للتخفيف من المخاطر. حدد حدودًا قصوى لطول المدخلات التي تجتاز التحقق من صحة التعبيرات النمطية. يؤكد مشروع OWASP على أهمية حدود الطول كجزء أساسي من التحقق الآمن من صحة المدخلات.

استخدم محركات التعبيرات النمطية الآمنة كلما أمكن ذلك

عندما يكون بإمكانك اختيار المحرك، فضل اختيار محرك مصمم لتجنب التراجع الكارثي. لعبة جوجل RE2 يُعتبر بديلاً آمناً لمحركات التعبيرات النمطية التي تعتمد على التراجع.

التحقق من صحة المدخلات باستخدام عمليات فحص متعددة الطبقات

لا تعتمد على تعبير نمطي واحد لجميع عمليات التحقق. ادمج ما يلي:

  • قوائم الشخصيات المسموح بها،
  • تدقيق صارم في طول البيانات،
  • وأنماط أبسط لكل حقل.

يتطلب منع هجمات الحرمان من الخدمة المتكررة (ReDoS) ممارسات برمجة آمنة و التحقق المستمر طوال دورة حياة التطويروخاصة مع توسع نطاق التطبيقات وتزايد الاعتماديات.

كيف تساعد شركة Xygeni في اكتشاف ومنع هجمات ReDoS

تساعد Xygeni فرق DevSecOps على اكتشاف ومنع ثغرات ReDoS من خلال الجمع بين طبقات متعددة من التحليل.

تشمل القدرات الرئيسية ما يلي:

  • الكشف عن أنماط التعبيرات النمطية المعرضة للخطر أثناء التطوير
  • تحليل تدفقات البيانات ومسارات التنفيذ
  • تحديد الثغرات الأمنية القابلة للاستغلال، وليس فقط الثغرات النظرية.
  • الاندماج في CI/CD pipelines للمسح المستمر
  • إرشادات عملية للمعالجة للمطورين

بدلاً من إغراق الفرق بالتنبيهات، تعطي Xygeni الأولوية لـ الثغرات التي يمكن الوصول إليها فعلياً ومؤثرة.

وهذا يسمح للفرق بإصلاح المشكلات الحقيقية بشكل أسرع، دون إبطاء عملية التطوير.

أفضل الممارسات لفرق DevSecOps

أمن التحول إلى اليسار

اجعل عمليات التحقق من هجمات ReDoS جزءًا من نفس الروتين الخاص بمراجعة التعليمات البرمجية واختبارات الوحدة.

أتمتة المسح الضوئي

قم بإجراء فحوصات على كل pull request لذا فإن مخاطر التعبيرات النمطية لا تنتظر المراجعات الدورية.

مراقبة التبعيات

تظهر ثغرات Regex أيضًا في التبعيات ومكتبات تحليل المدخلات، لذا حافظ على نظافة التبعيات بشكل صارم.

التحقق من صحة المدخلات باستمرار

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

من خلال دمج الأمن مباشرة في سير عمل التطوير، يمكن للفرق منع الثغرات الأمنية المتعلقة بالأداء مثل هجمات ReDoS قبل وصولها إلى مرحلة الإنتاج.

تبدأ الوقاية من هجمات الحرمان من الخدمة المتكررة (ReDoS) برؤية خالية من الظلال

غالبًا ما يتم تجاهل هجمات إعادة التفويض (ReDoS)، مع أنها قد تؤثر بشكل كبير على أداء التطبيقات وتوافرها. يُعرّف مشروع OWASP هجمات إعادة التفويض بأنها خطر حجب الخدمة الناجم عن سلوكيات التعبيرات النمطية المتطرفة أثناء التشغيل.
هذا يعني أنك تحتاج إلى أكثر من مجرد المسح الأساسي. أنت بحاجة إلى السياق، وتحديد الأولويات، والأتمتة.

إذا تعاملت مع التعبيرات النمطية (regex) كما لو كانت شفرة برمجية قابلة للفشل عند تحكم المهاجم بها، فستتمكن من اكتشاف هجمات الحرمان من الخدمة (ReDoS) مبكرًا، وبالتالي إطلاق أنظمة أكثر أمانًا. باستخدام Xygeni، تستطيع الفرق تقليل التشويش، وتحديد أولويات المخاطر الحقيقية، وتعزيز ضوابط أمن التطبيقات داخليًا. CI/CD مهام سير العمل.

خاتمة

من السهل إدخال ثغرات ReDoS ويصعب اكتشافها بدون السياق المناسب.

بينما تركز الأدوات التقليدية على تحديد المشكلات، فإن أمن التطبيقات الحديث يتطلب فهم الثغرات الأمنية المهمة بالفعل.

لذلك، للبقاء في المقدمة، تحتاج الفرق إلى الرؤية وتحديد الأولويات والأتمتة التي تعمل معًا عبر دورة حياة التطوير.

هنا يكمن تميز Xygeni. فمن خلال التركيز على المخاطر القابلة للاستغلال، تساعد الفرق على اكتشاف المشكلات مبكراً، وتقليل التشويش، وتأمين التطبيقات من مرحلة التطوير إلى مرحلة النشر.

في نهاية المطاف، يعني بناء برامج آمنة اليوم تجاوز مجرد المسح الضوئي واعتماد نهج سياقي وفوري للأمان.

ابدأ ببناء تطبيقات آمنة ومرنة باستخدام الكشف في الوقت الحقيقي والأمان السياقي.

الأسئلة الأكثر شيوعًا (FAQ)

ما هو هجوم إعادة الطلب (ReDoS)؟

هجوم ReDoS (هجوم حجب الخدمة باستخدام التعبيرات النمطية) هو نوع من أنواع الثغرات الأمنية حيث يمكن استغلال أنماط التعبيرات النمطية غير الفعالة للتسبب في وقت معالجة مفرط، مما يؤدي إلى تدهور الأداء أو تعطل التطبيقات.

لماذا يُعدّ هجوم RedDoS خطيرًا في التطبيقات الحديثة؟

يمكن أن تؤثر هجمات إعادة الهجوم (ReDoS) على توافر التطبيقات من خلال استهلاك موارد وحدة المعالجة المركزية وإبطاء الخدمات. في بيئات الحوسبة السحابية، قد يتفاقم هذا الأمر بسرعة ليتحول إلى مشاكل في أداء النظام بأكمله.

كيف يمكن للمطورين منع ثغرات هجمات إعادة التفويض (ReDoS)؟

يمكن للمطورين منع هجمات ReDoS عن طريق تجنب أنماط التعبيرات النمطية المعقدة، والحد من حجم المدخلات، واستخدام محركات تعبيرات نمطية آمنة، ودمج عمليات التحقق الأمني ​​في CI/CD pipelines.

هل تستطيع أدوات الأمان التقليدية اكتشاف هجمات ReDoS؟

تواجه معظم الأدوات التقليدية صعوبة في اكتشاف هجمات ReDoS لأنها لا تحلل سلوك وقت التشغيل أو قابلية الاستغلال. توفر حلول أمن التطبيقات المتقدمة اكتشافًا أفضل من خلال تقييم كيفية تنفيذ التعليمات البرمجية في سيناريوهات حقيقية.

كيف تساعد شركة Xygeni في منع هجمات ReDoS؟

يكشف برنامج Xygeni عن أنماط التعبيرات النمطية الضعيفة، ويحلل مسارات التنفيذ، ويحدد أولويات المخاطر القابلة للاستغلال. وهو يتكامل مع CI/CD pipelineويقدم إرشادات عملية للمطورين بشأن المعالجة.

عن المؤلف

المؤسس المشارك والرئيس التنفيذي للتكنولوجيا

فاطمة Said متخصص في المحتوى الموجه للمطورين في مجالات أمن التطبيقات، وأمن عمليات التطوير، و... software supply chain securityإنها تحول إشارات الأمان المعقدة إلى توجيهات واضحة وقابلة للتنفيذ تساعد الفرق على تحديد الأولويات بشكل أسرع، وتقليل التشويش، وإصدار كود أكثر أمانًا.

 
أدوات تحليل التركيبات البرمجية sca
إعطاء الأولوية للمخاطر التي تتعرض لها برامجك، ومعالجتها، وتأمينها
احصل على حسابك المجاني.
أي بطاقة ائتمان.

قم بتأمين تطوير البرامج الخاصة بك وتسليمها

مع مجموعة منتجات Xygeni