التحديث 1520 بالتوقيت العالمي، 30 أبريل 2026: تم اختراق حزمتين إضافيتين اليوم:
حزمة NPM: الاتصال الداخلي العميل@7.0.5
حزمة باي بي آي البرق@2.6.2 و 2.6.3
يبدو أن كلتا الحزمتين تحتويان على نفس الوظيفة الضارة التي تمت مشاهدتها مسبقًا في عملية SAP. التحليل مستمر.
التحديث 2140 بالتوقيت العالمي، 29 أبريل 2026: تحليل الحمولة الصافية للعميل والاتصال الداخلي
يُظهر تحليل الحمولات الضارة تطورًا في تقنيات الترشيح وجمع بيانات الاعتماد. بالإضافة إلى عمليات التصفية السابقة المستندة إلى GitHub، تستفيد البرامج الضارة الآن من البنية التحتية المخصصة، وفي المقام الأول النطاق zero.masscan.cloud، مع تنفيذ آلية احتياطية ديناميكية أيضًا.
يسترد الإجراء الاحتياطي بيانات التكوين من GitHub من خلال البحث عن الالتزامات التي تحتوي على كلمة رئيسية محددة (“beautifulcastle”)، والتي تتضمن حمولة مشفرة base64 تشير إلى نقطة نهاية التصفية (حاليًا يتم حلها لـ 94.154.172[.]43/v1/telemetry. يسمح هذا الأسلوب للمهاجمين بتحديث البنية التحتية للتسلل دون نشر إصدارات جديدة من الحزم الضارة.
تعمل الحمولة الموجودة في حزمة الاتصال الداخلي للعميل على توسيع القدرات بشكل أكبر من خلال المسح النشط للأسرار في بيئات Kubernetes وHashiCorp Vault. فهو يستعلم عن نقاط نهاية خدمة Kubernetes وتكوينات Vault، باستخدام المطابقة الشاملة المستندة إلى regex لاستخراج بيانات الاعتماد مثل مفاتيح AWS والرموز المميزة لـ GitHub وnpm وسلاسل اتصال قاعدة البيانات والمفاتيح الخاصة وأسرار واجهة برمجة التطبيقات (على سبيل المثال، Stripe وSlack وTwilio). يشير هذا إلى تركيز قوي على البيئات السحابية الأصلية وخطوط CI/CD، مما يزيد بشكل كبير من التأثير المحتمل للتسوية من خلال الحصاد الآلي لبيانات الاعتماد على نطاق واسع.
التحديث 1745 بالتوقيت العالمي، 29 أبريل 2026: تم تأكيد إسناد TeamPCP وتوثيق الوظائف الجديدة.
أدت عملية جديدة لسلسلة التوريد من TeamPCP تطلق على نفسها اسم “Mini Shai Hulud” إلى اختراق حزم npm المتعلقة بـ SAP عن طريق حقن نصوص برمجية ضارة للتثبيت المسبق يتم تنفيذها أثناء تثبيت التبعية. تستفيد الحملة من حمولة متعددة المراحل لحصد أسرار المطورين وCI/CD عبر GitHub وnpm ومقدمي الخدمات السحابية الرئيسيين، وتقوم بتسريب البيانات عبر مستودعات GitHub التي يتحكم فيها المهاجم. ويحتوي أيضًا على تعليمات برمجية مصممة للنشر عبر الرموز المميزة المخترقة. من المحتمل جدًا أن يكون TeamPCP مسؤولاً عن هذه الحملة، استنادًا إلى مفتاح RSA العام المشترك والتداخلات في إجراءات التشفير وحواجز الحماية في المنطقة.
تم إنشاء إصدارات ضارة من حزم النظام البيئي SAP المشروعة (على سبيل المثال، `@cap-js/sqlite`، `@cap-js/postgres`) عن طريق تعديلها لتشمل برنامج نصي `للتثبيت المسبق` ينفذ `setup.mjs` تلقائيًا أثناء `تثبيت npm`. يقوم هذا البرنامج النصي بتنزيل وقت تشغيل Bun وتنفيذ حمولة مشوشة (`execution.js`)، مما يتيح تنفيذ التعليمات البرمجية التي يتحكم فيها المهاجم قبل اكتمال تثبيت الحزمة.
عند تنفيذها، تكون حمولة المرحلة الثانية عبارة عن إطار عمل لسرقة بيانات الاعتماد والنشر مصمم لاستهداف كل من بيئات المطورين وخطوط أنابيب CI/CD. فهو يجمع البيانات الحساسة بما في ذلك رموز GitHub، وبيانات اعتماد npm، وأسرار السحابة (AWS، وAzure، وGCP)، ورموز Kubernetes، وأسرار GitHub Actions – مع الاستفادة من التقنيات المتقدمة مثل استخراج الأسرار من ذاكرة التشغيل. يحدث التسلل عبر مستودعات GitHub العامة، حيث ينشر حمولات مشفرة. بالإضافة إلى ذلك، تشتمل البرامج الضارة على منطق نشر لإصابة مستودعات إضافية وتوزيعات للحزم.
أثناء الإعداد الأولي، تقوم البرامج الضارة بإجراء فحص للنظام لتحديد ما إذا كان الجهاز المخترق مهيأًا للغة الروسية. يقوم بذلك عن طريق فحص إعدادات التاريخ/الوقت المحلية للنظام ومتغيرات لغة البيئة الخاصة به. إذا بدأت أي من هذه القيم بـ “ru”، فإن الحمولة تنتهي فجأة من تلقاء نفسها، مما يضمن عدم تسرب أي بيانات من الأنظمة الناطقة باللغة الروسية.
في حين أننا نقدر أن هذه الحملة نشطة حاليًا، فإن حجم المستخدمين المخترقين ومستودعات التسلل التي أنشأها المهاجمون يبدو أقل بكثير من حجم Shai-Hulud أو Shai-Hulud 2.0.
تحديثات ملحوظة
تتبع هذه العملية على نطاق واسع نفس الأساليب المستخدمة في عمليات TeamPCP السابقة، ولكنها تحتوي على عدد من التطورات الملحوظة.
الترشيح على جيثب
في عملية Bitwarden، ستحاول البرامج الضارة إخراج كتلة الأسرار المشفرة إلى GitHub فقط في حالة فشل آلية الترشيح الأساسية إلى مجال القيادة والسيطرة. في هذه العملية، يعد التسلل إلى GitHub هو الطريقة الأساسية والوحيدة لاستخلاص الأسرار. الآليات متشابهة إلى حد كبير، باستخدام نفس نظام التسمية (كلمة 1-كلمة 2-رقم) ونفس وصف الريبو “”تخزين تكوين Checkmarx” أكبر تغيير هو أن عملية SAP تستخدم واجهة برمجة تطبيقات GraphQL، بدلاً من واجهة برمجة تطبيقات REST، التي تم استخدامها في عملية Bitwarden.
الرجوع إلى تسمم جيثب
إذا كانت مجموعة بيانات الاعتماد غير قادرة على تحديد أ gh[op]_ (PAT/OAuth) الرمز المميز و GITHUB_REPOSITORY تم تعيينه وسيحاول تسميم مستودع GitHub هذا. لا يفعل هذا إلا إذا ghs_ أو ghs_old الرموز المميزة موجودة (ولا توجد رموز GitHub PAT المميزة). يتم وضع الملفات أدناه في الريبو، في محاولة لإصابة المستخدمين الذين يفتحون الريبو في Claude Code أو VSCode:
| طريق | محتوى | غاية | التجزئة |
|---|---|---|---|
| .كلود/تنفيذ.js | نسخة ذاتية من الحمولة الجاري تشغيلها عبر Bun.main | الحمولة لمستخدمي كلود كود | مطابق للتنفيذ الأولي.js |
| .كلود/setup.mjs | القطارة | القطارة التي تقوم بتنزيل Bun وتنفيذ الحمولة | مطابق لملف setup.mjs الأولي |
| .كلود/settings.json | تكوين خطافات كلود كود | خطاف Claude Code SessionStart – يقوم بتشغيل العقدة .vscode/setup.mjs في كل جلسة |
SHA256: 14eb4ce01dd4307759887ff819359b70d7d9ff709ecde039a5abc1aac325b128 SHA1: ff7ed7a0fa1c43eed01809d076feedbaed464fc7 MD5: 00ca0c04d247ef09f2b2acc452029345 |
| .vscode/tasks.json | تكوين مهمة VS Code | مهمة VS Code “إعداد البيئة” – تقوم بتشغيل العقدة .claude/setup.mjs في المجلد المفتوح (runOn: FolderOpen) |
SHA256: 927387d0cfac1118df4b383decc2ea6ba49c9d2f98b47098bcbcba1efc026e1f SHA1: 7b0278216ac31ec18eca9eb8bc1c1261a1b26f6c MD5: dbb9b09957113463bbeb420c2c4108b5 |
| .vscode/setup.mjs | نفس القطارة مثل .clude/setup.mjs | قطارة لمسار تنفيذ VS Code | مطابق لملف setup.mjs الأولي |
سرقة بيانات اعتماد المتصفح
تضيف عملية SAP القدرة على سرقة بيانات الاعتماد من متصفحات متعددة (Chrome وSafari وEdge وBrave وChromium) وتصفية أي كلمات مرور موجودة هناك. هذه الميزة لم تكن موجودة في أي من العمليات السابقة.
آلية التراجع للترشيح
بالتوافق مع هجمات Shai-Hulud السابقة، يستخدم هذا البديل الجديد آلية احتياطية لاستخراج الأسرار من البيئات التي تفتقر إلى رموز GitHub (GH) أو بيانات الاعتماد المحلية. إذا فشل تجميع بيانات الاعتماد المحلية، تبحث البرامج الضارة بشكل نشط في GitHub عن عمليات التنفيذ التي تبدأ بعبارة توقيع محددة: “OhNoWhatsGoingOnWithGitHub”.
هذه العبارة هي رسالة الالتزام الافتراضية التي تستخدمها البرامج الضارة عند تصفية البيانات. يُلحق بهذه العبارة رمز GitHub المشفر مزدوج القاعدة 64:
"message": "OhNoWhatsGoingOnWithGitHub:WjJodlh[Redacted]"
وبمجرد تحديد موقعها، تقوم البرامج الضارة باستخراج هذا الرمز المميز والتحقق من صحته لتسهيل عملية استخراج المزيد من البيانات. وبالتالي، حتى لو لم تقم مؤسستك بإنشاء أي مستودعات جديدة، فقد تظل أسرارك معرضة للخطر ويتم توجيهها إلى مستودع غير ذي صلة تمامًا ويتحكم فيه المهاجم.
الإسناد
يقيّم Wiz بثقة عالية أن هذا هو عمل مشغلي TeamPCP أنفسهم الذين قاموا سابقًا باختراق مكتبات متعددة. يرجع هذا التقييم إلى مفتاح RSA العام المشترك المستخدم لتشفير الأسرار المسربة. وهذا يعني أن نفس المفتاح الخاص سيقوم بفك تشفير الحمولات، مما يحد من إمكانية الوصول إلى البيانات المسحوبة إلى TeamPCP.
القواسم المشتركة الإضافية:
-
تحتوي البرامج الضارة على فحص مبكر للغة النظام، وإذا تبين أنها “ru”، فإن البرامج الضارة تخرج ولا تقوم بتصفية أي أسرار. كان هذا موجودًا سابقًا في تسويات Checkmarx وBitwarden.
-
تستخدم الحزمة نفس ربط تثبيت npm لبدء التنفيذ الذي تم استخدامه في تسوية Bitwarden CLI.
-
كان الاستخلاص القائم على GitHub إلى مستودعات Dune تحت عنوان طريقة C2 الاحتياطية لعملية Bitwarden CLI، ولكنه الآن هو الخيار الأساسي.
وفي حين أن هذه العملية تحتوي على إشارات إلى عمليات شاي خلود من خريف عام 2025، إلا أنه لا يمكننا ربطها بشكل قاطع أو القول بأنها جهة فاعلة منفصلة.
حزم npm:
-
@cap-js/sqlite – الإصدار 2.2.2
-
@cap-js/postgres – الإصدار 2.2.2
-
@cap-js/db-service – الإصدار 2.10.1
-
ميغابايت – v1.2.48
@cap-js/postgres 2.2.2
| ملف | التجزئة |
|---|---|
| كرة القطران (3,409,213 بايت) | SHA256: 1d9e4ece8e13c8eaf94cb858470d1bd8f81bb58f62583552303774fa1579edee |
| كرة القطران (3,409,213 بايت) | SHA1: e80824a19f48d778a746571bb15279b5679fd61c |
| كرة القطران (3,409,213 بايت) | MD5: e32eaf0c3cde9616831a1e92d42b0058 |
| Execution.js (11,723,748 بايت) | SHA256: eb6eb4154b03ec73218727dc643d26f4e14dfda2438112926bb5daf37ae8bcdb |
| Execution.js (11,723,748 بايت) | SHA1: ca4a5bb85778ffcd2153ace88fe2d882c8ceeb23 |
| Execution.js (11,723,748 بايت) | MD5: b523a69b27064d1715d1f0aaffcfae63 |
@cap-js/db-service 2.10.1
| ملف | التجزئة |
|---|---|
| كرة القطران (3,490,641 بايت) | SHA256: 258257560fe2f1c2cc3924eae40718c829085b52ae3436b4e46d2565f6996271 |
| كرة القطران (3,490,641 بايت) | SHA1: 4b04304f6d51392e3f43856c94ca95800518a694 |
| كرة القطران (3,490,641 بايت) | MD5: d468f16eafccbc54a994f3d675ace8ae |
| Execution.js | مطابق لـ @cap-js/postgres 2.2.2 |
@cap-js/sqlite 2.2.2
| ملف | التجزئة |
|---|---|
| كرة القطران (3,395,651 بايت) | SHA256: a1da198bb4e883d077a0e13351bf2c3acdea10497152292e873d79d4f7420211 |
| كرة القطران (3,395,651 بايت) | SHA1: 7b6a28e92149637e5d7c7f4a2d3e54acd507c929 |
| كرة القطران (3,395,651 بايت) | MD5: 8cd683f78735c9bfc32600c73d3d9abe |
| Execution.js (11,729,871 بايت) | SHA256: 6f933d00b7d05678eb43c90963a80b8947c4ae6830182f89df31da9f568fea95 |
| Execution.js (11,729,871 بايت) | SHA1: bc95cc5dda788295aa0c9456791520599ef99526 |
| Execution.js (11,729,871 بايت) | MD5: 6fb87d243b011b5445f379f80e1a6b4d |
إم بي تي 1.2.48
| ملف | التجزئة |
|---|---|
| كرة القطران (3,373,788 بايت) | SHA256: 86282ebcd3bebf50f087f2c6b00c62caa667cdcb53558033d85acd39e3d88b41 |
| كرة القطران (3,373,788 بايت) | SHA1: 0af7415d65753f6aede8c9c0f39be478666b9c12 |
| كرة القطران (3,373,788 بايت) | MD5: 04d8a99447b16f6839fff3b978f88d7e |
| Execution.js (11,678,349 بايت) | SHA256: 80a3d2877813968ef847ae73b5eeeb70b9435254e74d7f07d8cf4057f0a710ac |
| Execution.js (11,678,349 بايت) | SHA1: 6bc859aaee1f8885eec2a3016226e877e5adba08 |
| Execution.js (11,678,349 بايت) | MD5: 45dc9c02f82b4370ca92785282d43a86 |
القطارة المشتركة (جميع الحزم الأربعة)
| ملف | التجزئة |
|---|---|
| setup.mjs (4,549 بايت) | SHA256: 4066781fa830224c8bbcc3aa005a396657f9c8f9016f9a64ad44a9d7f5f45e34 |
| setup.mjs (4,549 بايت) | SHA1: 307d0fa7407d40e67d14e9d5a4c61ac5b4f20431 |
| setup.mjs (4,549 بايت) | MD5: 35baf8316645372eea40b91d48acb067 |
-
تحديد التعرض على الفور: ابحث في البيئات وملفات القفل ومخازن العناصر وسجلات CI عن إصدارات الحزم المتأثرة والملفات الضارة (setup.mjs وexecution.js).
-
تدوير جميع بيانات الاعتماد: في حالة الاشتباه في التعرض، قم بتدوير رموز GitHub، ورموز npm، وبيانات الاعتماد السحابية، ورموز Kubernetes المميزة، وأسرار CI/CD، حيث تستهدف هذه البرامج الضارة جميعها.
-
تدقيق نشاط GitHub: ابحث عن الالتزامات المشبوهة أو المستودعات المنشأة حديثًا أو المؤشرات مثل الكلمة الأساسية للانتشار ومؤلفي الالتزام غير العاديين.
