كشفت تقارير أمنية حديثة عن هجوم سلسلة توريد يستهدف مطوري PHP، حيث تم اكتشاف حزم خبيثة تتنكر في هيئة أدوات Laravel، وتقوم بنشر برمجية وصول عن بعد (RAT) تمنح المهاجمين سيطرة كاملة وغير ملحوظة على الأنظمة المتأثرة.
تم نشر هذه الحزم الضارة عبر Packagist، وهو المستودع الرسمي لحزم PHP ومشاريع Laravel، مما يمثل تهديدًا كبيرًا لأمن مطوري هذا النظام. يقدم الهجوم آلية تسمح للمهاجمين بالتسلل إلى خوادم الشركات واستغلال البيانات الحساسة.
هجوم “سلسلة التوريد” على حزم Laravel
استهدف المهاجم، المعروف بالاسم المستعار nhattuanbl، مجتمع مطوري PHP بشكل مباشر من خلال نشر حزم خبيثة تحت مظلة أدوات مساعدة لمشاريع Laravel. بدأت هذه الحزم في الظهور بين شهري يونيو وديسمبر من العام الحالي، مع أن حساب المهاجم على Packagist يعود إلى عام 2015.
من بين الحزم الست التي نشرها المهاجم، كانت ثلاث منها نظيفة تمامًا، بهدف بناء الثقة والمصداقية لدى المستخدمين. ومع ذلك، احتوت حزمتان، وهما nhattuanbl/lara-helper و nhattuanbl/simple-queue، على حمولة خبيثة متطابقة مخبأة داخل ملف src/helper.php.
أما الحزمة الثالثة، nhattuanbl/lara-swagger، فلم تحتوِ على أي تعليمات برمجية خبيثة بحد ذاتها، لكنها كانت تسحب بشكل صامت حزمة nhattuanbl/lara-helper كاعتمادية أساسية عبر Composer، مما جعلها غطاءً يبدو آمنًا لحمولة ضارة.
تفاصيل برمجية الوصول عن بعد (RAT)
تمكن محللو Socket.dev من تحديد برمجية الوصول عن بعد (RAT) التي يتم توزيعها عبر حزم Packagist الخبيثة. بمجرد تثبيت هذه الحزم، تتصل الحمولة الخبيثة بخادم القيادة والسيطرة (C2) على العنوان helper[.]leuleu[.]net عبر المنفذ 2096.
بعد ذلك، تقوم البرمجية بإرسال ملف تعريفي كامل للنظام، ثم تنتظر الأوامر من المشغل، مما يمنح المهاجم تحكمًا كاملًا عن بعد في المضيف المصاب. حتى لو توقف خادم C2 عن العمل، فإن التهديد لا يختفي، حيث تحاول برمجية RAT إعادة الاتصال كل 15 ثانية بشكل دائم، مما يسمح للمهاجم بإعادة توجيه الاتصال إلى خادم جديد في أي وقت دون تعديل الحمولة.
آلية الإصابة والانتشار
تم تصميم سلسلة الإصابة هذه بعناية فائقة لضمان التخفي في جميع المراحل. يتكون الملف الخبيث helper.php من 27,340 بايت ويتم تقديمه سطرًا واحدًا متواصلاً بعد علامة
تستخدم الحمولة ثلاثة طبقات مختلفة من التعمية (obfuscation). أولاً، يتم تشتيت تدفق التحكم إلى مئات القفزات العشوائية باستخدام goto. ثانيًا، يتم تشفير كل سلسلة نصية، بما في ذلك أسماء النطاقات وأسماء الأوامر ومسارات الملفات، باستخدام تسلسلات هروب سداسية عشرية أو ثمانية، فلا يظهر أي نص مقروء. ثالثًا، يتم إنشاء أسماء المتغيرات والدوال بشكل عشوائي.
تختلف آلية التنشيط اعتمادًا على الحزمة المصابة التي يقوم المطور بتثبيتها. في حزمة lara-helper، تسجل الحزمة مزود خدمة Laravel عبر آلية الاكتشاف التلقائي لـ Composer، ويتم تحميل helper.php مع كل عملية تشغيل للتطبيق. أما في حزمة simple-queue، فيقع تضمين الحمولة الخبيثة في مستوى نطاق الملف، مما يعني أن الحمولة تنشط بمجرد أن يحل مُحمِّل PHP التلقائي الفئة.
التأثير والتبعات الأمنية
يعد تأثير هذه الحملة واسع النطاق، حيث أن أي تطبيق Laravel قام بتثبيت هذه الحزم لديه الآن برمجية RAT تعمل بصمت في نفس العملية الخاصة بتطبيق الويب. يتيح ذلك للمهاجم الوصول إلى نفس متغيرات البيئة، وبيانات اعتماد قاعدة البيانات، ومفاتيح API المخزنة في ملفات .env.
تعمل الحمولة الخبيثة على أنظمة Windows و macOS و Linux، مما يجعلها تهديدًا متعدد المنصات لا يميز بناءً على نظام تشغيل المطور. بمجرد تفعيلها، تقوم برمجية RAT بإنشاء عملية خلفية منفصلة لنفسها، تمرر حجة helper، بينما تعود العملية الأم إلى التنفيذ الطبيعي، فلا يظهر التطبيق أي علامات واضحة للإصابة.
أي فريق قام بتثبيت nhattuanbl/lara-helper أو nhattuanbl/simple-queue أو nhattuanbl/lara-swagger، يجب أن يتعامل مع المضيف المتأثر على أنه مخترق بالكامل. يجب تدوير فورًا جميع الأسرار التي يمكن الوصول إليها من بيئة التطبيق، بما في ذلك كلمات مرور قواعد البيانات، ومفاتيح API، وقيم .env.
كما ينصح بإزالة الحزم وملف helper.php، والتدقيق في أي ملفات ذات أذونات chmod 0777، وحذف الملف المؤقت lockfile. يجب على الفرق أيضًا مراجعة حركة الخروج الصادرة إلى helper[.]leuleu[.]net:2096، والتدقيق في الاعتماديات العابرة، وتجنب استخدام قيود dev-master في بيئات الإنتاج، لأنها تتجاوز تثبيت الإصدارات.

