إلى الخلف
استخبارات الخصم
جدول المحتوى
فيكاس كوندو
A naturally curious mind driven by the need to understand how things work and how to make them better. Passionate about learning, experimenting, and exploring new ideas across technology and security.
لم يتم العثور على أية عناصر.

ملخص تنفيذي

في 9 سبتمبر 2026، استخدم شخص ما حساب المسؤول عن حزمة npm شرعية، وهي @dforge-core/dforge-mcp، لمدة 105 دقائق. كان لدى هذا الشخص بالفعل صلاحية الدفع (push) إلى الفرع الرئيسي عند بدء الاختراق؛ أما كيفية حصوله على هذه الصلاحية فهي الأمر الوحيد الذي لا يمكننا الجزم به حالياً. ومع ذلك، نشتبه في أن مطوراً قد أُصيب بملحق أو حزمة خبيثة منحت المهاجمين هذا المستوى من الوصول. وخلال الفترة الوجيزة التي تمتع فيها المهاجم بالوصول إلى بيانات اعتماد المطور، قام بـ إضافة أداة تحميل برمجيات عن بُعد، وتغيير ثلاثة أسطر برمجية بحيث يؤدي أي دفع (push) إلى الفرع الرئيسي إلى بدء سير عمل الإصدار، ثم أعاد كتابة سير العمل ذلك بعد أربعة عشر دقيقة ليتمكن من النشر دون تدخل، وأطلق أداة التحميل كإصدار 0.2.21. ظل هذا الإصدار هو الأحدث في السجل لمدة 35 دقيقة و38 ثانية قبل أن يقوم المسؤول عن الحزمة بالتراجع عن كل شيء ونشر إصدار نظيف برقم 0.2.22. 

هناك ثلاث ملاحظات مثيرة للاهتمام من الهجوم الذي وقع. أولاً، حمل الإصدار المخترق مصدراً موثوقاً من npm: فقد تم بناؤه بواسطة GitHub Actions من خلال النشر المعتمد عبر OIDC، ولا تزال شهادة المصدر موجودة في سجل Sigstore غير القابل للتعديل، وتُشير إلى الالتزام (commit) الخاص بالمهاجم. لم يتم تزوير أي شيء ولم يحدث أي خلل؛ فالشهادة هي سجل دقيق لمدخلات غير نزيهة، لأن شهادة المصدر تثبت مكان بناء الأداة، وليس ما إذا كان مصدرها نزيهاً. وهذا يفسر أيضاً سبب عدم الحاجة إلى بيانات اعتماد npm: ففي ظل النشر المعتمد، يثق السجل بهوية التكامل المستمر (CI) للمستودع، لذا كانت صلاحية الدفع هي نفسها صلاحية النشر. ثانياً، الحمولة الخبيثة عبارة عن سطر واحد في الموقع 3320 من ملف بحجم 99 كيلوبايت، تفتح سلسلة من أربع مراحل، حيث تقوم الأداة النهائية بحذف نفسها من القرص بمجرد تشغيلها. إن المؤسسة التي نفذت الإصدار ثم بحثت في أجهزتها عن ملف خبيث لن تجد شيئاً، وقد تستنتج منطقياً أنها لم تتأثر. ومع ذلك، كانت كل مرحلة لا تزال تستجيب عند اختبارها بعد خمسة أيام من سحب الإصدار.

ثالثاً، وهو اكتشاف متأخر، هناك عائلة حمولة ثانية في مستودع ضحية أخرى تربط هذا الهجوم بحملة موثقة: PolinRider، وهي عملية مرتبطة بكوريا الشمالية تتبعها OpenSourceMalware عبر آلاف المستودعات منذ مارس 2026، وتتميز ببصمة محددة: حمولة تُلحق بصمت في نهاية ملف تكوين مشروع حقيقي. لا تحمل هذه الحمولة أي عنوان للتحكم والسيطرة (C2)، بل تقرأ العنوان من سلسلة كتل إيثيريوم (Ethereum) من محفظة نُشرت كمؤشر لتلك الحملة. كان هناك تطابق دقيق لا يزال يرسل إشارات عند كتابة هذا التقرير. في هذه الحالة، يُكتب التكوين في العشرين بايت الخاصة بعنوان المستلم في معاملة فارغة تكلفت حوالي عشرين سنتاً، مما يعني أن القناة لا تملك نطاقاً يمكن تعليقه، ولا مضيفاً يمكن الاستيلاء عليه، ولا حساباً يمكن تعطيله. إن الانتماء للحملة هو استنتاج توصلنا إليه في هذا التقرير بناءً على العينة. أما الباحثون الذين وثقوا NullReceiver فقد نسبوه إلى كوريا الشمالية؛ وهذه الخطوة تخصهم وليست استنتاجنا، وقد أُشير إليها هنا دون تأكيد، كما أن الفحص المستقل الوحيد الذي تمكنا من إجرائه لم يؤكد ذلك.

إن الأسلوب الموثق للحملة، وهو سرقة بيانات اعتماد git المخزنة مؤقتاً للمطور من جهاز مصاب ثم استخدامها في الدفع، هو التفسير الأكثر منطقية لكيفية استخدام حساب هذا المسؤول، وهو ما يفسر سبب ظهور الاسم المستعار نفسه عبر عشرات المستودعات غير المرتبطة. الإجراءات الفورية هي حظر نقطة اتصال المقبس (socket endpoint) واسمي مضيف التسليم، والبحث عن الآثار التي تتركها السلسلة بدلاً من البحث عن الأداة الخبيثة التي تحذف نفسها عند التشغيل، وتثبيت الحزمة عند الإصدار 0.2.22. إن عدد المتضررين قليل، ولا يوجد دليل هنا على اختراق ناجح لأي مؤسسة. ما يثبته هذا هو أن المعالجة التي قام بها الجميع، وهي سحب إصدار أزال المكون الأرخص من العملية وترك الباقي متاحاً، تمت دون أي تحذير في OSV، أو في قاعدة بيانات GitHub، أو من المسؤول لإخبار أي شخص لا يزال يحتفظ بالإصدار 0.2.21 بضرورة الفحص.

انقر هنا لتنزيل التقرير الكامل للاطلاع على الجدول الزمني للهجوم، وتحليل البرمجيات الخبيثة، والبنية التحتية للحملة، وتقييم الإسناد، ومؤشرات الاختراق، والتوصيات الدفاعية.

مدونات ذات صلة