Übernahme der Kontrolle über 14 PHP-Bibliotheken im Packagist-Repository

Administratoren des Packagist-Paket-Repositorys gaben Details eines Angriffs bekannt, der die Kontrolle über die Konten der Betreuer von 14 PHP-Bibliotheken übernahm, darunter so beliebte Pakete wie Instantiator (insgesamt 526 Millionen Installationen, 8 Millionen Installationen pro Monat, 323 abhängige Pakete) und SQL -formatter (94 Millionen Installationen insgesamt, 800 pro Monat, 109 abhängige Pakete), Doctrine-Cache-Bundle (73 Millionen Installationen insgesamt, 500 pro Monat, 348 abhängige Pakete) und Rcode-Detector-Decoder (20 Millionen Installationen insgesamt, 400 pro Monat, 66 abhängige Pakete).

Nachdem die Konten kompromittiert worden waren, änderte der Angreifer die Datei „composer.json“ und fügte dem Projektbeschreibungsfeld die Information hinzu, dass er nach einem Job im Bereich Informationssicherheit suchte. Um eine Änderung an der Datei „composer.json“ vorzunehmen, ersetzte der Angreifer die URLs der ursprünglichen Repositories durch Links zu geänderten Forks (nur Metadaten mit Links zu auf GitHub entwickelten Projekten werden in Packagist bereitgestellt, wenn die Installation mit „composer install“ oder „ Mit dem Befehl „Composer Update“ werden die Pakete direkt von GitHub heruntergeladen. Beispielsweise wurde für das Paket acmephp das verknüpfte Repository von acmephp/acmephp in neskafe3v1/acmephp geändert.

Anscheinend wurde der Angriff nicht durchgeführt, um böswillige Handlungen durchzuführen, sondern um die Unzulässigkeit einer nachlässigen Haltung gegenüber der Verwendung doppelter Anmeldeinformationen auf verschiedenen Websites zu demonstrieren. Gleichzeitig hat der Angreifer entgegen der etablierten Praxis des „ethischen Hackings“ Bibliotheksentwickler und Repository-Administratoren nicht vorab über das Experiment informiert. Später sagte der Angreifer, dass er, sobald es ihm gelungen sei, einen Job zu finden, einen detaillierten Bericht über die bei dem Angriff verwendeten Methoden veröffentlichen werde.

Den von Packagist-Administratoren veröffentlichten Informationen zufolge verwendeten alle Konten, die kompromittierte Pakete verwalteten, einfach zu erpressende Passwörter, ohne die Zwei-Faktor-Authentifizierung zu aktivieren. Es wird behauptet, dass die gehackten Konten Passwörter verwendeten, die nicht nur in Packagist, sondern auch in anderen Diensten verwendet wurden, deren Passwortdatenbanken zuvor kompromittiert und veröffentlicht wurden. Auch die Erfassung der E-Mails von Kontoinhabern, die an abgelaufene Domains gebunden waren, könnte als Option für den Zugriff genutzt werden.

Kompromittierte Pakete:

  • acmephp/acmephp (124,860 Installationen während der Lebensdauer des Pakets)
  • acmephp/core(419,258)
  • acmephp/ssl (531,692)
  • doctrine/doctrine-cache-bundle (73,490,057)
  • Lehre/Doktrin-Modul (5,516,721)
  • doctrine/doctrine-mongo-odm-module (516,441)
  • Lehre/Doktrin-Orm-Modul (5,103,306)
  • Lehre/Instantiator (526,809,061)
  • Wachstumsbuch/Wachstumsbuch (97,568
  • jdorn/file-system-cache (32,660)
  • jdorn/sql-formatter (94,593,846)
  • khanamiryan/qrcode-detector-decoder (20,421,500)
  • object-calisthenics/phpcs-calisthenics-rules (2,196,380)
  • tga/simhash-php, tgalopin/simhashphp (30,555)

Source: opennet.ru

Kommentar hinzufügen