Исследователь взломал более 10 библиотек в Packagist, пытаясь найти работу - «Новости»

  • 10:30, 09-мая-2023
  • Новости / Изображения / Блог для вебмастеров / Преимущества стилей / Вёрстка / Отступы и поля / Ссылки / Текст / Самоучитель CSS
  • Милица
  • 0

Исследователь под ником neskafe3v1 признался, что взломал 14 библиотек в Packagist, некоторые из которых насчитывают сотни миллионов установок. Взломщик рассказал СМИ, что таким необычным способом он пытается найти работу.


Напомню, что Packagist — это не пакетный менеджер, но хостинг PHP-пакетов. Это дефолтный хостинг Composer, и каждый месяц Composer используется для загрузки более 2 миллиардов пакетов. По сути, Packagist представляет собой один из крупнейших хостинговых сервисов в экосистеме PHP в целом.


Издание Bleeping Computer, с которым связался neskafe3v1, сообщает, исследователь успел скомпрометировать следующие пакеты:



































































Название пакетаКоличество установок
acmephp/acmephp124 860
acmephp/core419 258
acmephp/ssl531 692
doctrine/doctrine-cache-bundle73 490 057
doctrine/doctrine-module5 516 721
doctrine/doctrine-mongo-odm-module516 441
doctrine/doctrine-orm-module5 103 306
doctrine/instantiator526 809 061
growthbook/growthbook97 568
jdorn/file-system-cache32 660
jdorn/sql-formatter94 593 846
khanamiryan/qrcode-detector-decoder20 421 500
object-calisthenics/phpcs-calisthenics-rules2 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, мы просим вас скоординировать это с нами, чтобы избежать негативного воздействия на пользователей и ответственно раскрыть информацию об уязвимостях».


 


Исследователь под ником 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)

Комментарии для сайта Cackle



Уважаемый посетитель нашего сайта!
Комментарии к данной записи отсутсвуют. Вы можете стать первым!