يتم شحن الإصدار 8.14.0 من حزمة jscrambler npm مع خطاف تثبيت مسبق ضار يقوم بإسقاط برنامج سرقة المعلومات الأصلي وتشغيله بصمت أثناء التثبيت، وهو مصمم لنظام التشغيل Windows وmacOS وLinux.

تم نشره في 11 يوليو 2026، ولا يحتاج إلى استيراد ولا استدعاء CLI. تثبيت 8.14.0 يكفي لتشغيله.

قام المقبس بوضع علامة على الإصدار بعد ست دقائق من نشره. إذا قمت أنت أو أحد أنظمة التصميم الخاصة بك بسحبها في تلك النافذة، فهذا يعني أن الحمولة قد تم تشغيلها بالفعل مع أي وصول حصلت عليه عملية التثبيت الخاصة بك.

يتم تشغيل الخطاف قبل إعداد الحزمة، ولا يظهر أي منها في الإصدار السابق، 8.13.0. يُظهر فرق الحزمة ملفين جديدين ضمن dist/: setup.js، وهو مُحمل صغير، وintro.js، والذي، على الرغم من اسمه، ليس جافا سكريبت ولكنه عبارة عن حاوية بحجم 7.8 ميجابايت تقريبًا تحتوي على ثلاثة ثنائيات أصلية مضغوطة بواسطة gzip، واحدة لكل من Linux وWindows وmacOS.

عند التثبيت، يختار setup.js الملف الثنائي لنظام التشغيل المضيف، ويكتبه تحت اسم عشوائي في دليل درجة حرارة النظام، ويضع علامة عليه باعتباره قابلاً للتنفيذ، ثم يطلقه منفصلاً مع إخفاء مخرجاته.

الملفات المضافة موجودة في الحزمة المنشورة، ولكنها ليست موجودة في المصدر العام لـ jscrambler. لم يبلغ كل من StepSecurity وSafeDep، اللذان قام كل منهما بسحب الإصدار وتحليله، عن عدم وجود التزام أو علامة أو طلب سحب مطابق لـ 8.14.0 في مستودع GitHub، والذي تظل أحدث علامة له هي 8.13.0.

تم دفع الإصدار مباشرة إلى npm ضمن حساب مشرف شرعي، متجاوزًا تدفق الإصدار العادي للمشروع، والذي يشير إلى حساب npm مخترق أو مسار إنشاء. ولم يثبت أيهما.

ما تفعله الثنائيات أصبح واضحًا الآن. يحدد مقبس، في تحليل محدث وبيان لصحيفة Hacker News، الحمولة على أنها أداة سرقة معلومات Rust، مصممة لجميع المنصات الثلاثة، والتي تكتسح جهاز المطور بحثًا عن الأسرار وتشحنها إلى خادم إسقاط عبر TLS.

القائمة المستهدفة واسعة النطاق وتستهدف المطورين بشكل مباشر. فهو يسحب بيانات الاعتماد السحابية من AWS وAzure وGoogle Cloud، بما في ذلك نقاط نهاية البيانات التعريفية التي يستخدمها مشغلو CI. فهو يقرأ محافظ العملات المشفرة والعبارات الأولية من MetaMask وPhantom وExodus وخزينة مدير كلمات المرور Bitwarden.

يقوم بإلغاء كلمات المرور وملفات تعريف الارتباط المخزنة في المتصفح، بالإضافة إلى جلسات Discord وSlack وTelegram وSteam. ويتبع ذلك شيئًا أحدث: ملفات التكوين لأدوات تشفير الذكاء الاصطناعي، بما في ذلك Claude Desktop، وCursor، وWindsurf، وVS Code، وZed، حيث تميل مفاتيح واجهة برمجة التطبيقات (API) وبيانات اعتماد خادم بروتوكول السياق النموذجي إلى الجلوس.

الثنائيات تتجاوز السرقة العادية. في نظام التشغيل Linux، تربط الحمولة النافعة مكتبة BPF الخاصة بالنواة ويمكنها تحميل برنامج eBPF إلى النواة من الذاكرة، ويعتمد على موطئ قدم في النواة بدلاً من الوصول إلى ملف مساحة المستخدم وبقية أداة السرقة. أشار كل من StepSecurity وSafeDep إلى هذه الإمكانية، على الرغم من أن ما يفعله eBPF لا يزال قيد التفكيك.

