Новости Атака ArtiPACKED может использоваться для захвата GitHub-репозиториев и доступа к облачным средам - «Новости»

Новости

Команда форума
Редактор
Регистрация
27 Февраль 2018
Сообщения
13 467
Лучшие ответы
0
Реакции
0
Баллы
1 293
Offline
#1
Исследователи 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), стоит скорректировать таким образом, чтобы учетные данные не сохранялись.
 
Сверху Снизу