0day-атака через GCP Composer: что должны знать все разработчики

Исследователи раскрыли неожиданный механизм распространения вредоносного кода.


t19rbeycucnbfvcfkumw8hpvkh785drz.jpg


Специалисты из компании Tenable выявили серьёзную уязвимость в Google Cloud Platform ( GCP ) Composer, которая могла использоваться для удалённого выполнения кода в реальных атаках.

GCP Composer — это управляемый сервис для автоматизации и управления рабочими процессами в облаке, широко используемый для организации данных и запуска приложений в распределённых средах. Он даёт возможность пользователям создавать сложные сценарии обработки данных, обеспечивая интеграцию с другими сервисами Google Cloud.

Уязвимость получила кодовое имя CloudImposer и была связана с тактикой атак на цепочки поставок, известной как Dependency Confusion . Лив Матан, исследователь по безопасности из Tenable, поясняет, что злоумышленники могли перехватить внутренние зависимости, которые Google предустанавливает на всех экземплярах GCP Composer, что открывало возможность внедрения вредоносного кода в облачные рабочие процессы.

Dependency Confusion — это метод атаки, при котором менеджеры пакетов скачивают поддельный пакет с публичного репозитория вместо внутреннего, если у поддельного пакета версия выше. Эта уязвимость была впервые описана исследователем Алексом Бирсаном в 2021 году и уже успела вызвать серьёзные инциденты в цепочках поставок программного обеспечения.

По данным Tenable, проблема заключалась в том, что злоумышленники могли загружать поддельный пакет в публичный репозиторий Python Package Index (PyPI) под названием «google-cloud-datacatalog-lineage-producer-client». Этот пакет мог автоматически устанавливаться на все экземпляры GCP Composer с повышенными правами доступа, что создавало широкие возможности для злоумышленников.

Несмотря на то, что GCP Composer использует фиксированные версии пакетов, исследователи обнаружили, что при использовании команды «pip install» с аргументом «--extra-index-url» система отдаёт приоритет публичным репозиториям, что позволяло злоумышленникам провести атаку подмены зависимостей. В результате они могли бы не только выполнить произвольный код, но и получить доступ к учётным данным и другим сервисам Google Cloud.


CloudImposer%20vulnerability%20flow.gif


После ответственного раскрытия проблемы в январе 2024 года компания Google уже в мае выпустила исправление. Теперь пакеты загружаются исключительно из частных репозиториев, а для дополнительной защиты введена проверка контрольных сумм. Google также рекомендовала разработчикам использовать аргумент «--index-url» вместо «--extra-index-url», чтобы минимизировать риск атак на цепочку поставок.