PyStoreRAT : Malware de Chaîne d’Approvisionnement Piloté par l’IA Ciblant les Professionnels de l’Informatique et de l’OSINT
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Morphisec a découvert une opération de malware coordonnée qui abuse de comptes GitHub dormants pour héberger des dépôts générés par IA, qui finissent par livrer une porte dérobée JavaScript/HTA surnommée PyStoreRAT. Le chargeur profile l’hôte, déploie plusieurs charges utiles dont le voleur Rhadamanthys, et ajuste dynamiquement son comportement lors de la détection de solutions AV spécifiques. Il peut se propager via des supports amovibles et s’appuie sur une infrastructure C2 rotative pour rafraîchir ses modules. La campagne cible les administrateurs informatiques, les analystes en sécurité, et les professionnels d’OSINT à travers le monde.
Enquête
Les chercheurs ont examiné les projets malveillants sur GitHub, isolé les composants de la porte dérobée, et documenté la chaîne complète d’exécution, incluant le profilage du système, la livraison de charges utiles par étapes, l’évasion AV, la propagation via disques amovibles, et le chargement à la demande de modules. Le rapport décrit en outre l’architecture circulaire des nœuds C2 qui renforce la résilience, ainsi que l’utilisation de chaînes en langue russe pour valider le lieu cible. L’analyse lie le chargeur au voleur Rhadamanthys et met en avant sa capacité à altérer les chemins de lancement.
Atténuation
Morphisec conseille d’utiliser la défense cible en mouvement automatisée pour déstabiliser l’environnement d’exécution du chargeur, bloquer les itinéraires d’exécution non fiables, et arrêter le déploiement des charges utiles. Puisque les contrôles traditionnels basés sur les signatures sont inefficaces, les défenseurs doivent s’appuyer sur des protections axées sur le comportement et la virtualisation. Restreindre l’exécution des scripts provenant de sources non fiables et surveiller de près l’activité des disques amovibles est également recommandé.
Réponse
Lorsqu’une activité PyStoreRAT est identifiée, isolez immédiatement le point de terminaison impacté, terminez le processus de la porte dérobée et retirez tous les modules persistants. Effectuez une analyse forensique pour collecter les IOCs, y compris les domaines C2, les hachages de fichiers et les tâches planifiées. Corrigez les logiciels vulnérables, appliquez des politiques d’exécution strictes de moindre privilège, et surveillez continuellement GitHub pour les activités de dépôt malveillantes ou suspectes.
Flux d’attaque
Détections
Comportement suspect de contournement de défense MSHTA LOLBAS par détection de commandes associées (via process_creation)
Voir
Tâche planifiée suspecte (via audit)
Voir
Command and Control suspect par requête DNS avec domaine de premier niveau inhabituel (TLD) (via dns)
Voir
Exécution de Python depuis des dossiers suspects (via cmdline)
Voir
Exécution suspecte de Mshta sans fichier HTA (via cmdline)
Voir
Détection de PyStoreRAT utilisant une infrastructure C2 circulaire et rotative et un téléchargement dynamique de modules [Connexion Réseau Windows]
Voir
Détection de la réactivation de compte GitHub dormant pour des projets malveillants [GitHub – Serveur Web]
Voir
Exécution de simulation
Prérequis : Le contrôle pré-vol de télémetrie & baseline doit avoir été passé.
-
Narration & Commandes d’attaque :
- Réactiver un compte dormant – l’adversaire utilise l’UI ou l’API GitHub pour changer le statut du compte de « dormant » à « actif ».
- Publier un dépôt malveillant généré par IA – immédiatement après la réactivation, un nouveau dépôt nommé
ai‑osint‑toolkitest créé, contenant un README qui fait la publicité de « projets générés par IA ». - Ajouter un commit de « maintenance » qui intègre la porte dérobée PyStoreRAT ; le message du commit inclut intentionnellement le mot « maintenance » pour satisfaire la règle de détection.
- Pousser le code malveillant – le push génère un événement
pushd’audit, mais la règle que nous testons ne surveille que l’entréede réactivation du comptedans le journal d’audit, donc le déclencheur principal est l’entrée de journal de réactivation avec la description signalée.
-
Script de test de régression : (Bash utilisant l’interface CLI de GitHub
gh– suppose que l’acteur attaquant a un jeton d’accès personnel avecl'autorisation admin:orgétendue)# simulate_attack.sh # Prérequis : gh CLI installé et authentifié en tant qu'attaquant # 1. Réactiver le compte dormant (simulé par la mise à jour d'un champ utilisateur) gh api -X PATCH /admin/users/attacker_user -f state=active -f note="reactivation: AI-generated projects; maintenance commits scheduled" # 2. Créer un dépôt malveillant gh repo create attacker_user/ai-osint-toolkit --public --description "AI‑generated OSINT tools" # 3. Ajouter un fichier malveillant (PyStoreRAT) et commit cd ai-osint-toolkit echo "# PyStoreRAT backdoor" > pystorerat.py git add pystorerat.py git commit -m "Initial commit - maintenance commits: embed backdoor" git push origin main # 4. Optionnel : créer un deuxième commit de maintenance pour imiter une activité réelle echo "# Update README" >> README.md git add README.md git commit -m "maintenance commit: update documentation" git push origin main -
Nettoyer les commandes :
# cleanup_attack.sh # Supprimer le dépôt malveillant gh repo delete attacker_user/ai-osint-toolkit -y # Optionnellement, remettre le compte attaquant en mode dormant (si l'API le permet) gh api -X PATCH /admin/users/attacker_user -f state=dormant