3 ديال الحزم خبيثة فـ PyPI كتنشر برمجيات ZiChatBot الخبيثة باستعمال Zulip كمركز قيادة وتحكم (C2)
PyPI Packages Deliver ZiChatBot Malware via Zulip APIs on Windows and Linux
3 ديال الحزم خبيثة فـ PyPI كتنشر برمجيات ZiChatBot الخبيثة باستعمال Zulip كمركز قيادة وتحكم (C2)
خلاصة: باحثين ديال Kaspersky كتاشفو 3 ديال الحزم مسمومة فمستودع PyPI (وهي uuid32-utils، و colorinal، و termncolor) ترفعات بين 16 و 22 يوليوز 2025، وهاد الحزم كتنشر بشكل سري ZiChatBot، لي هي عائلة ديال البرمجيات الخبيثة ماكانتش معروفة من قبل. هاد البرمجية كتستعمل الـ REST APIs العمومية ديال تطبيق Zulip بلاصت السيرفرات التقليدية ديال القيادة والتحكم (C2). الكود ديال الـ dropper فيه تشابه بنسبة 64% مع برمجيات خبيثة مرتبطة بمجموعة OceanLotus (APT32)، وخا التبنّي النهائي ديال هاد الهجوم مازال مامؤكدش.
شنو وقع
تكتاشفو تلاتة ديال الحزم خاصة بـ Python فمستودع Python Package Index (PyPI) كانت كتخفى على أساس أنها مكتبات أدوات مساعدة شرعية، ولكن تصيبات باش تنشر برمجيات ZiChatBot الخبيثة فأنظمة Windows و Linux. هاد الحزم — uuid32-utils (تيليشارجات 1,479 مرة)، و colorinal (614 مرة)، و termncolor (387 مرة) — ترفعات فظرف سبع أيام بين 16 و 22 يوليوز 2025 قبل ما يتم الحذف ديالها.
فالوقت لي uuid32-utils و colorinal كانو كيتشاركو فحمولة (payload) خبيثة بحال بحال، الحزمة ديال termncolor كانت خدامة كفخ ديال التبعيات (dependency trap)، حيت كانت كتحط colorinal كـ dependency بشكل منصوص عليه باش تنشر سلسلة الهجوم.
بالنسبة لـ Windows، ملي كيتم التثبيت ديال أي وحدة من uuid32-utils أو colorinal، كيتم استخراج واحد الـ DLL dropper سميتو "terminate.dll" للديسك. وملي كتدير import لهاد المكتبة فشي مشروع، كيتم تحميل هاد الـ DLL وكيخلق استمرارية (persistence) فـ Windows Registry عبر إدخال auto-run قبل ما يمسح راسو من النظام.
أما فأنظمة Linux، كيتم زرع الـ shared object dropper ("terminate.so") فالمسار "/tmp/obsHub/obs-check-update" وكيقاد إدخال فـ crontab باش يضمن الاستمرارية ديالو.
البنية التقنية ديال تنفيذ الأوامر فـ ZiChatBot مبدلة على التصميم التقليدي ديال البرمجيات الخبيثة. بلاصت ما تتواصل مع سيرفر مخصص للقيادة والتحكم، هاد البرمجية كتستغل الـ REST APIs ديال Zulip — لي هو تطبيق عمومي للكتابة وتواصل الفرق — كبنية تحتية للـ C2. ومن بعد ما كتنفذ الـ shellcode لي كيوصلها من السيرفر، كتبلغ البرمجية على نجاح العملية عن طريق إرسال إيموجي ديال قلب لمركز التحكم.
Kaspersky وصفات هاد الحملة بأنها "هجوم على سلسلة التزويد فـ PyPI مخطط ومنفذ بعناية". ربط هاد الهجوم بـ فاعل التهديد (threat actor) محدد مازال غير مؤكد، وخا الكود ديال الـ dropper كيبين نسبة تشابه ديال 64% مع برمجيات خبيثة كانت كتستعملها مجموعة OceanLotus (والمعروفة حتى بـ APT32)، لي هي مجموعة اختراق مدعومة من الفيتنام.
علاش هادشي مهم
هاد الهجوم كيبين اختراق متطور لـ سلسلة التزويد كيستهدف أي مطور من خلال القنوات الموثوقة. PyPI كيشهد الملايين ديال عمليات التثبيت شهريا؛ أي مهاجم قدر يحط برمجيات خبيثة فشجرة التبعيات (dependency tree)، يقدر يوصل لعدد كبير من الضحايا بأقل مجهود ديال الاستهداف.
استعمال خدمة عمومية وشرعية (Zulip) كبنية تحتية للقيادة والتحكم (C2) كيعقد عملية الاكتشاف بزاف. المؤشرات ديال الشبكة لي كتكشف النطاقات (domains) المخصصة للـ C2 ماغاديش تلاحظ هاد النشاط. محللين الـ SOC والفرق ديال الاستجابة للحوادث خاصهم دابا يراقبو أي اتصالات API غير عادية لخدمات Zulip जाية من processes ماشي متصفحات (non-browser processes).
بالنسبة للمطورين، هاد الهجوم كيأكد على المخاطر ديال التبعيات غير المباشرة (transitive dependencies). التثبيت ديال termncolor، لي كانت كتبان نقية ومافيها مشكل، كيجر معاه بشكل تلقائي الحزمة الخبيثة colorinal. هاد السلسلة كتبين كيفاش الاختراقات ديال سلسلة التزويد كتستغل الثقة الضمنية لي كيحطوها المطورين فعمليات التعامل مع التبعيات.
إلا تأكد رسميا باللي OceanLotus هي لي ورا هادشي، هاد الحادث غادي يشكل إشارة واضحة على تغيير فمنهجية الاستهداف ديال المجموعة — بحيث غتكون فاتت المرحلة ديال تصيد (phishing) وتسميم Visual Studio Code باش تستغل النظام البيئي (ecosystem) لحزم Python على نطاق واسع.
الأنظمة المتضررة والـ CVEs
- uuid32-utils — حزمة PyPI خبيثة
- colorinal — حزمة PyPI خبيثة
- termncolor — حزمة PyPI خبيثة (dependency wrapper)
- أنظمة Windows — عن طريق الـ dropper المسمى "terminate.dll"
- أنظمة Linux — عن طريق الـ dropper المسمى "terminate.so"
- Zulip — تم الاستغلال ديالو كمحطة للـ C2 عبر الـ REST APIs
ما تنشر حتى CVE مخصص لهاد العمليات حتى لوقت نشر هاد المقال.
شنو خاصنا نديرو
- مسح الحزم الخاصة بـ uuid32-utils، و colorinal، و termncolor من كاع بيئات التطوير بـ Python ومن مسارات الـ CI/CD فالبلاصة.
- راجع شجرة التبعيات فالمشاريع لي خدام عليها باش تأكد بلي هاد الحزم ماداخلاش بشكل غير مباشر فـ dependency tree ديالك.
- قلب فـ system logs و process telemetry على أي دليل ديال التحميل أو التنفيذ ديال "terminate.dll" أو "terminate.so".
- فأنظمة Windows، تأكد من الـ Registry واش كاين شي إدخالات ديال auto-run قادها الـ dropper وقوم بالحذف ديالها.
- فأنظمة Linux، فتش مزيان فإدخالات الـ crontab والمسار "/tmp/obsHub/obs-check-update" باش تشوف واش كاين أي مكونات خبيثة.
- راجع الـ outbound traffic الخاص بـ Zulip APIs (بحال api.zulip.com، و tile.zulip.com) لي خارج من شي processes ماشي متصفحات؛ حيت هادشي كيتعتبر نشاط شاذ.
- إلا كانو هاد الحزم تم التثبيت ديالهم فأنظمتك، تعامل مع النظام على أنه مخترق وتنفذ فيه كود ملي درتي import للباكيدج، حتى تقوم بعملية الإصلاح الشاملة ديالو.
أسئلة باقا مطروحة
- التبنّي النهائي للعملية وثباتها على مجموعة OceanLotus كيعتمد فقط على تشابه فالكود بنسبة 64%؛ Kaspersky ما جابتش أدلة قاطعة أخرى (بحال البنية التحتية، أو أنماط الأوامر، أو الاستهداف).
- العدد الإجمالي ديال الأنظمة لي تخترقات ونطاق الاستهداف ديال هاد الحملة مازال مامعروفش.
- الطبيعة والنطاق ديال الـ shellcode لي كيوصل عبر قناة الـ C2 ديال ZiChatBot ما موثقاش حتى لدابا.
- واش هاد الحزم باقا متوفرة فـ المرايا (mirrors) ديال PyPI، أو فمستودعات بديلة، أو فالكاش ديال الحزم كاحتياط برا المستودع الرسمي ديال PyPI.
- واش كاينين حزم أخرى فـ PyPI تخترقات بنفس الطريقة فنفس الإطار الزمني أو كجزء من نفس الحملة.
المصدر
PyPI Packages Deliver ZiChatBot Malware via Zulip APIs on Windows and Linux


