كشف باحثو الأمن في Socket عن عملية خبيثة متعددة المراحل اعتمدت على عشرة حزم npm مقلّدة (typosquatting) تم نشرها في سجل npm في 4 يوليو 2025، وجمعت سويةً نحو عشرة آلاف تحميل، بهدف تسليم سارق معلومات قوي عبر منصات Windows وLinux وmacOS. تستغل الحزم أسماءً قريبة من مكتبات شائعة مثل TypeScript وdiscord.js وethers.js وnodemon وreact-router-dom وzustand لخداع المطورين وإقناعهم بتثبيتها.
أسلوب الهجوم: تثبيت أعتيادي يخفي نافذة خبيثة وتخفي الحمولات الحقيقية
تعمل كل حزمة بخطاف ما بعد التثبيت (postinstall hook) الذي يشغل سكربتًا يُدعى install.js يكتشف نظام التشغيل ثم يبدأ تنفيذ ملف مضبب اسمه app.js داخل نافذة طرفية جديدة (Command Prompt على ويندوز، GNOME Terminal أو x-terminal-emulator على لينكس، وTerminal على macOS). تُفتَح هذه النافذة للحظة ثم تُمحى شاشتها فورًا حتى لا يلاحظها المستخدم أثناء التثبيت، بينما يستمر السلوك الخبيث في الخلفية بمعزل عن عملية npm.
قبل تنفيذ الحمولة الحقيقية، تُعرَض للضحية صفحة CAPTCHA مزيفة ومخرجات تبدو شرعية تشبه ما يعتاده المطور أثناء تثبيت حزم npm، ما يساهم في إيهام المستخدم ببساطة أن التثبيت سليم. في الخلفية، يجري تسجيل عنوان IP الخاص بالمستخدم وإرساله إلى خادم خارجي، ثم يبدأ تنزيل الحمولات التالية.
طبقات الإخفاء والحمولة النهائية: سارق PyInstaller كبير الحجم يجمع الأسرار من مخازن النظام
يُخفي app.js شيفرته عبر أربع طبقات من التعتيم تتضمّن شيفرات XOR بمفاتيح ديناميكية، وترميز URL لسلاسل الحمولة، واستخدام حسابات سداسية وثمانية عشرية لتعقيد مسار التنفيذ — كل ذلك مصمَّم لعرقلة التحليل اليدوي أو الآلي.
الهدف النهائي هو جلب ملف ثانٍ كبير (~24 ميغابايت) مُجمّع بواسطة PyInstaller، وهو ثنائيّ مستقل يُسمّى في التقرير “data_extracter” أو سارق البيانات. هذا السارق مهيأ لمسح الجهاز كاملاً بحثًا عن أسرار المطورين: رموز المصادقة، ملفات التهيئة، ملفات تعريف الجلسات (cookies)، مفاتيح SSH، وبيانات مخزنة في مخازن الاعتماديات (system keyrings) والمتصفحات وخدمات المصادقة.
يستفيد السارق من مكتبة keyring الخاصة بـnpm لتطبيق آليات مستهدفة في كل منصة لاستخراج بيانات الاعتماد من stores النظامية، ويضغط النتائج داخل أرشيف ZIP ثم يرسلها إلى خادم التحكم. استهداف مخازن النظام يعني أن البيانات تُؤخذ عادةً في شكل مفكوك التشفير (decrypted)، مما يتيح للمهاجم الوصول الفوري إلى خدمات حرجة مثل البريد المؤسسي، ومخازن الملفات السحابية، وقواعد البيانات الإنتاجية، وشبكات داخلية.
نطاق الحزم والتوزيع التقني وبيئة البنية التحتية الخبيثة
أسماء الحزم العشرة الملوّثة التي رصدها الباحثون هي:
deezcord.js, dezcord.js, dizcordjs, etherdjs, ethesjs, ethetsjs, nodemonjs, react-router-dom.js, typescriptjs, zustand.js.
تُفعّل الوظائف الخبيثة تلقائيًا عند تثبيت الحزمة، وبالتالي يمكن لمطور بسيط تثبيت واحدة منها اعتمادًا على خطأ إملائي في اسم المكتبة أن يُعرّض جهازه وبيئته التطويرية للخطر فورًا. وقد أشار الباحثون إلى أن سرقة العنوان IP والاتصال بخادم خارجي هو أول إشارة تؤسس لسلسلة تنزيل الحمولات، وأن الخادم المهاجم استُخدم كمصدر لتنزيل السارق الثانوي.
تداعيات عملية وواجبات الدفاع الفني للمطوّرين والمؤسسات
-
مخاطر عالية للبيئات التطويرية: لأن الحزم تُثبت داخل بيئات المطورين المحلية، فإن سرقة الاعتماديات قد تفتح مسارات للوصول إلى مستودعات الشيفرة، مفاتيح CI/CD، خدمات السحابة، وبيانات الاعتماد المؤسسية.
-
التهديد عبر أنظمة متعددة: السارق مُضمّن بمنهجية متعددة المنصات؛ لذا إن كانت لدى المطور مفاتيح أو جلسات في أي من أنظمة التشغيل الثلاثة، فهي عرضة للخطر.
-
الحاجة إلى تشديد الثقة في سجلات الحزم: ينبغي للمؤسسات فرض سياسات استخدام حزم مُعتمدة (allowlists)، ومراجعة رسمية للحزم الخارجية قبل إضافتها إلى مشاريع الإنتاج.
-
مراقبة شبكة ومؤشرات خروج بيانات: رصد اتصالات الشبكة غير المألوفة من محطات المطورين إلى خوادم خارجية يُعد مؤشراً مبكراً على وجود تسريب.
-
ممارسات أمنية عملية للمطورين: تحقق من اسم الحزمة وحزمها الرسمية، فضّل استخدام أسماء محددة بنطاق المؤسسة أو حفظ القفل الرقمي (integrity hashes)، ولا تمنح الصلاحيات الإدارية أو القدرات غير الضرورية عند تثبيت حزم.






























