كشفت شركة الأمن السيبراني Wiz عن ثغرة أمنية حرجة، تم ترميزها باسم “CodeBreach”، في خدمة Amazon Web Services (AWS) CodeBuild. سمحت هذه الثغرة، التي تم إصلاحها في سبتمبر 2025، لمهاجمين محتملين بالاستيلاء الكامل على مستودعات GitHub الخاصة بـ AWS، بما في ذلك مجموعة AWS JavaScript SDK، مما قد يعرض كل بيئة AWS للخطر.
أوضح الباحثان يوفال أفرامى ونير أوفيلد في تقرير أن استغلال CodeBreach كان يمكن أن يسمح بحقن أكواد خبيثة تؤدي إلى اختراق شامل للمنصة. لم يقتصر التأثير المحتمل على التطبيقات التي تعتمد على SDK، بل امتد ليشمل واجهة AWS Console نفسها، مما يهدد كل حساب AWS.
ثغرة CodeBreach في AWS CodeBuild
وفقاً لـ Wiz، نشأت هذه الثغرة عن ضعف في مسارات التكامل المستمر (CI) سمح للمهاجمين غير المصرح لهم بالوصول إلى بيئة البناء. تمكن هؤلاء المهاجمون من تسريب بيانات اعتماد مميزة، مثل رموز مسؤول GitHub، واستخدامها لدفع تغييرات خبيثة إلى المستودعات المخترقة، مما يفتح الباب لهجمات سلسلة التوريد.
آلية عمل الثغرة
تتعلق المشكلة الأساسية بمرشحات استدعاءات الويب (webhooks) التي تقدمها AWS لضمان تشغيل عمليات البناء فقط عند وقوع أحداث محددة. على سبيل المثال، يمكن تكوين AWS CodeBuild بحيث يتم تشغيل عملية بناء عند الالتزام بتغييرات في فرع معين، أو عندما يتطابق معرف حساب GitHub أو GitHub Enterprise Server (ACTOR_ID) مع نمط تعبير نمطي معين.
ومع ذلك، وجد الباحثون أن هذه المرشحات، في حالة مستودعات معينة، كانت تحتوي على خلل قاتل. تم تطبيق مرشحات ACTOR_ID في أربعة مستودعات مفتوحة المصدر تديرها AWS، وهي: aws-sdk-js-v3، aws-lc، amazon-corretto-crypto-provider، و awslabs/open-data-registry.
تعاني هذه المستودعات من “خلل قاتل” يتمثل في فشل مرشحات التعبير النمطي في تضمين رموز البداية (^) والنهاية ($) الضرورية لضمان تطابق تام. هذا سمح لأي معرف مستخدم GitHub يكون “سوبر ستريم” لمعرف معتمد، على سبيل المثال، تجاوز المرشح وتشغيل عملية البناء.
استغلال معرفات المستخدم المتسلسلة
بما أن GitHub يعين معرفات المستخدمين الرقمية بشكل متسلسل، تمكن باحثو Wiz من التنبؤ بأن معرفات المستخدمين الجديدة، التي يصل طولها حالياً إلى تسعة أرقام، ستحل محل معرفات المسؤولين المعتمدين المكونة من ستة أرقام تقريباً كل خمسة أيام. بالاقتران مع استخدام تطبيقات GitHub لأتمتة إنشاء التطبيقات (والتي بدورها تنشئ مستخدم روبوت مطابق)، أصبح من الممكن توليد معرف مستهدف.
تم تحقيق ذلك عن طريق تشغيل مئات التسجيلات الجديدة لمستخدمي الروبوتات. بمجرد الحصول على معرف المستخدم المستهدف، يمكن للمهاجم تشغيل عملية بناء والحصول على بيانات اعتماد GitHub الخاصة بمشروع aws-sdk-js-v3 CodeBuild. هذه البيانات كانت تتضمن رمز وصول شخصي (PAT) يخص مستخدم aws-sdk-js-automation، والذي يتمتع بصلاحيات إدارية كاملة على المستودع.
التداعيات والمخاطر
يمكّن هذا الوصول المرتفع المهاجم من دفع التعليمات البرمجية مباشرة إلى الفرع الرئيسي، والموافقة على طلبات السحب، واستخلاص أسرار المستودع، مما يمهد الطريق لهجمات سلسلة التوريد. هذه الثغرة الأمنية، التي تم اكتشافها في خدمة AWS CodeBuild، تمثل مثالاً واضحاً على الأهداف التي يسعى إليها المهاجمون في بيئات CI/CD.
أقرت AWS بالخلل، مؤكدة أنه كان عبارة عن “تكوينات خاطئة خاصة بالمشروع في مرشحات معرفات مستخدم استدعاءات الويب لهذه المستودعات، وليس مشكلة في خدمة CodeBuild نفسها”. وأوضحت الشركة أنها قامت بتصحيح المشكلات، وتنفيذ إجراءات تخفيف إضافية، بما في ذلك تدوير بيانات الاعتماد وتأمين عمليات البناء.
التوصيات الأمنية
للتخفيف من مثل هذه المخاطر، توصي AWS بتمكين بوابة موافقة طلب السحب الجديدة (Pull Request Comment Approval)، واستخدام الموجهات المستضافة في CodeBuild لإدارة مشغلات البناء، والتأكد من أن أنماط التعبير النمطي في مرشحات استدعاءات الويب مؤمّنة. كما يجب إنشاء رمز وصول شخصي فريد لكل مشروع CodeBuild، وتقييد أذونات الرمز إلى الحد الأدنى المطلوب.
أكدت AWS أنها لم تجد أي دليل على استغلال ثغرة CodeBreach في البرية. ومع ذلك، فإن اكتشاف مثل هذه الثغرات يسلط الضوء على أهمية الأمان المستمر في مسارات تطوير البرمجيات، خاصة في سياق خدمات الحوسبة السحابية.

