Утечка токенов GitHub: как уязвимости в CI/CD процессах ставят под угрозу безопасность крупных опенсорс-проектов

CyberSecureFox 🦊

Исследователи компании Palo Alto Networks выявили серьезную уязвимость в системе безопасности GitHub, затрагивающую ряд крупных проектов с открытым исходным кодом. Проблема связана с утечкой токенов аутентификации через артефакты GitHub Actions в рабочих процессах CI/CD. Эта уязвимость, получившая название ArtiPACKED, открывает потенциальным злоумышленникам доступ к приватным репозиториям, позволяя похищать исходный код или внедрять вредоносные элементы в проекты.

Механизм утечки токенов GitHub

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

Уязвимости в конвейерах CI/CD

Вторая обнаруженная проблема связана с конвейерами CI/CD, использующими переменные окружения для хранения токенов GitHub. Если действия или скрипты в рамках рабочего процесса логируют эти переменные, а логи затем загружаются в качестве артефактов, это создает дополнительный вектор утечки. Например, действие super-linter может создавать подробные логи при установке параметра CREATE_LOG_FILE в значение True.

Временное окно для эксплуатации

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

Сценарий атаки и автоматизация эксплуатации

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

Масштаб проблемы и затронутые проекты

В ходе исследования специалисты Palo Alto Networks обнаружили 14 крупных опенсорсных проектов, включая проекты Google, Microsoft, AWS и Red Hat, допустивших подобные утечки. После уведомления разработчиков большинство уязвимостей были устранены. Однако проблема остается актуальной в масштабах всей экосистемы GitHub, так как ответственность за защиту артефактов лежит на самих пользователях.

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

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.