تضيف إصدارات Windows وmacOS فحوصات مضادة لتصحيح الأخطاء، وتستمر أسلاك السرقة في النجاة من إعادة التشغيل: مهمة Windows مجدولة مخفية يتم إعادة تشغيلها كل دقيقة، وmacOS LaunchAgent الذي يتم إعادة تحميله عند تسجيل الدخول.

المصدر: خطوة الأمن

تظل تفاصيل القيادة والتحكم الخاصة بها مشفرة في الملف الثنائي ولا تظهر أبدًا في التحليل الثابت؛ رصدت مراقبة وقت تشغيل StepSecurity الثنائي الذي تم إسقاطه وهو يصل إلى عنواني IP مشفرين وإلى البنية التحتية لـ Tor، وهي أول مؤشرات الشبكة المنشورة للحملة.

jscrambler هي أداة وقت البناء، يتم تثبيتها باعتبارها تبعية تطوير أو يتم تشغيلها من CI. يؤدي ذلك إلى إسقاط أداة السرقة في البيئة التي تم تصميمها للسرقة: المفاتيح السحابية، ونشر الرموز المميزة، والتعليمات البرمجية المصدر التي يمكن لعملية البناء أو CI الوصول إليها.

تشهد الحزمة حوالي 15800 عملية تنزيل أسبوعيًا، ولا يُعرف حتى الآن عدد التنزيلات التي تم سحبها للنسخة المخترقة. وهذه مساحة أصغر بكثير من الحزم التي تم التوصل إليها في تسويات npm الكبيرة في العام الماضي، والتي جذبت مليارات التنزيلات أسبوعيًا فيما بينها.

ومع ذلك، بالنسبة للسرقة الذي يهدف إلى بناء الآلات، لم يكن الوصول هو الهدف أبدًا. الوصول هو.

يناسب هذا سلسلة من هجمات سلسلة التوريد npm التي يعود تاريخها إلى أواخر عام 2025. وقد ركضت دودة Shai-Hulud من خطاف التثبيت لسرقة الرموز المميزة وانتشرت عبر مئات الحزم في شهر سبتمبر من ذلك العام. تم الاستيلاء على حزم الطباشير وتصحيح الأخطاء المستخدمة على نطاق واسع من خلال حساب صيانة مخادع واستخدامها لإعادة توجيه مدفوعات العملات المشفرة.

وفي مارس/آذار، دفع حساب مختطف حصان طروادة عبر الأنظمة الأساسية إلى Axios، وهي مكتبة HTTP تضم أكثر من 83 مليون عملية تنزيل أسبوعية. ما يجعل التوقيت هنا حادًا هو أن npm قد تحرك للتو عكس هذا المسار بالضبط: تم شحن npm 12 في 8 يوليو، قبل ثلاثة أيام من هذا الإصدار، مع إيقاف تشغيل البرامج النصية لتثبيت التبعية افتراضيًا.

في npm 12، لا يعمل خطاف التثبيت المسبق مثل هذا إلا إذا وافق عليه شخص ما. لا يزال العملاء الأقدم يقومون بتشغيلها تلقائيًا.

تم استبدال الإصدار 8.15.0 منذ ذلك الحين في أعلى قائمة إصدارات npm، والذي تم نشره من نفس حساب المشرف ولم يُظهر أيًا من تنبيهات البرامج الضارة التي تم تعثرها 8.14.0: لا يوجد برنامج نصي للتثبيت، ولا ثنائي مجمع.

ولكن لم يتم سحب 8.14.0. لا يزال موجودًا على npm، لذا فإن أي ملف قفل أو أمر مثبت عليه يستمر في تثبيت أداة السرقة. تم ضرب حزمة CLI الرئيسية فقط؛ بقيت المكونات الإضافية jscrambler لـ webpack وgulp وMetro وGrunt في إصداراتها النظيفة في شهر يونيو، بدون أي خطافات تثبيت.

