Packagist Supply Chain Attack Infects 8 Packages Using GitHub-Hosted Linux Malware

1 minute de lecture

Mis à jour :

Attaque de chaîne d’approvisionnement via Packagist et GitHub

Une campagne coordonnée a récemment compromis huit paquets sur Packagist en y injectant du code malveillant. Cette attaque se distingue par son approche “multi-écosystème” : au lieu de modifier le fichier composer.json (propre à PHP), les attaquants ont inséré des scripts malveillants dans le fichier package.json afin de cibler les développeurs utilisant des outils de construction JavaScript au sein de leurs projets PHP.

Points clés :

  • Mécanisme d’exécution : Utilisation de scripts postinstall dans package.json et de workflows GitHub Actions pour exécuter du code à distance.
  • Comportement malveillant : Téléchargement d’un binaire Linux depuis une URL GitHub, enregistrement sous /tmp/.sshd, attribution des droits d’exécution et exécution en arrière-plan.
  • Dissimulation : Tentative de masquer l’activité en désactivant la vérification TLS et en supprimant les erreurs.
  • Portée : Plus de 770 fichiers potentiellement compromis sur GitHub, suggérant une campagne de grande envergure.

Vulnérabilités :

  • Aucune CVE spécifique n’est associée, il s’agit d’une injection de code via des fichiers de configuration de cycle de vie (hooks postinstall).

Recommandations :

  • Audit des dépendances : Ne pas se limiter à l’analyse des fichiers composer.json. Examiner systématiquement les fichiers package.json et les scripts de build dans les dépendances, même dans les projets PHP.
  • Surveillance des workflows : Vérifier l’intégrité des fichiers .github/workflows/ pour détecter toute exécution de binaire suspecte ou non autorisée lors des processus d’intégration continue (CI).
  • Isolation : Utiliser des outils d’analyse de la chaîne d’approvisionnement logicielle pour détecter les comportements suspects lors de l’installation des paquets (tels que les accès réseau ou les écritures dans /tmp).
  • Réaction : Si l’un des huit paquets listés était utilisé, révoquer les accès et auditer les systèmes pour détecter toute persistance de l’exécutable /tmp/.sshd.

Source