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¶
- Settings → Detection Sources → GitLab → Connect.
- Авторизація на gitlab.com.
- Вибір груп для моніторингу.
Self-hosted GitLab¶
- У вашому GitLab інстансі створіть Access Token з permissions
read_api,read_repository. - У BCP Portal: вибрати Custom GitLab Instance, вказати URL вашого інстансу та вставити токен.
- Готово.
Розклад сканування¶
- Швидкий режим (пошук по 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 токена і власника — це дає чітке розуміння, наскільки серйозний витік.