Prevzal kontrolu nad 14 PHP knižnicami v repozitári Packagist

Správcovia úložiska balíkov Packagist zverejnili informácie o útoku, ktorý viedol k ovládnutiu účtov sprievodných 14 PHP knižníc, vrátane takých populárnych balíkov ako instantiator (celkovo 526 miliónov inštalácií, 8 miliónov inštalácií za mesiac, 323 závislých balíkov), sql -formátor (94 miliónov inštalácií celkovo, 800 tisíc mesačne, 109 závislých balíkov), doctrine-cache-bundle (celkovo 73 miliónov inštalácií, 500 tisíc mesačne, 348 závislých balíkov) a rcode-detector-decoder (celkovo 20 miliónov inštalácií), 400 tisíc mesačne, 66 závislých balíkov).

Po kompromitovaní účtov útočník upravil súbor skladateľ.json a do poľa popisu projektu pridal informáciu, že hľadá prácu súvisiacu s informačnou bezpečnosťou. Na vykonanie zmien v súbore skladateľ.json útočník nahradil adresy URL pôvodných úložísk odkazmi na upravené forky (Packagist poskytuje iba metadáta s odkazmi na projekty vyvinuté na GitHub; pri inštalácii s „inštaláciou skladateľa“ alebo „aktualizáciou skladateľa“ príkaz, balíčky sa stiahnu priamo z GitHubu). Napríklad pre balík acmephp sa prepojené úložisko zmenilo z acmephp/acmephp na neskafe3v1/acmephp.

Útok bol zjavne vykonaný nie za účelom spáchania zlomyseľného konania, ale ako demonštrácia neprípustnosti neopatrného postoja k používaniu duplicitných prihlasovacích údajov na rôznych stránkach. Útočník zároveň v rozpore so zavedenou praxou „etického hackovania“ vopred neinformoval vývojárov knižníc a správcov úložísk o vykonanom experimente. Útočník neskôr oznámil, že keď sa mu podarí získať prácu, zverejní podrobnú správu o metódach použitých pri útoku.

Podľa údajov zverejnených administrátormi Packagist všetky účty, ktoré spravovali napadnuté balíky, používali ľahko uhádnuteľné heslá bez toho, aby umožňovali dvojfaktorovú autentifikáciu. Napadnuté účty údajne používali heslá, ktoré sa používali nielen v Packagist, ale aj v iných službách, ktorých databázy hesiel boli predtým kompromitované a stali sa verejne dostupnými. Zachytenie e-mailov vlastníkov účtov, ktoré boli prepojené s expirovanými doménami, by sa tiež dalo použiť ako možnosť získania prístupu.

Kompromitované balíčky:

  • acmephp/acmephp (124,860 XNUMX inštalácií za celú životnosť balíka)
  • acmephp/core (419,258 XNUMX)
  • acmephp/ssl (531,692 XNUMX)
  • doctrine/doctrine-cache-bundle (73,490,057)
  • doktrína/doktrínový modul (5,516,721 XNUMX XNUMX)
  • 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)
  • rastová kniha/rastová 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

Pridať komentár