Packagist'i paketirepositooriumi administraatorid avalikustasid teavet rünnaku kohta, mille käigus saadud kontroll 14 PHP-raamatukogus, sealhulgas populaarsetes pakettides nagu instantiator (kõik kokku 526 miljonit installi, 8 miljonit installi kuus, 323 sõltuvat paketti), sql-formatter (kõik kokku 94 miljonit installi, 800 tuhat kuus, 109 sõltuvat paketti), doctrine-cache-bundle (kõik kokku 73 miljonit installi, 500 tuhat kuus, 348 sõltuvat paketti) ja rcode-detector-decoder (kõik kokku 20 miljonit installi, 400 tuhat kuus, 66 sõltuvat paketti).
Pärast kontode kompromiteerimist muutis ründaja faili composer.json, lisades projekti kirjelduse väljale teavet selle kohta, et ta otsib ametikohta, mis on seotud infotehnoloogia turvalisusega. Faili composer.json muutmiseks asendas ründaja originaalrepo URL-d modifitseeritud forkide linkidega (Packagist esitatakse ainult metainformatsioon koos linkidega projektidele, mida arendatakse GitHubis; käskude „composer install“ või „composer update“ käitamisel laaditakse paketid otse GitHubist). Näiteks oli paketiga acmephp seotud repositorium asendatud acmephp/acmephp-lt neskafe3v1/acmephp.
Tundub, et rünnak ei olnud suunatud kahjustava tegevuse teostamisele, vaid näidatud, et kergemeelselt korduvate paroolide kasutamine erinevates saitides on vastuvõetamatu. Ründaja ei teavitanud arendajaid ja hoidla administraatoreid katse läbiviimisest, rikkudes sealjuures levinud "eetiliste häkkerite" praktikat. Hiljem teatas ründaja, et pärast töö saamist avaldab ta üksikasjaliku aruande rünnaku käigus kasutatud meetoditest.
Packagist'i administraatorite avaldatud andmete kohaselt kasutati kõigis nendes kontodes, mis haldasid kompromiteeritud pakette, lihtsaid, kergesti genereeritavaid paroole, ilma kahefaktorilise autentimiseta. On väidetud, et rünnatud kontodes kasutati paroole, mis olid kasutusele võetud mitte ainult Packagist'is, vaid ka teistes teenustes, mille paroolide andmebaasid olid varem kompromiteeritud ja avalikustatud. Ühe võimaliku ligipääsu saamise variandina võidi kasutada ka kontohaldurite e-kirjade haaramist, mis olid seotud aegunud domeenidega.
Ohustatud paketid:
- acmephp/acmephp (124 860 installatsiooni kogu aeg)
- acmephp/core (419 258)
- acmephp/ssl (531 692)
- doctrine/doctrine-cache-bundle (73 490 057)
- doctrine/doctrine-module (5 516 721)
- doctrine/doctrine-mongo-odm-module (516 441)
- doctrine/doctrine-orm-module (5 103 306)
- doctrine/instantiator (526 809 061)
- growthbook/growthbook (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)
Allikas: opennet.ru
