Перейти до змісту

GitLab — секрети у коді

Що це

GitLab — друга за розміром публічна git-хостинг платформа після GitHub. Має трохи іншу аудиторію: більше enterprise-користувачів, активний корпоративний self-hosted сегмент, популярна у Європі.

З точки зору моніторингу витоків GitLab — це те саме, що GitHub, але з кількома специфічними особливостями:

  • Власні формати токенів (GitLab PAT, Project Tokens, Runner Tokens).
  • Часто містить CI/CD змінні прямо у .gitlab-ci.yml файлах, які забули перенести в Settings.
  • Self-hosted GitLab інстанси — окрема проблематика, якщо інстанс випадково публічний.
  • Public snippets на gitlab.com — аналог Pastebin, про який часто забувають.

Навіщо вам це

Та сама причина, що й у GitHub: розробники забувають про секрети у коммітах. Додатково для GitLab:

  • .gitlab-ci.yml містить deployment-секрети, які потенційно дають доступ у прод.
  • GitLab Pages (*.gitlab.io) часто публічно віддає build/ папки з embedded API-ключами.

Що ми шукаємо

Окрім стандартних 80+ типів секретів (AWS, Stripe, OpenAI, JWT, приватні ключі тощо — той самий список, що й для GitHub), додатково для GitLab:

  • GitLab Personal Access Tokens (glpat-*).
  • GitLab Project Tokens — часто мають широкий scope.
  • GitLab Runner Tokens — дозволяють підключити власний runner до вашого пайплайну.
  • GitLab Deploy Tokens — для CI/CD.

Окремий процесор аналізує .gitlab-ci.yml файли на hardcoded credentials у variables:, script:, before_script: блоках.

Що ми сканіруємо

gitlab.com (публічний)

  • Пошук згадок ваших DataSources у всьому публічному коді на gitlab.com.
  • Якщо підключили групу через OAuth — всі публічні проекти групи, форки співробітників, snippets, wiki.

Self-hosted GitLab

Платформа підтримує моніторинг вашого власного GitLab інстансу, якщо він доступний з інтернету. Підключення — через API-токен з вашого інстансу.

Severity знахідок

Так само, як для GitHub, плюс:

  • Critical для GitLab PAT і Project Tokens — вони часто мають дуже широкий scope.
  • High для секретів у .gitlab-ci.yml — це активні credentials у прод-пайплайнах.

Що бачите у дашборді

Те саме, що для GitHub:

  • Прямий лінк на проект, файл і конкретний рядок.
  • Тип секрету.
  • Контекст і автор комміту.
  • Severity і рекомендована дія.

Як підключити

gitlab.com

  1. Settings → Detection Sources → GitLab → Connect.
  2. Авторизація на gitlab.com.
  3. Вибір груп для моніторингу.

Self-hosted GitLab

  1. У вашому GitLab інстансі створіть Access Token з permissions read_api, read_repository.
  2. У BCP Portal: вибрати Custom GitLab Instance, вказати URL вашого інстансу та вставити токен.
  3. Готово.

Розклад сканування

  • Швидкий режим (пошук по gitlab.com) — щогодини.
  • Повне сканування групи / інстансу — кожні 6 годин або щодня.

FAQ

Чи можу я моніторити приватний self-hosted GitLab, який доступний лише у внутрішній мережі? Поки що — ні, для цього потрібна on-premises інсталяція BCP Portal (у нашому roadmap). Якщо ваш GitLab доступний з інтернету (навіть з restrictions), монiторинг працює.

Чи скануємо ми snippets та wiki? Public snippets — так. Wiki — лише для груп, підключених через OAuth.

Чи активно перевіряємо GitLab PAT на робочість? Так, аналогічно до GitHub. Перевірка показує scope токена і власника — це дає чітке розуміння, наскільки серйозний витік.