Administratorzy repozytorium pakietów Packagist ujawnili informację o ataku, w wyniku którego przejęto kontrolę nad kontami towarzyszących mu 14 bibliotek PHP, w tym tak popularnych pakietów jak instancjator (łącznie 526 mln instalacji, 8 mln instalacji miesięcznie, 323 pakiety zależne), sql -formatter (łącznie 94 miliony instalacji, 800 tysięcy miesięcznie, 109 zależnych pakietów), doktryna-cache-bundle (łącznie 73 miliony instalacji, 500 tysięcy miesięcznie, 348 zależnych pakietów) i rcode-detektor-dekoder (łącznie 20 milionów instalacji, 400 tys. miesięcznie, 66 pakietów zależnych).
Po zhakowaniu kont atakujący zmodyfikował plik Composer.json, dodając w polu opisu projektu informację, że poszukuje pracy związanej z bezpieczeństwem informacji. Aby dokonać zmian w pliku Composer.json, osoba atakująca zastąpiła adresy URL oryginalnych repozytoriów linkami do zmodyfikowanych forków (Packagist udostępnia jedynie metadane z linkami do projektów opracowanych na GitHubie; podczas instalacji z opcją „composer install” lub „composer update” polecenie, pakiety są pobierane bezpośrednio z GitHuba). Na przykład dla pakietu acmephp połączone repozytorium zostało zmienione z acmephp/acmephp na neskafe3v1/acmephp.
Najwyraźniej atak został przeprowadzony nie w celu popełnienia złośliwych działań, ale jako wykazanie niedopuszczalności nieostrożnego podejścia do stosowania zduplikowanych danych uwierzytelniających w różnych witrynach. Jednocześnie atakujący, wbrew przyjętej praktyce „etycznego hakowania”, nie powiadomił wcześniej twórców bibliotek i administratorów repozytoriów o prowadzonym eksperymencie. Napastnik zapowiedział później, że po zdobyciu tej pracy opublikuje szczegółowy raport na temat metod zastosowanych w ataku.
Według danych opublikowanych przez administratorów Packagist, wszystkie konta zarządzające zaatakowanymi pakietami korzystały z łatwych do odgadnięcia haseł bez włączania uwierzytelniania dwuskładnikowego. Zarzuca się, że na zhakowanych kontach używano haseł, które były używane nie tylko w Packagist, ale także w innych usługach, których bazy danych haseł zostały wcześniej naruszone i stały się publicznie dostępne. Przechwytywanie e-maili właścicieli kont powiązanych z wygasłymi domenami może również służyć jako opcja uzyskania dostępu.
Zaatakowane pakiety:
- acmephp/acmephp (124,860 XNUMX instalacji przez cały okres obowiązywania pakietu)
- acmephp/rdzeń (419,258)
- acmephp/ssl (531,692 XNUMX)
- pakiet doktryn/doktryn-cache-pakiet (73,490,057 XNUMX XNUMX)
- moduł doktryny/doktryny (5,516,721)
- doktryna/doktryna-mongo-odm-module (516,441)
- doktryna/moduł-doktryny-orm (5,103,306)
- doktryna/inicjator (526,809,061 XNUMX XNUMX)
- księga wzrostu/księga wzrostu (97,568
- jdorn/cache-systemu-plików (32,660)
- formater jdorn/sql (94,593,846 XNUMX XNUMX)
- Khanamiryan/qrcode-detektor-dekoder (20,421,500 XNUMX XNUMX)
- zasady kalisteniki obiektowej/phpcs (2,196,380)
- tga/simhash-php, tgalopin/simhashphp (30,555)
Źródło: opennet.ru