Исследователи считают, что к недавней компрометации пакета tj-actions/changed-files привела каскадная атака на цепочку поставок, начавшаяся со взлома GitHub Action reviewdog/action-setup@v1.

Напомним, что на прошлой неделе была обнаружена компрометация пакета tj-actions/changed-files, который является частью tj-actions. Это один из многочисленных GitHub Actions на одноименной платформе, предоставляющей бесплатную систему CI/CD для публичных репозиториев. Обработчик changed‑files использовался в 23 000 организациях и на прошлой неделе получил обновление для кражи конфиденциальных данных.

Из-за взлома вредоносный код записал CI/CD-секреты в журналы рабочих процессов для всех 23 000 репозиториев, использующих tj-actions/changed-files. Если эти логи были публичными, их мог просмотреть любой желающий.

Мейнтейнер проекта сообщал, что злоумышленники неизвестным образом скомпрометировали его токен персонального доступа (personal access token, PAT) на GitHub и учетные данные, которые @tj-actions-bot использовал для получения привилегированного доступа к репозиторию. Однако оставалось неясно, как именно произошла эта компрометация.

Как теперь сообщили эксперты компании Wiz, им удалось разобраться в произошедшем. Исследователи обнаружили каскадную атаку на цепочку поставок, которая началась с другого GitHub Action — reviewdog/action-setup.

По данным Wiz, сначала злоумышленники скомпрометировали тег v1 для reviewdog/action-setup и внедрили в пакет аналогичный код для записи секретов CI/CD в лог-файлы.

Поскольку tj-actions/eslint-changed-files использует reviewdog/action-setup, предполагается, что скомпрометированный Action использовался для извлечения и кражи персонального токена PAT, затем использованного для доступа к tj-actions.

«Мы полагаем, что, скорее всего, взлом reviewdog/action-setup стал первопричиной компрометации PAT для tj-actions-bot. Так, tj-actions/eslint-changed-files использует reviewdog/action-setup@v1, а репозиторий tj-actions/changed-files запускает tj-actions/eslint-changed-files, используя персональный токен доступа. Action reviewdog был скомпрометирован примерно в то же время, когда произошла компрометация PAT для tj-actions», — пишут специалисты.

Как объясняют эксперты, злоумышленники внедряли в файл install.sh полезную нагрузку, закодированную base64, что в итоге приводило к утечке секретов из затронутых рабочих процессов CI. Как и в случае с tj-actions, раскрытые секреты в итоге отображались в публичных репозиториях как часть логов.

Сообщается, что помимо reviewdog/action-setup@v1, компрометация которого уже подтверждена, от атаки могли пострадать и другие GitHub Actions:

  • reviewdog/action-shellcheck;
  • reviewdog/action-composite-template;
  • reviewdog/action-staticcheck;
  • reviewdog/action-ast-grep;
  • reviewdog/action-typos.

Wiz объясняет, что нарушение безопасности Reviewdog было устранено случайно, но исследователи сообщили команде и GitHub о своих выводах, чтобы предотвратить повторение подобных атак в будущем.

Хотя точный способ взлома пока не установлен, специалисты отмечают, что Reviewdog имеет большую базу мейнтейнеров и принимает новых участников через автоматические приглашения, что значительно увеличивает риски и количество возможностей для взлома.

Теперь всем потенциально пострадавшим проектам рекомендуется выполнить этот запрос на GitHub, чтобы проверить, есть ли в репозиториях ссылки на reviewdog/action-setup@v1. Обнаружение в логах рабочих процессов полезных нагрузок, дважды закодированных в base64, может считаться подтверждением утечки секретов.

Разработчикам рекомендуется немедленно удалить любые ссылки на затронутые GitHub Actions, удалить логи рабочих процессов и сменить все потенциально раскрытые секреты.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии