حزم PyPI الخبيثة ظهرت كأدوات تدقيق إملاء لبايثون، لكنها أخفت حصان طروادة للتحكم عن بعد وتم تنزيلها أكثر من 1000 مرة، وفقاً لتقرير تيكبامين.
ما تفاصيل حزم PyPI الخبيثة التي انتحلت مدقق الإملاء؟
كشفت التحقيقات الأمنية عن حزمتين باسم spellcheckerpy وspellcheckpy في مستودع PyPI، وتم تنزيلهما مجتمعتيْن أكثر من 1000 مرة قبل إزالتهما. كانتا تتظاهران بأنهما أدوات تدقيق إملاء مشابهة لمكتبة pyspellchecker المعروفة، ما جعل المطورين يثقون بها.
لماذا بدت الحزم شرعية؟
المهاجمون بدأوا بثلاثة إصدارات خاملة تضمنت الحمولة دون تشغيل، ثم فعّلوا التنفيذ في نسخة spellcheckpy 1.2.0 بتاريخ 21 يناير 2026. عند استيراد SpellChecker يبدأ المسار الخبيث بالعمل فوراً.
- أسماء قريبة من أدوات التدقيق الشائعة
- اعتماد ملفات قاموس حقيقية ضمن الحزمة
- إصدارات تمهيدية لتفادي اكتشاف السلوك
كيف تم إخفاء الحمولة داخل القاموس الباسكي؟
بدلاً من إخفاء الشيفرة في ملفات __init__.py، تم وضع الحمولة داخل ملف resources/eu.json.gz الذي يحتوي ترددات كلمات الباسكية من القاموس الأصلي. هذا الأسلوب يجعل الملف يبدو عادياً أثناء المراجعة السريعة.
آلية التفعيل عند الاستيراد
الدالة test_file تستخرج الأرشيف بمعاملات محددة، وعند استدعاء test_file('eu','utf-8','spellchecker') يتم سحب مُنزّل مخفي بصيغة Base64 من داخل القاموس. بعد فك الترميز، يبدأ المُنزّل بتحميل المرحلة التالية.
- الملف المستهدف: resources/eu.json.gz
- المفتاح المخفي في القاموس: 'spellchecker'
- المعاملات المحفزة: 'eu' و'utf-8'
ما قدرات حصان طروادة للتحكم عن بعد في بايثون؟
المرحلة الأولى تُنزّل نسخة بايثون من حصان طروادة للتحكم عن بعد من نطاق خارجي هو updatenet[.]work. البرمجية تجمع بصمة الجهاز ثم تنتظر أوامر تشغيل قادمة.
- جمع معلومات النظام وإصدارات بايثون
- تحليل الأوامر الواردة وتنفيذها
- تنزيل وحدات إضافية وتشغيلها
- التواصل مع خادم التحكم عبر قنوات مشفرة
النسخ الأولى من الحزمة كانت تكتفي بفك ترميز الحمولة دون تشغيلها، لكن ذلك تغير في الإصدار 1.2.0 مع إضافة محفز مشفّر يعمل فور الاستيراد.
مخاطر البنية التحتية
النطاق سُجل في أواخر أكتوبر 2025 ويرتبط بعنوان IP هو 172.86.73[.]139 التابع لشركة RouterHosting LLC المعروفة أيضاً باسم Cloudzy. ويُشار إلى أن هذا المزود استُخدم سابقاً من مجموعات ذات صلة بدول، ما يزيد حساسية الحادث.
كيف تحمي مطوري بايثون من هجمات PyPI؟
الحادث يعيد إلى الأذهان حزمة 'spellcheckers' التي ظهرت في نوفمبر 2025 بقدرة مشابهة على جلب RAT، ويرجح المحللون أن الفاعل نفسه وراء الحملتين. وفي الفترة نفسها لوحظت حزم npm خبيثة تستهدف سرقة البيانات ومحافظ العملات الرقمية.
نصائح عملية للمطورين
تزداد المخاطر مع ظاهرة slopsquatting التي تستفيد من هلوسة أدوات الذكاء الاصطناعي لأسماء حزم غير موجودة، مما يدفع المطورين لتثبيت مكتبات مزيفة دون قصد. لذلك تصبح إجراءات التحقق جزءاً أساسياً من دورة التطوير.
- فحص تاريخ الناشر وعدد التنزيلات قبل التثبيت
- تثبيت الإصدارات المثبتة Pinning وتحديثها بحذر
- مراجعة الملفات غير المعتادة داخل الحزم
- استخدام أدوات فحص الاعتمادات في بيئات التطوير
- تفعيل مراقبة الشبكة للكشف عن اتصالات غريبة
في النهاية، تذكّرنا حزم PyPI الخبيثة بأن الثقة العمياء في المستودعات المفتوحة قد تكون مكلفة، وأن المراجعة المستمرة للمتطلبات أصبحت ضرورة يومية. اعتماد سياسات تحقق واضحة وتحديثات سريعة يقلل فرص الاختراق ويحافظ على سلاسل الإمداد البرمجية.