Prise de contrôle de 14 bibliothèques PHP dans le référentiel Packagist

Les administrateurs du référentiel de packages Packagist ont divulgué des informations sur une attaque qui a abouti au contrôle des comptes des 14 bibliothèques PHP associées, y compris des packages aussi populaires que instantiator (526 millions d'installations au total, 8 millions d'installations par mois, 323 packages dépendants), sql -formatter (94 millions d'installations au total, 800 109 par mois, 73 packages dépendants), doctrine-cache-bundle (500 millions d'installations au total, 348 20 par mois, 400 packages dépendants) et rcode-detector-decoder (66 millions d'installations au total, XNUMX XNUMX par mois, XNUMX forfaits dépendants).

Après avoir compromis les comptes, l'attaquant a modifié le fichier composer.json, en ajoutant des informations dans le champ de description du projet selon lesquelles il recherchait un emploi lié à la sécurité de l'information. Pour apporter des modifications au fichier composer.json, l'attaquant a remplacé les URL des référentiels d'origine par des liens vers des forks modifiés (Packagist ne fournit que des métadonnées avec des liens vers des projets développés sur GitHub ; lors de l'installation avec « composer install » ou « composer update » commande, les packages sont téléchargés directement depuis GitHub). Par exemple, pour le package acmephp, le référentiel lié est passé de acmephp/acmephp à neskafe3v1/acmephp.

Apparemment, l'attaque n'a pas été menée dans le but de commettre des actions malveillantes, mais pour démontrer l'inadmissibilité d'une attitude imprudente à l'égard de l'utilisation d'informations d'identification en double sur différents sites. Dans le même temps, l'attaquant, contrairement à la pratique établie du « piratage éthique », n'a pas informé à l'avance les développeurs de bibliothèques et les administrateurs de référentiels de l'expérience en cours. L'attaquant a annoncé plus tard qu'après avoir réussi à obtenir le poste, il publierait un rapport détaillé sur les méthodes utilisées dans l'attaque.

Selon les données publiées par les administrateurs de Packagist, tous les comptes gérant les packages compromis utilisaient des mots de passe faciles à deviner sans activer l'authentification à deux facteurs. Il est allégué que les comptes piratés utilisaient des mots de passe qui étaient utilisés non seulement dans Packagist, mais également dans d'autres services, dont les bases de données de mots de passe avaient été précédemment compromises et étaient devenues publiques. La capture des e-mails des propriétaires de comptes liés à des domaines expirés pourrait également être utilisée comme option pour y accéder.

Forfaits compromis :

  • acmephp/acmephp (124,860 XNUMX installations pour toute la durée de vie du package)
  • acmephp/core (419,258 XNUMX)
  • acmephp/ssl (531,692 XNUMX)
  • doctrine/doctrine-cache-bundle (73,490,057 XNUMX XNUMX)
  • doctrine/doctrine-module (5,516,721 XNUMX XNUMX)
  • doctrine/doctrine-mongo-odm-module (516,441 XNUMX)
  • doctrine/doctrine-orm-module (5,103,306 XNUMX XNUMX)
  • doctrine/instanciateur (526,809,061 XNUMX XNUMX)
  • carnet de croissance/carnet de croissance (97,568 XNUMX
  • jdorn/file-system-cache (32,660 XNUMX)
  • jdorn/sql-formatter (94,593,846 XNUMX XNUMX)
  • khanamiryan/qrcode-détecteur-décodeur (20,421,500 XNUMX XNUMX)
  • objet-calisthenics/phpcs-calisthenics-règles (2,196,380 XNUMX XNUMX)
  • tga/simhash-php, tgalopin/simhashphp (30,555 XNUMX)

Source: opennet.ru

Ajouter un commentaire