Исследователь потенциально мог заразить более 500 млн. компьютеров вредоносным ПО.
Взломанная страница Packagist для пакета «acmephp»
Для публикации пакетов на Packagist разработчику необязательно загружать двоичный файл непосредственно на Packagist.org. Достаточно просто создать учетную запись Packagist.org и указать ссылку на свой репозиторий GitHub для определенного пакета. Затем сканер Packagist посещает предоставленный репозиторий и собирает все данные для отображения на странице Packagist для этого пакета.
При загрузке пакетов с помощью Composer, инструмент по умолчанию выполняет поиск определенного пакета в Packagist извлекает URL-адрес GitHub, указанный на странице Packagist для этого пакета. Затем содержимое пакета загружается из репозитория GitHub.
Изменив страницу Packagist для каждого пакета, исследователь захватил рабочий процесс установки, используемый в средах Composer. Теперь разработчики будут получать содержимое пакета из репозитория «neskafe3v1» на GitHub, а не из репозитория проекта.
Чтобы заявить о том, что специалист ищет работу, он изменил файл «composer.json» в этих пакетах следующим образом:
Исследователь изменил файл «composer.json», чтобы продемонстрировать взлом
Исследователь не раскрыл точный метод взлома, но заявил, что он не использовал 0day- уязвимость – взлом происходил с помощью «известной техники». В результате специалист получил доступ к учетным записям Packagist сопровождающих и изменил URL-адреса GitHub пакетов на URL-адреса своих разветвленных репозиториев.
Затронутые пакеты
Команда Packagist заявила , что до сих пор не наблюдалось злонамеренного воздействия на платформу в результате взлома. Платформа подтвердила, что захват действительно произошел в результате компрометации учетных данных сопровождающих.
В Packagist сказали, что взлом не использовался в каких-либо злонамеренных целях и был ограничен несколькими старыми учетными записями с ненадёжными паролями и отсутствующей двухфакторной аутентификацией. Вероятно, учетные записи использовали общие пароли, просочившиеся в ходе инцидентов на других платформах.
Храним важное в надежном месте