Administratoret e depozitës së paketave Packagist zbuluan informacione mbi një sulm, në të cilin u pushtuan llogaritë e mbikëqyrësve të 14 biblioteka PHP, përfshirë paketa të njohura si instantiator (526 milion instalime gjithsej, 8 milion instalime për muaj, 323 pako të varura), sql-formatter (94 milion instalime gjithsej, 800 mijë në muaj, 109 pako të varura), doctrine-cache-bundle (73 milion instalime gjithsej, 500 mijë në muaj, 348 pako të varura) dhe rcode-detector-decoder (20 milion instalime gjithsej, 400 mijë në muaj, 66 pako të varura).
Pas kompromitimit të llogarive, sulmuesi ndryshoi skedarin composer.json, duke shtuar në fushën e përshkrimit të projektit informacionin se po kërkonte punë në fushën e sigurisë informative. Për të bërë ndryshimin në skedarin composer.json, sulmuesi zëvendësoi URL-në e repozitoreve origjinale me lidhje në forkat e modifikuara (në Packagist ofrohen vetëm metadata me lidhjet në projektet që zhvillohen në GitHub, gjatë instalimit me komandën "composer install" ose "composer update", paketat shkarkohen drejtpërdrejt nga GitHub). Për shembull, për paketën acmephp, repozitori i lidhur u zëvendësua nga acmephp/acmephp në neskafe3v1/acmephp.
Duket se sulmi u krye jo për të kryer veprime të dëmshme, por si një demonstrim i paarsyeshmërisë së përdorimit të fjalëkalimeve të përsëritura në faqe të ndryshme. Megjithatë, sulmuesi, përkundër praktikës së zakonshme të "hacking-ut etike", nuk e njoftoi paraprakisht zhvilluesit e bibliothekave dhe administratorët e depozitës për eksperimentin që po zhvillohej. Më vonë, sulmuesi njoftoi se pasi të arrinte të merrte punë, do të publikonte një raport të detajuar mbi metodat e përdorura në sulm.
Sipas të dhënave të publikuara nga administratorët e Packagist, të gjitha llogaritë që menaxhonin paketat e komprometuara kishin fjalëkalime të lehta për t'u gjendur dhe nuk kishin aktivizuar autentifikimin me dy faktorë. Raportohet se në llogaritë e hakuara ishin përdorur fjalëkalime që ishin aplikuar jo vetëm në Packagist, por edhe në shërbime të tjera, të cilat kishin pasur baza fjalëkalimesh të komprometuar dhe ishin bërë publike. Një opsion tjetër për të fituar aksesin mund të ketë qenë kapja e email-eve të pronarëve të llogarive, të cilat ishin të lidhura me domeinë të skaduar.
Paketet e komprometuar:
- acmephp/acmephp (124,860 instalime që nga krijimi i paketës)
- 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)
Burimi: opennet.ru
