أفادت شركات الأمن Aikido وSafeDep وSocket وStepSecurity بأن مهاجمين نشروا على npm وPyPI إصدارات مسمومة من حزم MemTensor تثبّت sckit، وهو برنامج بلغة Go يسرق بيانات اعتماد المطورين، بحسب ما نقله موقع The Hacker News في 23 سبتمبر. ويعمل هذا البرنامج على Windows وLinux وmacOS.
الخلفية
تتيح مستودعات الحزم للمطورين تثبيت شيفرة كتبها غيرهم بأمر واحد، وقد يؤدي التثبيت إلى تشغيل شيفرة على حاسوب المطوّر نفسه. ومن ثمّ فإن المهاجم الذي يحصل على رمز النشر الخاص بأحد القائمين على الصيانة يصل إلى كل جهاز يثبّت إصداره [1].
ما يصفه التقرير
الحزم المتأثرة هي @memtensor/memos-cloud-openclaw-plugin على npm، في الإصدارات 0.1.21 و0.1.23 و0.1.25، وMemoryOS على PyPI، في الإصدار 2.0.34. ويذكر التقرير أن المهاجمين حصلوا على رموز النشر باختراق مسارات الإصدار في GitHub Actions الخاصة بـ MemTensor، ودفعوا إصدارات خبيثة بين الإصدارات السليمة [1].
في إضافة npm تبدأ الحمولة المخفية عند تشغيل بوابة الوكيل أو أثناء أحداث استرجاع الذاكرة. وفي حزمة PyPI تبدأ عند استيراد الوحدة. وفي الحالتين يُشغَّل برنامج Go مرتبط ارتباطًا ساكنًا يجمع رموز API ومفاتيح SSH وملفات إعدادات الخدمات السحابية ومتغيرات البيئة المرتبطة بخدمات مثل npm وPyPI وGitHub وGitLab وAWS وVault، ثم يرسلها إلى خادم خارجي. ويصف التقرير هذه الشيفرة الزرعية بأنها دودة قادرة على الانتشار عبر مستودعات GitHub ومستودعات الحزم [1].
أُزيلت الإصدارات الخبيثة. ويورد التقرير الإصدارين 0.1.24 على npm و2.0.33 على PyPI بوصفهما آخر إصدارين سليمين، وينصح بتثبيت الإصدار 0.1.20 على npm و2.0.33 على PyPI [1].
دلالات ذلك على مستخدمي Mac
المطورون الذين ثبّتوا الإصدارات المذكورة على جهاز Mac معرّضون لسرقة أي أسرار مخزّنة في المواضع المذكورة أعلاه. أما من لا يستخدمون هذه الحزم فلا يتأثرون بحسب ما ورد في التقرير. ومن ثبّت أحد الإصدارات المذكورة عليه أن يعامل بيانات الاعتماد الموجودة على ذلك الجهاز على أنها مكشوفة [1].
التوصيات
- افحصوا ملفات القفل والحزم المثبّتة بحثًا عن الإصدارات المذكورة أعلاه، ثم أزيلوها.
- دوّروا كل بيانات اعتماد كان الجهاز قادرًا على الوصول إليها: رموز npm وPyPI وGitHub، ومفاتيح SSH، ومفاتيح الخدمات السحابية، والأسرار الموجودة في متغيرات البيئة.
- ألغوا الرموز ولا تكتفوا بتغيير كلمات المرور، إذ ينصح التقرير بتدوير الأسرار المكشوفة.
- ثبّتوا التبعيات على إصدارات سليمة معروفة، كما يقترح التقرير، وراجعوا صلاحيات مسارات الإصدار في الحزم التي تتولون صيانتها.
صلة ذلك بـ FireAI
لا يفحص FireAI الحزم ولا يزيل الشيفرة الزرعية. فالبيانات المسروقة لا بد أن تُرسل إلى خادم، وأي برنامج Go جديد لا توجد له قاعدة يثير طلب إذن بالاتصال في وضع «تنبيه»، مع عرض الوجهة على الخريطة العالمية. وتتيح القواعد لكل تطبيق قصر أداة البناء أو المفسّر على المضيفين الذين يحتاجهم. أما إن كانت لأداة البناء قاعدة «سماح» واسعة، فلن يسأل FireAI، ولذلك ينبغي أن تكون هذه القواعد ضيقة.
القيود
لا يذكر التقرير عدد الأجهزة التي ثبّتت الإصدارات المسمومة، ولا المدة التي بقي فيها كل إصدار متاحًا، ولا الجهة التي تقف وراء الحملة. ووصفه لسلوك الدودة مصدره تحليل الباحثين.
جرّب FireAI من HisnLabs مجانًا لمدة 17 يومًا.