Administratorët e depove të paketave Packagist zbuluan informacione mbi një sulm, si rezultat i së cilit u kap kontrolli mbi llogaritë e ndihmësve të 14 bibliotekave PHP, përfshirë paketa kaq popullore si instantiator (526 milion instalime në total, 8 milion instalime në muaj, 323 pako të varura), sql-formatter (94 milion instalime në total, 800 mijë në muaj, 109 pako të varura), doctrine-cache-bundle (73 milion instalime në total, 500 mijë në muaj, 348 pako të varura) dhe rcode-detector-decoder (20 milion instalime në total, 400 mijë në muaj, 66 pako të varura).
Pas komprometimi i llogarive, sulmuesi modifikoi skedarin composer.json, duke shtuar në fushën e përshkrimit të projektit informacione në lidhje me kërkimin e një pune në fushën e sigurisë informacionit. Për të bërë këtë ndryshim në skedarin composer.json, sulmuesi zëvendësoi URL-të e depozita origjinale me lidhje në forkat e modifikuara (në Packagist ofrohen vetëm meta të dhëna me lidhje në projektet që zhvillohen në GitHub, kur komandohet «composer install» apo «composer update», paketat shkarkohen drejtpërdrejt nga GitHub). Për shembull, për paketën acmephp, depozita lidhëse u zëvendësua nga acmephp/acmephp në neskafe3v1/acmephp.
Duket se sulmi nuk ishte kryer për të shkaktuar dëm, por si një tregues i papranueshmërisë së përdorimit të kujdesshëm të të dhënave të përsëritura në vende të ndryshme. Në këtë rast, sulmuesi, në kundështim me praktikën e vendosur të "hackingut etiko", nuk e njoftoi paraprakisht zhvilluesit e bibliotekave dhe administratorët e repositorëve për eksperimentin e tij. Më vonë, sulmuesi njoftoi se pasi të sigurojë një punë, do të publikojë një raport të detajuar mbi metodat e përdorura gjatë sulmit.
Sipas të dhënave të publikuara nga administratorët e Packagist, në të gjitha llogaritë që menaxhonin paketat e komprometuara, ishin përdorur fjalëkalime të thjeshta për t'u zbuluar pa aktivizuar verifikimin me dy faktorë. Po ashtu, pretendohet se në llogaritë e hackuara ishin përdorur fjalëkalime që ishin aplikuar jo vetëm në Packagist, por edhe në shërbime të tjera, bazat e fjalëkalimeve të të cilëve ishin komprometuar më herët dhe ishin bërë publike. Si një mundësi për të siguruar qasje, gjithashtu mund të ishte përdorur kapja e emailit të pronarëve të llogarive, të cilat ishin të lidhura me domene të skaduara.
Paketa të komprometuara:
- 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