ماذا تفعل الآن

  1. النزول 8.14.0. انتقل إلى 8.15.0، أو قم بتثبيته على 8.13.0 للحصول على إصدار قبل وقوع الحادث، وقم بمسح jscrambler@8.14.0 من ملفات القفل وذاكرة التخزين المؤقت.
  2. معرفة ما إذا كنت قد قمت بتثبيت 8.14.0. تحقق من ملفات القفل وسجلات مدير الحزم بحثًا عن jscrambler@8.14.0 وسجلات CI لأي تشغيل لـ dist/setup.js، بدءًا من 11 يوليو فصاعدًا. يقوم المُحمل بإسقاط حمولته تحت اسم عشوائي في الدليل المؤقت، لذلك لا يوجد اسم ثنائي ثابت يمكن استخدام grep له؛ قم بمحاذاة الطوابع الزمنية للتثبيت مقابل عمليات Node الفرعية وتنفيذ الدليل المؤقت بدلاً من ذلك. على نظام التشغيل Windows، تحقق من برنامج جدولة المهام بحثًا عن المهام المخفية؛ على نظام التشغيل macOS، افحص ~/Library/LaunchAgents بحثًا عن القوائم غير المألوفة.
  3. إذا تم تشغيل الإصدار 8.14.0 على جهاز، فتعامل مع كل سر يمكن أن يصل إليه على أنه مسروق، وليس فقط مكشوفًا. تدوير المفاتيح السحابية، ورموز npm وGitHub، ومفاتيح AI-tool وMCP API؛ وإلغاء جلسات Discord وSlack والمتصفح وBitwarden؛ ونقل أي عملات مشفرة من المحافظ الموجودة على هذا المضيف. قم بحظر عنواني IP للتحكم والتحكم المذكورين أدناه.

كانت عملية التنظيف سريعة، لكن أداة السرقة تقوم بعملها في ثوانٍ بعد التثبيت. لا يزال الإصدار 8.14.0 موجودًا على npm، ولا يزال الإصدار المثبت عليه، على عميل أقدم يقوم بتشغيل البرامج النصية للتثبيت، يشغل الحمولة.

وبحلول الوقت الذي وصل فيه الإصدار 8.15.0 إلى أعلى القائمة، كانت الأسرار الموجودة على أي جهاز يعمل بالفعل بالإصدار 8.14.0 قد اختفت بالفعل.

مؤشرات التسوية

الحزمة الضارة: jscrambler@8.14.0. تجزئات SHA-256 للملفات المضافة وحمولاتها التي تم فك ضغطها:

  • dist/setup.js: a742de963f14a92d24ebcbc7b44ac867e23a20d31d1b0094a13a4f83287f4e60
  • توزيع/intro.js: a41a523ef9517aab37ed6eea0ec881821bdcb7aefcb5c5f603adc7907f868c86
  • حمولة لينكس: fbbcf4d8f98168f78f5c0c47a9ae56d59ec8ac84a7c9ca6b797fedfb8d62d2bd
  • حمولة ويندوز: b7ca95d1b23c8e67416a25cedf741de0917c2096bbc9d24649eea7853d054903
  • حمولة نظام التشغيل Mac: c8fd47d36bdf7c825378593ab82ed8c24d1dc52e26b507812393e24e1d5201fd

نقاط نهاية الشبكة التي تمت ملاحظتها في وقت التشغيل بواسطة StepSecurity (عناوين IP هما نقطتا نهاية المهاجم المباشر؛ ويصل الثنائي أيضًا إلى البنية التحتية لـ Tor، ومن المحتمل أن يكون للاتصال أو التوجيه):

  • C2 IP: 37.27.122[.]124
  • C2 IP: 57.128.246[.]79
  • البنية التحتية لتور: check.torproject[.]أورغ، archive.torproject[.]ORG

العناصر الموجودة على المضيف: ملف مخفي مسمى عشوائيًا في دليل درجة حرارة النظام (. {random}، أو . {random}.exe على Windows)، بالإضافة إلى مهمة مجدولة مخفية في Windows أو macOS LaunchAgent للاستمرارية.

شاركها.
اترك تعليقاً