OceanLotus suspected of using PyPI to deliver ZiChatBot malware
Mis à jour :
Attaque par chaîne d’approvisionnement : OceanLotus utilise PyPI pour déployer ZiChatBot
Le groupe APT OceanLotus a été identifié derrière une campagne de compromission par chaîne d’approvisionnement via le dépôt PyPI. Les attaquants ont publié des bibliothèques Python malveillantes imitant des outils légitimes pour infecter les systèmes Windows et Linux. Une fois installés, ces paquets déploient une nouvelle famille de logiciels malveillants baptisée « ZiChatBot ».
Points clés :
- Vecteur d’attaque : Utilisation de paquets « wheel » malveillants sur PyPI (
uuid32-utils,colorinal,termncolor). Certains paquets sains incluent les paquets malveillants comme dépendances pour dissimuler l’infection. - Fonctionnement : Les paquets téléchargent un « dropper » (
terminate.dllsous Windows outerminate.sosous Linux) qui s’exécute lors de l’importation de la bibliothèque, déploie la charge utile, puis s’auto-supprime. - Infrastructure C2 inhabituelle : ZiChatBot n’utilise pas de serveurs C2 classiques, mais détourne les API REST de l’application de messagerie collaborative Zulip pour recevoir des ordres (exécution de shellcode) et communiquer les résultats via des émojis.
- Cible : Bien qu’historiquement concentré sur l’Asie-Pacifique, OceanLotus cherche ici à toucher une base plus large d’utilisateurs Python à travers le monde.
Vulnérabilités : Aucun identifiant CVE spécifique n’est associé à cette attaque, car elle repose sur l’ingénierie sociale et l’empoisonnement de dépôts logiciels publics (Supply Chain Attack).
Recommandations :
- Gestion des dépendances : Vérifiez rigoureusement l’origine et la réputation des paquets Python installés via
pip. Évitez l’installation de bibliothèques inconnues ou récemment créées. - Filtrage réseau : Bloquez l’accès au domaine
helper.zulipchat.comdans vos politiques de sécurité pour empêcher toute communication résiduelle avec l’infrastructure C2 du malware. - Surveillance système : Inspectez les entrées de registre suspectes (ex: clés créées dans
%LOCALAPPDATA%sousvcpacket) et les tâches planifiées (crontab) pointant vers des répertoires temporaires comme/tmp/obsHub/. - Analyse : En cas de doute sur une bibliothèque, auditez son code source (
__init__.py) à la recherche de chargements de DLL/SO ou d’appels à des fonctions API inhabituelles.
