TL؛ DR
بين 1 مايو و6 مايو 2026، ناشر واحد لـ npm، alone5511قام بدفع ثماني حزم لا تعتمد على أي برامج أخرى ويبدو أنها تستهدف Microsoft / مساحات أسماء الحزم الداخلية على نمط Azure.
استخدمت الحزم أسماءً مثل cosmos-explorer, ms.analytics-web, icons.generated, latency-tracking-internal, carbonite-internalو carboniteappاستخدمت عدة إصدارات قيم semver عالية مثل 99.9.0 و 99.9.13، وهو أسلوب شائع لإرباك التبعيات مصمم لتجاوز الحزم الداخلية الخاصة.
تم بالفعل إلغاء نشر جميع الحزم الثمانية الشقيقة من npm بواسطة الناشر بين 1 مايو و6 مايو 2026. وأكدت بيانات السجل المباشر أن ملفات tarballs تُرجع الآن HTTP 404 من شبكة توصيل المحتوى npm.
ومع ذلك، لا تزال المجموعة مهمة.
الحمولة في العينات الأساسية، carbonite-internal:99.9.0 و carboniteapp:99.9.0يتم تشغيله أثناء التثبيت من خلال preinstall خطاف. يقوم بجمع بيانات بصمة المضيف، ويستخرج عنوان IP العام للجهاز من api.ipify.orgيقوم بإنشاء "تقرير استخباراتي احترافي" مزيف، ويصنف المضيف على أنه RCE VERIFIEDويرسل التقرير إلى روبوت تيليجرام من خلال واجهة برمجة تطبيقات روبوت تيليجرام.
نظام Xygeni للتحذير المبكر من البرامج الضارة (MEW) صنّف النظام العينات النموذجية على أنها خبيثة على الأرجح بدرجة أعلى من 91/100.
نحن نتابع هذا الأمر باعتباره حملة ارتباك داخلي لأسماء التبعيات من قبل مايكروسوفت مع بصمة المضيف في وقت التثبيت وتسريب إشارات تيليجرام.
المجموعة: ثماني حزم، ناشر واحد
حساب الناشر alone5511 تم استخدام عنوان البريد الإلكتروني التالي:
raistargaming703@gmail.com لم يكن للحساب بريد إلكتروني موثق، ولا SCM التحقق، ودرجة سمعة npm تبلغ 2.
هوية GitHub مُشار إليها، alonebeast002/beastcrypt، وظهرت أيضًا في سياق المجموعة.
أصدر الناشر ثماني حزم ذات صلة خلال فترة ستة أيام. جميع الحزم لم تكن لها أي تبعيات واتبعت نفس النمط العام: حزمة صغيرة، برنامج نصي للتثبيت، بصمة المضيف، وإرسال إشارات Telegram.
| # | فئة الإشتراك | النسخة الخبيثة | تم الإنشاء، بالتوقيت العالمي المنسق | غير منشور، التوقيت العالمي المنسق | تم تأكيد الحمولة | خطاف التثبيت |
|---|---|---|---|---|---|---|
| 1 | مستكشف الكون | 1.1.3 | 2026-05-01T18:26Z | 2026-05-01T19:01Z | يُستنتج أن الناشر/المجموعة هما نفس الناشر | التثبيت المسبق، على الأرجح |
| 2 | signalsdk-web | 1.0.0 , 10.0.0 | 2026-05-04T13:57Z | 2026-05-04T18:51Z | استنتاج | التثبيت المسبق، على الأرجح |
| 3 | ms.analytics-web | 99.0.0 , 99.9.13 | 2026-05-04T18:47Z | 2026-05-05T10:07Z | استنتاج | التثبيت المسبق، على الأرجح |
| 4 | أيقونات.تم إنشاؤها | 99.9.13 | 2026-05-05T10:02Z | 2026-05-05T12:57Z | استنتاج | التثبيت المسبق، على الأرجح |
| 5 | تتبع زمن الاستجابة | 99.9.0 | 2026-05-05T11:57Z | 2026-05-05T12:57Z | استنتاج | التثبيت المسبق، على الأرجح |
| 6 | تتبع زمن الاستجابة الداخلي | تم حذف الإصدارات من سجل النظام | 2026-05-06T06:02Z | 2026-05-06T08:35Z | استنتاج | التثبيت المسبق، على الأرجح |
| 7 | تطبيق كاربونايت | 99.9.0 | 2026-05-06T05:49Z | 2026-05-06T08:35Z | نعم، تدفق رمز الماسح الضوئي بالكامل | التثبيت المسبق: node index.js |
| 8 | الكربونات-الداخلي | 99.9.0 | 2026-05-06T06:14Z | 2026-05-06T08:36Z | نعم، تدفق رمز الماسح الضوئي بالكامل | التثبيت المسبق: node index.js |
إجمالي عدد نسخ البيانات الخبيثة عبر المجموعة: 9+.
تم حذف بعض نسخ سجلات الحزم الشقيقة بعد إلغاء النشر، مما يحد من إعادة البناء الدقيق من بيانات السجل العام وحدها.
لماذا تُعدّ الأسماء مهمة؟
تُعد أسماء الحزم أقوى إشارة.
تبدو هذه الحزم وكأنها حزم تطوير برمجيات داخلية، أو حزم قياس عن بعد، أو حزم توليد أيقونات، أو حزم مستكشف، أو حزم تتبع زمن الاستجابة:
cosmos-explorer signalsdk-web ms.analytics-web icons.generated latency-tracking latency-tracking-internal carbonite-internal carboniteapp هذا ليس اختياراً عشوائياً للأسماء. يبدو أنه مُعاير لـ ارتباك التبعية.
استخدمت العديد من الحزم اللاحقة أرقام إصدارات عالية:
99.0.0 99.9.0 99.9.13 10.0.0 هذا الأمر مهم لأن هجمات التباس التبعيات غالباً ما تعتمد على وجود إصدارات أحدث من الحزم العامة مقارنةً بالحزم الداخلية الموجودة في السجل الخاص. في حال وجود خلل في تكوين نظام البناء، قد يختار مدير الحزم إصدار npm العام بدلاً من الإصدار الداخلي المقصود.
ويبدو أن الناشر يتصاعد أيضاً بمرور الوقت.
استخدمت الحزم المبكرة إصدارات ذات مظهر عادي، مثل 1.1.3 و 1.0.0. تم نقل الطرود اللاحقة إلى 99.x.x و 99.9.xيتوافق هذا التحول مع قيام جهة فاعلة بضبط الحملة لسلوك حل المشكلات الداخلية.
ما يحدث أثناء التثبيت
العينات الأساسية، carbonite-internal:99.9.0 و carboniteapp:99.9.0، أعلن preinstall صنارة صيد:
{ "scripts": { "preinstall": "node index.js" } } هذا يعني أن الحمولة تعمل قبل أن ينتهي npm من تثبيت التبعيات.
هذا هو أسرع وقت ممكن لتثبيت البرنامج. لا يحتاج المطور إلى استيراد الحزمة، ولا يحتاج برنامج البناء إلى تنفيذ كود التطبيق، فالتثبيت نفسه كافٍ.
الحمولة صغيرة، حوالي 2.4 كيلوبايت، وليس لها غرض وظيفي يتجاوز الإرسال.
سلوك الحمولة
استخدم index.js يقوم الملف بأربعة إجراءات رئيسية.
أولا، يدعو api.ipify.org لجلب عنوان IP العام للمضيف:
https://api.ipify.org ثانيًا، يقوم بجمع بيانات بصمة المضيف الأساسية باستخدام واجهات برمجة تطبيقات نظام التشغيل Node.js:
os.userInfo() os.hostname() os.platform() os.networkInterfaces() os.uptime() ثالثًا، يقوم البرنامج بتنسيق البيانات المجمعة في تقرير متعدد الأسطر مع عنوان رئيسي واضح:
PRO-LEVEL INTELLIGENCE REPORT وينتهي التقرير بما يلي:
Status: 🟢 RCE VERIFIED رابعًا، يرسل التقرير إلى تيليجرام عبر sendTelegram(report) الوظيفة، باستخدام نقطة نهاية واجهة برمجة تطبيقات بوت تيليجرام:
https://api.telegram.org/bot<token>/sendMessage يتم الاحتفاظ برمز بوت Telegram المحدد داخل ملفات tarballs غير المنشورة، ويمكن استعادته من وحدة التخزين الداخلية لـ npm.
لماذا تُعدّ لافتة "تم التحقق من RCE" مهمة؟
المعنى الحرفي RCE VERIFIED المؤشر يدل عملياً.
لا يقوم هذا البرنامج الخبيث بنشر باب خلفي، ولا يبقى في الذاكرة، ولا يسرق بيانات اعتماد السحابة مباشرةً. بل يؤكد فقط حدوث تنفيذ التعليمات البرمجية أثناء تثبيت الحزمة.
هذا يكفي لحملة إثبات التنفيذ القائمة على الارتباك في التبعيات.
إذا تلقى المهاجم رسالة Telegram من بيئة مستهدفة، فسيعرف أن حزمة npm العامة قد تم حلها وتنفيذها داخل مضيف حقيقي، أو مشغل CI، أو محطة عمل مطور، أو بيئة بناء.
بمعنى آخر، لا يقتصر عمل البرمجية الخبيثة على جمع بيانات تعريف المضيف، بل تتحقق أيضاً مما إذا كان تحليل حزم البيانات في النظام المستهدف قابلاً للاستغلال.
تصنيف Xygeni MEW
صنّفت شركة Xygeni MEW العينات المتعارف عليها على النحو التالي: ربما يكون ذلك خبيثاً، مع حصوله على درجة أعلى من 91/100.
وشملت عمليات الكشف ما يلي:
| خطورة | كشف | معنى |
|---|---|---|
| حرج | تسريب البيانات الحساسة | تقوم الدالة req.write(data) بنقل تقرير بصمة المضيف إلى طلب POST صادر عبر تطبيق Telegram |
| مرتفع | برامج تثبيت خبيثة | قبل التثبيت: يقوم ملف node index.js بتشغيل الإشارة في وقت التثبيت |
| منخفض | طلب مشبوه | اكتشاف عناوين IP العامة من خلال api.ipify.org |
| منخفض | طلب مشبوه | نقطة نهاية واجهة برمجة تطبيقات بوت تيليجرام الصادرة |
| منخفض | حزمة تافهة | لا يوجد للحزمة أي غرض ذي معنى يتجاوز الإرسال. |
| معلومات | تعداد البيانات الحساسة | يتم سرد تفاصيل المضيف مثل وقت التشغيل ومعلومات المستخدم واسم المضيف |
يبلغ قطر كلاً من carbonite-internal:99.9.0 و carboniteapp:99.9.0 كانت لها حمولات متطابقة، بما في ذلك نفس معرف تدفق التعليمات البرمجية ونصوص التثبيت المكافئة بالبايت.
قام فهرس مشاريع الناشرين في MEW بتصنيف جميع الحزم الثمانية كجزء من نفس مجموعة الناشرين / الحمولة.
لماذا يُعدّ نمط إلغاء النشر الذاتي مهماً؟
قام الناشر بإلغاء نشر جميع الحزم الثمانية الشقيقة في غضون دقائق إلى ساعات من النشر.
هذا السلوك مهم.
قد يقوم القائمون على الصيانة الشرعيون أحيانًا بإلغاء نشر الحزم، لكن التوقيت هنا يبدو وكأنه عملية تنظيف من قبل المهاجم. ظهرت الحزم، ونفذت حمولتها أثناء التثبيت إذا تم حلها بواسطة هدف، ثم اختفت من الوصول إلى السجل العام.
وهذا يخلق مشكلتين للمدافعين.
أولاً، تصبح بيانات تعريف npm العامة غير مكتملة بعد إلغاء النشر. قد يتم حذف بعض سجلات الإصدار أو يصعب إعادة بنائها.
ثانيًا، قد تفوت برامج الحماية التي تعتمد على حالة التسجيل الحالية الحزم التي كانت موجودة أثناء فترة التعرض ولكنها لم تعد قابلة للتثبيت.
ولهذا السبب، يجب على npm الاحتفاظ بملفات tarball غير المنشورة داخليًا لأغراض التحليل الجنائي. بوت تيليجرام قد يساعد الرمز الموجود داخل ملفات القطران في حصر قناة الاستقبال وإعادة بناء الضحايا المحتملين.
مؤشرات الاختراق والكشف
الناشر والحساب
| الحقل | بعد التخفيض |
|---|---|
| اسم مستخدم npm | alone5511 |
| البريد الإلكتروني للناشر في npm | raistargaming703@gmail.com |
| سمعة npm | 2 |
| تم التحقق من البريد الإلكتروني | لا |
| SCM التحقق | لا |
| هوية GitHub المشار إليها | alonebeast002/beastcrypt |
أسماء الحزم المتأثرة
cosmos-explorer signalsdk-web ms.analytics-web icons.generated latency-tracking latency-tracking-internal carbonite-internal carboniteapp أنماط الإصدارات المشبوهة
10.0.0 99.0.0 99.9.0 99.9.13 تُعد هذه الإصدارات العالية ذات أهمية خاصة في تحقيقات الارتباك في التبعيات لأنها قد تتفوق على إصدارات الحزم الخاصة.
نقاط نهاية الشبكة
| النوع | بعد التخفيض |
|---|---|
| تحقيق في الملكية الفكرية العامة | https://api.ipify.org |
| أحواض الترشيح | https://api.telegram.org/bot<token>/sendMessage |
| طريقة الاستخراج | طلب POST إلى واجهة برمجة تطبيقات بوت تيليجرام |
علامات الحمولة
ابحث في نصوص التثبيت عن هذه السلاسل النصية:
PRO-LEVEL INTELLIGENCE REPORT Status: 🟢 RCE VERIFIED sendTelegram( قم أيضاً بتحديد نمط البيان هذا:
{ "scripts": { "preinstall": "node index.js" } } وخاصة عند اقترانها بما يلي:
- التبعيات الصفرية
- حجم العبوة صغير
- اسم العبوة ذو المظهر الداخلي
- إصدار عالي الدلالة
- واجهات برمجة تطبيقات بصمة المضيف
- حركة مرور واجهة برمجة تطبيقات بوت تيليجرام
واجهات برمجة تطبيقات بصمة المضيف
يستخدم الحمولة الأساسية ما يلي:
os.userInfo() os.hostname() os.platform() os.networkInterfaces() os.uptime() كما أنها تتواصل مع:
https://api.ipify.org لالتقاط عنوان IP العام للمضيف.
ملاحظات الكشف
يمكن لعدة قواعد أن ترصد هذه الحملة وتغلق المتغيرات.
أولاً، راقب وجود أي برامج نصية لتثبيت npm تتصل بـ Telegram:
api.telegram.org لا ينبغي إطلاقاً أن يقوم برنامج تثبيت حزمة بإرسال طلبات POST إلى تيليجرام. تعامل مع هذا الأمر على أنه عمل عدائي إلا في حالة وجود استثناء واضح ومُدقّق.
ثانياً، العلم preinstall نصوص برمجية في حزم صغيرة بدون تبعيات ذات أسماء تبدو داخلية.
إن الجمع بين حزمة صغيرة، وإصدار semver عالي، واسم داخلي على نمط مساحة الاسم، يُعد إشارة قوية على وجود ارتباك في التبعيات.
ثالثًا، يجب التنبيه إلى أسماء الحزم التي تبدو وكأنها وحدات هندسية خاصة منشورة بواسطة حسابات npm عامة ذات سمعة منخفضة.
تتضمن الأمثلة من هذه المجموعة ما يلي:
ms.analytics-web latency-tracking-internal carbonite-internal icons.generated رابعًا، ابحث عن مراجع ملفات القفل لأسماء الحزم الثمانية عبر أنظمة التكامل المستمر ومحطات عمل المطورين.
بحث:
package-lock.json yarn.lock pnpm-lock.yaml npm-shrinkwrap.json أي تطابق يستدعي مراجعة الارتباك في التبعية.
إجراءات التسجيل المقترحة
كانت هذه المجموعة غير منشورة بالفعل وقت إعداد التقرير. ومع ذلك، فإن إلغاء النشر لا يزيل المخاطر.
الإجراءات الموصى بها من جانب npm:
- تأكد مما إذا كانت عمليات إلغاء النشر ناتجة عن عملية تنظيف بدأها المهاجم أم عن إجراء مشروع من جانب القائمين على الصيانة.
- تعليق أو حظر حساب الناشر
alone5511. - أضف الناشر وعنوان البريد الإلكتروني وأسماء الحزم وعلامات الحمولة إلى قوائم الحظر المتعلقة بإساءة الاستخدام وسلسلة التوريد.
- احتفظ بملفات tarball غير المنشورة في وحدة تخزين داخلية لأغراض التحليل الجنائي الرقمي.
- استخرج رمز بوت تيليجرام من ملفات tar المحفوظة.
- العمل مع تطبيق تيليجرام، حيثما أمكن، لتحديد قناة الاستقبال وإعادة بناء بيانات القياس عن بعد للضحية المحتملة.
قائمة التحقق من الاستجابة للتسوية
إذا ظهرت أي من الحزم المتأثرة في ملفات القفل أو سجلات البناء أو ذاكرة التخزين المؤقت للحزم أو سجل تثبيت التكامل المستمر أثناء فترة التعرض، فتعامل معها على أنها حدث تنفيذ ناتج عن ارتباك التبعية.
الرد الموصى به:
- حدد مكان تثبيت الحزمة: محطة العمل المحلية، أو مشغل التكامل المستمر، أو وكيل البناء، أو صورة الحاوية.
- احتفظ بملفات القفل، وذاكرة التخزين المؤقت لـ npm، وسجلات البناء، وسجل الأوامر، ومخرجات مدير الحزم.
- تحقق من سجلات الشبكة الصادرة لـ
api.telegram.orgوapi.ipify.orgأثناء نافذة التثبيت. - راجع ما إذا كان التثبيت قد تم في بيئة تحتوي على متغيرات حساسة أو بيانات اعتماد أو إمكانية الوصول إلى الشبكة الداخلية.
- قم بتدوير الرموز المميزة المعروضة لبيئة التثبيت إذا كان المضيف عبارة عن مشغل CI مميز أو محطة عمل مطور.
- تكوين حل حزمة التدقيق لمشكلة الالتباس بين السجل العام والخاص.
- فرض حزم خاصة محددة النطاق وتثبيت التسجيل.
- حظر الحزم العامة غير المعتمدة التي تتطابق مع أنماط التسمية الداخلية.
- إضافة guardrails بالنسبة لبرامج التثبيت، وخاصة
preinstall,installوpostinstall.
ما يجب على المدافعين استخلاصه
هذه الحملة ليست معقدة من الناحية التقنية. وهذا تحديداً سبب أهميتها.
الحمولة صغيرة ومباشرة وسهلة التنفيذ. لا يحتاج المهاجم إلى برامج ضارة متطورة أو قدرة على الثبات. كل ما يحتاجه هو مسار واحد خاطئ في عملية تحليل الحزم.
الخطر الحقيقي هو الارتباك الناتج عن التبعية.
حزمة تحمل اسمًا داخليًا مألوفًا، ورقم إصدار عالٍ، و preinstall يمكن للخطاف أن يحول شخصًا عاديًا npm install إلى منارة من داخل بيئتك.
في عمل DevSecOps يا فرق العمل، الدرس واضح: أسماء الحزم الداخلية أصول حساسة. تعاملوا معها كما لو كانت نقاط ضعف للهجوم.
تم الإبلاغ إلى npm بشأن تطبيق القوانين على مستوى الحساب، وقوائم الحظر، وحفظ ملفات tarball غير المنشورة.




