Administratorii depozitului de pachete Packagist au dezvăluit informații despre un atac care a dus la controlul conturilor celor 14 biblioteci PHP însoțitoare, inclusiv pachete populare precum instantiator (526 milioane de instalări în total, 8 milioane de instalări pe lună, 323 de pachete dependente), sql -formatter (94 milioane instalații totale, 800 mii pe lună, 109 pachete dependente), doctrine-cache-bundle (73 milioane instalații totale, 500 mii pe lună, 348 pachete dependente) și rcode-detector-decoder (20 milioane instalații totale, 400 mii pe lună, 66 pachete dependente).
După ce a compromis conturile, atacatorul a modificat fișierul composer.json, adăugând în câmpul de descriere a proiectului informații despre care căuta un loc de muncă legat de securitatea informațiilor. Pentru a face modificări la fișierul composer.json, atacatorul a înlocuit adresele URL ale depozitelor originale cu link-uri către fork-uri modificate (Packagist furnizează numai metadate cu link-uri către proiecte dezvoltate pe GitHub; la instalarea cu „instalarea compozitorului” sau „actualizarea compozitorului” comanda, pachetele sunt descărcate direct de pe GitHub). De exemplu, pentru pachetul acmephp, depozitul legat a fost schimbat din acmephp/acmephp în neskafe3v1/acmephp.
Aparent, atacul a fost efectuat nu pentru a comite acțiuni rău intenționate, ci ca o demonstrație a inadmisibilității unei atitudini neglijente față de utilizarea acreditărilor duplicate pe diferite site-uri. În același timp, atacatorul, contrar practicii stabilite de „hacking etic”, nu a anunțat în prealabil dezvoltatorii bibliotecii și administratorii depozitelor despre experimentul în curs. Atacatorul a anunțat ulterior că, după ce va reuși să obțină postul, va publica un raport detaliat despre metodele folosite în atac.
Conform datelor publicate de administratorii Packagist, toate conturile care gestionau pachetele compromise au folosit parole ușor de ghicit fără a activa autentificarea cu doi factori. Se presupune că conturile piratate au folosit parole care au fost folosite nu numai în Packagist, ci și în alte servicii, ale căror baze de date cu parole au fost compromise anterior și au devenit disponibile public. Capturarea e-mailurilor proprietarilor de conturi care au fost conectate la domenii expirate ar putea fi, de asemenea, utilizată ca opțiune pentru a obține acces.
Pachete compromise:
- acmephp/acmephp (124,860 de instalări pe toată durata de viață a pachetului)
- acmephp/core (419,258)
- acmephp/ssl (531,692)
- doctrine/doctrine-cache-bundle (73,490,057)
- doctrină/doctrină-modul (5,516,721)
- doctrină/doctrine-mongo-odm-module (516,441)
- doctrină/doctrină-orm-modul (5,103,306)
- doctrină/instanciator (526,809,061)
- registru de creștere/registru de creștere (97,568
- jdorn/file-system-cache (32,660)
- jdorn/sql-formatter (94,593,846)
- khanamiryan/decodor-detector-qrcode (20,421,500)
- obiect-calistenics/phppcs-calisthenics-reguli (2,196,380)
- tga/simhash-php, tgalopin/simhashphp (30,555)
Sursa: opennet.ru
