Převzato kontrolu nad 14 PHP knihovnami v úložišti Packagist

Správci repozitáře balíčků Packagist odhalili informace o útoku, který vedl ke kontrole účtů doprovodných 14 PHP knihoven, včetně tak populárních balíčků, jako je instantiator (celkem 526 milionů instalací, 8 milionů instalací za měsíc, 323 závislých balíčků), sql -formatter (94 milionů instalací celkem, 800 tisíc za měsíc, 109 závislých balíčků), doctrine-cache-bundle (celkem 73 milionů instalací, 500 tisíc za měsíc, 348 závislých balíčků) a rcode-detector-decoder (celkem 20 milionů instalací, 400 tisíc měsíčně, 66 závislých balíčků).

Po kompromitaci účtů útočník upravil soubor skladatel.json a do pole popisu projektu přidal informaci, že hledá práci související s informační bezpečností. Aby mohl útočník provést změny v souboru skladatel.json, nahradil adresy URL původních úložišť odkazy na upravené forky (Packagist poskytuje pouze metadata s odkazy na projekty vyvinuté na GitHubu; při instalaci pomocí „instalace skladatele“ nebo „aktualizace skladatele“ příkaz, balíčky se stahují přímo z GitHubu). Například u balíčku acmephp se propojené úložiště změnilo z acmephp/acmephp na neskafe3v1/acmephp.

Útok zřejmě nebyl proveden za účelem spáchání škodlivého jednání, ale jako demonstrace nepřípustnosti nedbalého přístupu k používání duplicitních přihlašovacích údajů na různých stránkách. Útočník zároveň v rozporu se zavedenou praxí „etického hackování“ předem neinformoval vývojáře knihoven a správce repozitářů o prováděném experimentu. Útočník později oznámil, že poté, co se mu podaří zakázku získat, zveřejní podrobnou zprávu o metodách použitých při útoku.

Podle údajů zveřejněných správci Packagist používaly všechny účty, které spravovaly napadené balíčky, snadno uhodnutelná hesla bez povolení dvoufaktorové autentizace. Údajně hacknuté účty používaly hesla, která byla používána nejen v Packagist, ale i v jiných službách, jejichž databáze hesel byly dříve kompromitovány a staly se veřejně dostupnými. Zachycení e-mailů vlastníků účtů, které byly propojeny s doménami, jejichž platnost vypršela, lze také použít jako možnost získat přístup.

Kompromitované balíčky:

  • acmephp/acmephp (124,860 XNUMX instalací za celou dobu životnosti balíčku)
  • acmephp/core (419,258 XNUMX)
  • acmephp/ssl (531,692 XNUMX)
  • doctrine/doctrine-cache-bundle (73,490,057)
  • doktrína/doktrína-modul (5,516,721)
  • doktrína/doktrína-mongo-odm-modul (516,441 XNUMX)
  • doktrína/doktrína-orm-modul (5,103,306)
  • doktrína/instanciátor (526,809,061 XNUMX XNUMX)
  • růstová kniha/růstová kniha (97,568 XNUMX
  • jdorn/file-system-cache (32,660 XNUMX)
  • jdorn/sql-formatter (94,593,846 XNUMX XNUMX)
  • khanamiryan/qrcode-detector-decoder (20,421,500 XNUMX XNUMX)
  • object-calisthenics/phpcs-calisthenics-rules (2,196,380 XNUMX XNUMX)
  • tga/simhash-php, tgalopin/simhashphp (30,555 XNUMX)

Zdroj: opennet.ru

Přidat komentář