Исследователи Palo Alto Networks обнаружили, что в ряде крупных проектов с открытым исходным кодом (включая проекты Google, Microsoft, AWS и Red Hat), происходят утечки токенов аутентификации GitHub. Проблема связана с артефактами GitHub Actions в рабочих процессах CI/CD. Злоумышленники могут похитить эти токены и получить доступ к приватным репозиториям, украсть исходный код или внедрить вредоносный код в проекты.

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

Артефакт, созданный GitHub Actions

В своем отчете эксперты рассказывают, что совокупность факторов, включая небезопасные настройки по умолчанию, некорректные настройки пользователей и недостаточные проверки безопасности, могут приводить к утечке токенов GitHub. Такие атаки в компании назвали ArtiPACKED.

Общая схема атаки ArtiPACKED

Первой была обнаружена проблема, связанная с действием actions/checkout, которое обычно используется в GitHub workflow для клонирования кода репозитория, чтобы тот был доступен в ходе выполнения рабочего процесса.

По умолчанию это действие сохраняет токен GitHub в локальном скрытом каталоге .git, что необходимо для аутентифицированных операций. Если же пользователь по ошибке загрузит весь каталог checkout как часть артефакта, токен GitHub в папке git окажется скомпрометирован. Другая конфиденциальная информация, которая так же может содержаться в этой директории, это ключи API, токены доступа для облачных сервисов и учетные данные для различных аккаунтов.

Аналогичная ошибка, связанная с загрузкой артефактов, может возникнуть и с артефактами, создаваемыми в процессе CI/CD (к примеру, результаты сборки и тестирования, которые хранятся и остаются доступны до трех месяцев).

Утекший токен

Вторая обнаруженная специалистами проблема связана с конвейерами CI/CD, которые используют переменные окружения для хранения токенов GitHub. Если действия (actions) или скрипты в рамках рабочего процесса целенаправленно или по ошибке логируют эти переменные, а логи загружаются в качестве артефактов.

Эксперты отмечают, что действие super-linter может создавать подробные логи, если CREATE_LOG_FILE установлено в значение True.

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

Токены GitHub остаются действительными в течение всего workflow, поэтому потенциал их использования зависит от конкретного случая. Так, токен Actions_Runtime_Token, используемый GitHub для кеширования и управления артефактами, обычно действует в течение шести часов, поэтому окно для его эксплуатации невелико. Однако другие секреты и токены, включая API-ключи или токены доступа к облачным сервисам, могут иметь разный срок действия — от нескольких минут до бесконечности.

В своем отчете эксперты разобрали сценарий атаки, который позволяет выявить проекты или публичные репозитории, использующие GitHub Actions, и затем, с помощью автоматизированных скриптов просканировать их на предмет критериев, повышающих вероятность создания артефактов.

Другой набор скриптов позволяет автоматически загружать артефакты из CI/CD конвейеров целевых репозиториев (что совсем несложно в случае с публичными репозиториями),  а затем проверять их на наличие секретов.

В рамках этого исследования специалисты Palo Alto Networks обнаружили 14 крупных опенсорсных проектов, допустивших подобные утечки. Эксперты сообщили о своих находках разработчикам, которые устранили проблемы в:

  • Firebase (Google)
  • OpenSearch Security (AWS)
  • Clair (Red Hat)
  • Active Directory System (Adsys) (Canonical)
  • JSON Schemas (Microsoft)
  • TypeScript Repos Automation, TypeScript Bot Test Triggerer, Azure Draft (Microsoft)
  • CycloneDX SBOM (OWASP)
  • Stockfish
  • Libevent
  • Guardian для Apache Kafka (Aiven-Open)
  • Git Annex (Datalad)
  • Penrose
  • Deckhouse
  • Concrete-ML (Zama AI)

В заключение эксперты рекомендуют пользователям GitHub избегать включения целых директорий в загружаемые артефакты, проводить очистку логов и регулярно проверять конфигурации CI/CD-конвейеров. А настройки для потенциально опасных действий (таких как actions/checkout), стоит скорректировать таким образом, чтобы учетные данные не сохранялись.

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

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

    Подписаться

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