MavenGate: новый метод компрометации цепочки поставок ПО
24/01/24
В ряде популярных библиотек, используемых в приложениях Java и Android, обнаружена уязвимость, которая делает их подверженными новому методу атаки на цепочку поставок ПО под названием MavenGate. Об этом сообщила компания по безопасности мобильных приложений Oversecured.
Анализ Oversecured указывает на риск компрометации проектов через покупку доменных имен, пишет Securitylab. Поскольку большинство конфигураций сборки по умолчанию уязвимы, определить факт атаки может быть сложно или даже невозможно. Успешное использование недостатков может позволить злоумышленнику перехватывать артефакты в зависимостях и внедрять вредоносный код в приложение. Что еще хуже, атакующий может скомпрометировать процесс сборки через вредоносный плагин.
Oversecured сообщила, что все технологии на основе Maven, включая Gradle, подвержены атаке. Компания отправила отчеты более чем 200 компаниям, в том числе Google, Facebook*, Signal, и Amazon.
Киберпреступник может нацелиться на публичные репозитории, чтобы провести атаки с целью «отравления» цепочки поставок, используя заброшенные библиотеки, добавленные в известные репозитории. Это достигается путем покупки просроченного обратного домена (Reverse Domain), контролируемого владельцем зависимости, и получения доступа к groupId (идентификатор разработчика объекта). Если groupId уже зарегистрирован в репозитории, злоумышленник может попытаться получить доступ к нему, обратившись в службу поддержки репозитория.
Компания Oversecured для проверки сценария атаки загрузила свою тестовую Android-библиотеку в Maven Central и JitPack. Атака происходит путем добавления Maven Central и JitPack в список репозиториев зависимостей в сценарии сборки Gradle. Порядок объявления определяет, как Gradle будет проверять зависимости во время выполнения.
Исследователи обнаружили, что хакер может нацелиться на существующие версии библиотеки, публикуя более новую версию, или на новые версии, выпуская версию ниже, чем у ее легитимного аналога. Из 33 938 проанализированных доменов 6 170 (18,18%) оказались уязвимы к MavenGate, что позволяет злоумышленнику перехватывать зависимости и внедрять свой код.
Компания Sonatype, владелец Maven Central, заявила, что описанная стратегия атаки «невозможна из-за существующей автоматизации». Тем не менее, компания отключила все учетные записи, связанные с просроченными доменами и проектами GitHub, в качестве меры безопасности.
Oversecured подчеркивает, что разработчики должны нести ответственность не только за прямые зависимости, но и за транзитивные. Создатели библиотек должны отвечать за объявленные ими зависимости и публиковать хэши открытых ключей для своих зависимостей.
* Компания Meta и её продукты признаны экстремистскими, их деятельность запрещена на территории РФ.