Исследователь взломал более 10 библиотек в Packagist, пытаясь найти работу - «Новости»
- 10:30, 09-мая-2023
- Новости / Изображения / Блог для вебмастеров / Преимущества стилей / Вёрстка / Отступы и поля / Ссылки / Текст / Самоучитель CSS
- Милица
- 0
Исследователь под ником neskafe3v1 признался, что взломал 14 библиотек в Packagist, некоторые из которых насчитывают сотни миллионов установок. Взломщик рассказал СМИ, что таким необычным способом он пытается найти работу.
Напомню, что Packagist — это не пакетный менеджер, но хостинг PHP-пакетов. Это дефолтный хостинг Composer, и каждый месяц Composer используется для загрузки более 2 миллиардов пакетов. По сути, Packagist представляет собой один из крупнейших хостинговых сервисов в экосистеме PHP в целом.
Издание Bleeping Computer, с которым связался neskafe3v1, сообщает, исследователь успел скомпрометировать следующие пакеты:
Название пакета | Количество установок |
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 (aka tgalopin/simhashphp) | 30 555 |
Исследователь предоставил журналистам доказательства того, что в понедельник, 1 мая 2023 года, страницы Packagist для перечисленных выше пакетов были изменены, и стали указывать на фейковый репозиторий самого neskafe3v1, вместо нужных репозиториев на GitHub.
Например, как показано на скриншоте выше: на странице пакета acmephp ссылка на GitHub была изменена на репозиторий исследователя (вместо github.com/acmephp/acmephp).
Издание объясняет, что процесс публикации пакетов в Packagist несколько отличается от публикации в других опенсорсных репозиториях, таких как npm или PyPI. Так, разработчик просто создает учетную запись на Packagist.org и «прикрепляет» ссылку на свой репозиторий на GitHub для определенного пакета. После этого сканер Packagist посещает этот репозиторий и собирает все данные для отображения пакета на странице Packagist.
Когда разработчик запускает Composer с помощью команд install или update, его экземпляр Composer сначала ищет пакеты локально, а затем по умолчанию ищет нужную библиотеку в Packagist и получает URL для нужного пакета на GitHub. После этого содержимое пакета загружается из репозитория на GitHub, указанного на странице пакета в Packagist.
Таким образом, получается, что изменив страницы в Packagist для конкретных пакетов, исследователь, по сути, вмешался в процесс установки, используемый в средах Composer. То есть разработчики получали контент из репозиториев neskafe3v1 на GitHub, а не из настоящих репозиториев проектов.
Для своей демонстрации neskafe3v1 просто изменил файл composer.json в перечисленных пакетах, добавив в него сообщение: «Pwned by neskafe3v1. Ищу работу на позицию Application Security, Penetration Tester, Cyber Security Specialis».
Это было проделано через форк исходного репозитория и изменение поля description в файле composer.json, а изменения в итоге были зафиксированы в форкнутом репозитории. Отмечается, что neskafe3v1 не стал мержить изменения в исходные репозитории, так как для этого потребовался бы дополнительный доступ и, возможно, проверка со стороны сопровождающих.
Исследователь отказался раскрыть журналистам точную технику захвата пакетов, но отметил, что это не какая-то 0-day уязвимость, а достаточно известный способ. Издание предполагает, что neskafe3v1 каким-то образом получил доступ к учетным записям сопровождающих и после подменил URL-адреса на свои форки.
«Как видите, я ищу работу, поэтому я опубликую отчет после того, как меня наймет какая-нибудь компания. Пока я не преуспел, так что говорить не о чем», — рассказал neskafe3v1 журналистам Bleeping Computer, назвав свои действия «рекламой самого себя как сотрудника».
Разработчики Packagist сообщают, что neskafe3v1 не уведомлял их о своем «эксперименте», но они не обнаружили какого-либо вредоносного воздействия на платформу в результате произошедшего. Также они подтвердили, что захват пакетов действительно произошел в результате компрометации учетных записей их сопровождающих.
«Насколько нам известно, произошедшее не использовалось в каких-либо вредоносных целях и ограничилось несколькими старыми учетными записями с небезопасными паролями и отключенной двухфакторной аутентификацией, — сообщил изданию Нильс Адерман из Packagist.org, который также является одним из первых разработчиков Composer. — Похоже, все четыре учетные записи использовали пароли, ранее “утекшие” в ходе других инцидентов на других платформах. Пожалуйста, не используйте одни и те же пароли повторно».
В настоящее время администраторы Packagist уже обнаружили все скомпрометированные аккаунты, отключили доступ к ним и восстановили прежние значения URL-адресов на страницах пакетов.
В блоге администраторы просят исследователей ответственно сообщать о найденных ошибках и уязвимостях:
«Если вы являетесь ИБ-исследователем, вам известно об уязвимости Packagist.org или вы хотели бы провести исследование на Packagist.org, мы просим вас скоординировать это с нами, чтобы избежать негативного воздействия на пользователей и ответственно раскрыть информацию об уязвимостях».
Комментарии (0)