Вчера вечером несколько компаний, занимающихся сетевой безопасностью, обнаружили, что Red Hat выпустила на платформе NPM несколько пакетов программного обеспечения с вредоносной нагрузкой. В этих вредоносных программах использовались различные версии червя с открытым исходным кодом Mini Shai-Hulud. После входа в среду разработки они собирали и шифровали различные конфиденциальные учетные данные и загружали их на серверы, контролируемые хакерами. В то же время червь будет использовать эти учетные данные для дальнейшего распространения, заражая больше сред разработки и похищая больше учетных данных.
После предварительного расследования исследователи безопасности полагают, что источником атаки на цепочку поставок стал захват учетной записи GitHub инженера Red Hat. Затем хакер использовал механизм доверенной публикации NPM для распространения пакетов вредоносного ПО из краткосрочных токенов OIDC, выпущенных в GitHub Actions. Неясно, сколько нижестоящих разработчиков на самом деле пострадало, но эти пакеты программного обеспечения, выпущенные Red Hat, в основном предназначены для корпоративного использования, поэтому большинство зараженных нижестоящих разработчиков также являются разработчиками корпоративного уровня.

Механизм доверенной публикации также обходится:
Механизм доверенной публикации NPM направлен на удаление долгосрочных токенов публикации из конвейера CI/CD и вместо этого использовать краткосрочные токены OIDC, выпущенные действиями GitHub, для замены таких долгосрочных токенов. Этот механизм изначально был разработан для повышения безопасности и предотвращения проблем безопасности, вызванных утечкой долгосрочных действительных учетных данных. Однако недавние случаи атак на цепочку поставок показали, что если злоумышленник получит доступ к конвейеру CI/CD через уязвимость или украденный токен, механизм доверенной публикации можно полностью обойти.
В этом случае атаки учетная запись инженера Red Hat на GitHub была скомпрометирована, а затем использована хакерами для отправки вредоносных бесхозных материалов непосредственно в несколько репозиториев кода. Весь процесс также обошел проверку кода. Эти потерянные материалы содержали файл рабочего процесса CI.YAML и сценарий _INDEX.JS. Когда рабочий процесс запущен, он установит Bun и выполнит _INDEX.JS, а затем передаст ему список целевых пакетов через переменные среды. Скрипт также будет использовать разрешения для запроса краткосрочного OIDC из GitHub. токен, а затем используйте его для отправки пакета, содержащего вредоносную полезную нагрузку, непосредственно в NPM.
Варианты исполнения мини-песчаных червей:
Команда TeamPCP, которая ранее занималась атаками на цепочки поставок, выпустила червя Shai-Hulud с открытым исходным кодом. Сейчас все больше и больше хакеров используют этого червя для проведения атак. Червь, используемый хакерами в этой атаке, модифицирован на основе Sandworm, но по сути он используется для кражи различных учетных данных в среде разработки и попыток их горизонтального распространения.
Типы украденных учетных данных включают в себя: ключи действий GitHub, ключи доступа и токены сеанса AWS, учетные данные GCP по умолчанию и файлы ключей службы учетных записей, учетные данные субъекта службы Azure и токены управляемой идентификации, токены публикации NPM и PYPI, ключи SSH, учетные данные реестра Docker, ключи GPG и любые файлы .env, обнаруженные в среде разработки.