تتسع دائرة الهجمات السيبرانية التي تستهدف سلسلة التوريد البرمجية، حيث تم الكشف عن استهداف حملة “TeamPCP” الخبيثة لتدفقات عمل GitHub Actions إضافية، مستخدمةً نفس أسلوب سرقة بيانات الاعتماد الذي استُخدم في اختراق ماسح الثغرات Trivy.
ويشير هذا التطور إلى أن الجهات الخبيثة نجحت في استغلال المعلومات المسروقة من الهجوم السابق لدعم عملياتها وتوسيع نطاق نفوذها في بيئات التطوير البرمجي.
توسع هجمات TeamPCP على GitHub Actions
أعلنت شركة Sysdig للأمن السيبراني عن رصدها لنفس برمجيات سرقة بيانات الاعتماد التي استخدمتها حملة TeamPCP في استهداف تدفقات عمل GitHub Actions لشركتي Checkmarx و Aqua Security. وقد حدث هذا بعد أربعة أيام فقط من الكشف عن الهجوم الأول على Trivy، ماسح الثغرات الشهير.
تشير هذه الملاحظات إلى أن بيانات الاعتماد المخترقة من هجوم Trivy قد تم استخدامها بشكل مباشر لتسميم تدفقات عمل أخرى في المستودعات المتأثرة، مما يوضح الاستراتيجية الممنهجة للمهاجمين.
آلية عمل برمجيات سرقة البيانات
تعمل برمجيات TeamPCP Cloud Stealer المصممة لسرقة مجموعة واسعة من بيانات الاعتماد والأسرار، بما في ذلك مفاتيح SSH، ومعلومات Git، وحسابات الخدمات السحابية مثل AWS و Google Cloud و Microsoft Azure، بالإضافة إلى Kubernetes و Docker وملفات .env وقواعد البيانات و VPNs.
إضافة إلى ذلك، تقوم هذه البرمجيات بسرقة إعدادات CI/CD، وبيانات محافظ العملات المشفرة، وروابط ويب هوكات Slack و Discord. هذا النطاق الواسع من الأسرار المستهدفة يوضح الأهمية الكبيرة التي توليها فرق التطوير لهذه المعلومات الحساسة.
أساليب خداع وتسلل مبتكرة
مثلما حدث في هجوم Trivy، اكتشفت Sysdig أن المهاجمين يقومون بإجبار دفع (force-push) علامات (tags) إلى التزامات خبيثة تحتوي على حمولة البرمجية الضارة “setup.sh”. ويتم إرسال البيانات المسروقة إلى النطاق “checkmarx[.]zone” في شكل أرشيف مشفر باسم “tpcp.tar.gz”.
في النسخة الجديدة من الهجوم، يقوم المهاجمون بإنشاء مستودع جديد باسم “docs-tpcp” باستخدام “GITHUB_TOKEN” الخاص بالضحية لتخزين البيانات المسروقة كآلية احتياطية في حال فشل إرسالها إلى الخادم الأساسي. وهذا يوضح مرونة المهاجمين وقدرتهم على التكيف.
تعتبر هذه التقنية “سنة أسماء النطاقات المغلوطة الخاصة بالمورد” (typosquatting) تقنية خداع متعمدة. حيث يظهر لمدققي سجلات CI/CD حركة مرور (curl) نحو ما يبدو وكأنه نطاق المورد الخاص بالإجراء نفسه، مما يقلل من احتمالية الكشف اليدوي.
خطر تسلسل الاختراقات
تتيح وظيفة البرمجية الخبيثة الأساسية، وهي حصاد بيانات الاعتماد من ذاكرة مسرّعات CI، للمهاجمين استخراج رموز الوصول المميزة لـ GitHub (PATs) وغيرها من الأسرار عندما يتم تنفيذ إجراء Trivy المخترق ضمن سير عمل. وما يزيد الأمر سوءاً هو أنه إذا كانت هذه الرموز تملك صلاحيات كتابة على المستودعات التي تستخدم إجراءات Checkmarx أيضاً، يمكن للمهاجم استخدامها لدفع تعليمات برمجية خبيثة.
يفتح هذا الباب أمام مخاطر تسلسل تعطل سلسلة التوريد، حيث يقوم إجراء مخترق بالتقاط أسرار تُستخدم لتسهيل اختراق إجراءات أخرى. هذا النظام المتكامل للاختراق يؤكد على الطبيعة المتصاعدة للتهديدات السيبرانية.
هجمات ضد بيئات تطوير VS Code
وفقاً لشركة Wiz، يبدو أن الهجوم تم عبر اختراق حساب الخدمة “cx-plugins-releases”، حيث قام المهاجمون أيضاً بنشر إصدارات محملة ببرمجيات خبيثة من ملحقات Open VSX، وهي “ast-results” (الإصدار 2.53.0) و “cx-dev-assist” (الإصدار 1.7.0). تجدر الإشارة إلى أن إصدارات VS Code Marketplace لم تتأثر.
بمجرد تفعيل الملحق، تتحقق الحمولة الخبيثة مما إذا كان لدى الضحية بيانات اعتماد لواحد على الأقل من مزودي الخدمات السحابية، مثل GitHub و AWS و Google Cloud و Microsoft Azure. إذا تم اكتشاف أي بيانات اعتماد، يتم استرجاع حمولة المرحلة التالية من نفس النطاق (“checkmarx[.]zone”).
تستخدم الحمولة طرق تنفيذ متعددة مثل npx و bunx و pnpx أو yarn dlx، مما يغطي مديري الحزم الرئيسيين للغة JavaScript. تحتوي الحزمة المسترجعة على برنامج سرقة بيانات اعتماد شامل. ثم يتم تشفير بيانات الاعتماد التي تم حصادها، باستخدام المفاتيح كما في حملات أخرى، وإرسالها إلى “checkmarx[.]zone/vsx” كـ tpcp.tar.gz.
في الأنظمة غير المتعلقة بـ CI، تقوم البرمجية الخبيثة بتثبيت آليات استمرارية عبر خدمة مستخدم systemd. يقوم سكريبت الاستمرارية بفحص الرابط https://checkmarx[.]zone/raw كل 50 دقيقة بحثاً عن حمولات إضافية، مع وجود مفتاح إيقاف يوقف التنفيذ إذا احتوى الرد على كلمة “youtube”. حالياً، يعيد الرابط التوجيه إلى أغنية “The Show Must Go On” لفرقة Queen.
توصيات للحماية وتقليل المخاطر
للتخفيف من حدة التهديد، يُنصح المستخدمون باتخاذ الإجراءات التالية على الفور:
- تدوير جميع الأسرار والرموز وبيانات الاعتماد السحابية التي كانت متاحة لمسرّعات CI خلال النافذة الزمنية المتأثرة.
- تدقيق سجلات تشغيل GitHub Actions بحثاً عن أي إشارة إلى “tpcp.tar.gz”، أو “scan.aquasecurity[.]org”، أو “checkmarx[.]zone” في سجلات المسرّعات.
- البحث في مؤسسة GitHub عن مستودعات تحمل اسم “tpcp-docs” أو “docs-tpcp”، والتي تشير إلى نجاح عملية إرسال البيانات عبر آلية الاحتياط.
- تثبيت إصدارات GitHub Actions باستخدام تجزئة الالتزام الكامل (full commit SHAs) بدلاً من علامات الإصدار، حيث يمكن فرض دفع العلامات.
- مراقبة اتصالات الشبكة الصادرة من مسرّعات CI إلى النطاقات المشبوهة.
- تقييد خدمة بيانات التعريف الخاصة بالنسخة (IMDS) من حاويات مسرّعات CI باستخدام IMDSv2.
في الأيام التي أعقبت الاختراق الأولي، قام عناصر TeamPCP بدفع صور Docker خبيثة لـ Trivy تحتوي على نفس برنامج السرقة، وقاموا بالاستيلاء على مؤسسة GitHub “aquasec-com” الخاصة بالشركة للتلاعب بعشرات المستودعات الداخلية.
كما لوحظ استهدافهم لعناقيد Kubernetes بواسطة برنامج نصي خبيث يقوم بمسح جميع الأجهزة عند اكتشافه لأنظمة تطابق المنطقة الزمنية والموقع الإيراني، مما يسلط الضوء على تصعيد جديد في طريقة عمل المجموعة.

