Перехоплено контроль над 14 PHP-бібліотками у репозиторії Packagist

Адміністратори репозиторію пакетів Packagist розкрили відомості про атаку, в результаті якої було захоплено контроль над обліковими записами супроводжуючих 14 PHP-бібліотек, серед яких такі популярні пакети, як instantiator (526 млн установок всього, 8 млн установок за місяць, 323 залежних пакети), sql-formatter (94 млн установок всього, 800 тисяч за місяць, 109 залежних пакетів), doctrine-cache-bundle (73 млн установок всього, 500 тисяч за місяць, 348 залежних пакетів) та rcode-detector-decoder (20 млн установок всього , 400 тисяч на місяць, 66 залежних пакетів).

Після компрометації облікових записів атакуючий змінив файл composer.json, додавши в поле з описом проекту інформацію про те, що він шукає роботу, пов'язану з інформаційною безпекою. Для внесення зміни до файлу composer.json атакуючий замінив URL оригінальних репозиторіїв посиланнями на модифіковані форки (у Packagist надаються тільки метадані з посиланнями на проекти, що розвиваються на GitHub, при виконанні установки командою "composer install" або "composer update" пакети завантажуються безпосередньо з Git ). Наприклад, для пакета acmephp прив'язаний репозиторій був замінений з acmephp/acmephp neskafe3v1/acmephp.

Зважаючи на все атака була зроблена не для здійснення шкідливих дій, а як демонстрація неприпустимості безтурботного ставлення до використання облікових даних, що повторюються, на різних сайтах. При цьому атакуючий всупереч практиці «етичних зломів», що склалася, заздалегідь не повідомив розробників бібліотек і адміністраторів репозиторію про експеримент. Пізніше атакуючий повідомив, що після того, як йому вдасться отримати роботу, він опублікує детальний звіт про використані в атаці методи.

За опублікованими адміністраторами Packagist даними, у всіх облікових записах, що управляли скомпрометованими пакетами, використовувалися прості для підбору паролі без включення двофакторної автентифікації. Стверджується, що у зламаних облікових записах використовувалися паролі, що застосовувалися у Packagist, а й у інших сервісах, бази паролів яких були раніше скомпрометовані і потрапили у публічний доступ. Як варіант отримання доступу також могло використовуватися захоплення email власників облікових записів, які були прив'язані до прострочених доменів.

Скомпрометовані пакети:

  • acmephp/acmephp (124,860 установок за весь час існування пакету)
  • 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)

Джерело: opennet.ru

Додати коментар або відгук