Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
gitlab-watchman — Поиск раскрытых секретов и личных данных в GitLab | Kitploit
Инструменты/GitHubGitHub/papermtn/gitlab-watchman
Сканеры уязвимостейАнализ КодаЭксфильтрация данныхСбор информацииDevSecOpsОбнаружение Секретов
GitHubpapermtn/gitlab-watchman

gitlab-watchman

Поиск раскрытых секретов и личных данных в GitLab

Репозиторий
206251 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

GitLab Watchman

Python 2.7 and 3 compatible PyPI version License: MIT

О GitLab Watchman

GitLab Watchman — это приложение, использующее API GitLab для обнаружения раскрытых секретов и личных данных. Он также перечисляет полезную информацию об экземпляре GitLab.

Возможности

Обнаружение секретов

Он ищет в GitLab внутренние совместные проекты и проверяет:

  • Код
  • Коммиты
  • Страницы вики
  • Задачи
  • Запросы на слияние
  • Вехи
  • Заметки
  • Фрагменты

Для следующих данных:

  • Ключи GCP и файлы сервисных аккаунтов
  • Ключи AWS
  • Ключи Azure и файлы сервисных аккаунтов
  • Ключи Google API
  • Токены Slack API и вебхуки
  • Приватные ключи (SSH, PGP и прочие)
  • Раскрытые токены (Bearer-токены, токены доступа, client_secret и т.д.)
  • Файлы конфигурации S3
  • Токены для таких сервисов, как Heroku, PayPal и др.
  • Пароли в открытом виде
  • и другое
Поиск по времени

Вы можете запустить GitLab Watchman для поиска результатов за последние:

  • 24 часа
  • 7 дней
  • 30 дней
  • Всё время

Это означает, что после одного полного сканирования вы можете настроить GitLab Watchman на регулярный запуск и получать результаты только за выбранный период времени.

Перечисление

GitLab Watchman может перечислять потенциально полезную информацию из экземпляра GitLab:

  • Метаданные экземпляра
  • Информация о вызывающем пользователе/используемом токене
  • Вывод всех пользователей в CSV-файл
  • Вывод всех проектов в CSV-файл
  • Вывод всех групп в CSV-файл

Сигнатуры

GitLab Watchman использует пользовательские YAML-сигнатуры для обнаружения совпадений в GitLab. Эти сигнатуры загружаются из центрального репозитория Watchman Signatures. Slack Watchman автоматически обновляет свою базу сигнатур во время выполнения, чтобы гарантировать использование последних сигнатур для обнаружения секретов.

Подавление сигнатур

Вы можете определить сигнатуры, которые хотите отключить при запуске GitLab Watchman, добавив их идентификаторы в раздел disabled_signatures файла watchman.conf. Например:

root@kitploit:~
gitlab_watchman:
  disabled_signatures:
    - tokens_generic_bearer_tokens
    - tokens_generic_access_tokens

Идентификатор сигнатуры можно найти в соответствующих YAML-файлах в репозитории Watchman Signatures.

Логирование

GitLab Watchman предоставляет следующие варианты логирования:

  • Дружественный к терминалу Stdout
  • JSON в Stdout

GitLab Watchman по умолчанию использует дружественный к терминалу вывод stdout, если не указан другой вариант. Это сделано для удобства чтения человеком.

Также доступно логирование в формате JSON, которое идеально подходит для передачи в SIEM или другие платформы анализа логов.

Логирование в формате JSON можно легко перенаправить в файл следующим образом:

root@kitploit:~
gitlab-watchman --timeframe a --all --output json >> gitlab_watchman_log.json 

Требования

Версии GitLab

GitLab Watchman использует API v4 и работает с версиями GitLab Enterprise Edition:

  • 13.0 и выше — Да
  • GitLab.com — Да
  • 12.0–12.10 — Возможно, не тестировалось, но если используется API v4, то может работать

Лицензия GitLab и Elasticsearch

Для поиска в областях:

  • blobs
  • wiki_blobs
  • commits

Экземпляр GitLab должен иметь настроенный Elasticsearch и работать под Enterprise Edition с минимальной лицензией GitLab Starter или Bronze.

Персональный токен доступа GitLab

Для запуска GitLab Watchman потребуется персональный токен доступа GitLab.

Вы можете создать персональный токен доступа в GUI GitLab: Settings -> Access Tokens -> Add a personal access token

Токену требуются разрешения для следующих областей:

root@kitploit:~
api

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

URL GitLab

Также необходимо указать URL вашего экземпляра GitLab.

Предоставление токена и URL

GitLab Watchman получит токен и URL GitLab из переменных окружения GITLAB_WATCHMAN_TOKEN и GITLAB_WATCHMAN_URL.

Файл watchman.conf

Параметры конфигурации можно передавать в файле с именем watchman.conf, который должен храниться в вашем домашнем каталоге. Файл должен соответствовать формату YAML и выглядеть следующим образом:

root@kitploit:~
gitlab_watchman:
  disabled_signatures:
    - tokens_generic_bearer_tokens
    - tokens_generic_access_tokens

GitLab Watchman будет искать этот файл во время выполнения и использовать параметры конфигурации из него.

Установка

Вы можете установить последнюю стабильную версию через pip:

python3 -m pip install gitlab-watchman

Или собрать из исходников самостоятельно. Скачайте исходные файлы релиза, затем из корневого каталога репозитория выполните:

root@kitploit:~
python3 -m build
python3 -m pip install --force-reinstall dist/*.whl

Docker-образ

GitLab Watchman также доступен на Docker Hub в виде Docker-образа:

docker pull papermountain/gitlab-watchman:latest

Затем вы можете запустить GitLab Watchman в контейнере, убедившись, что переданы необходимые переменные окружения:

root@kitploit:~
// help
docker run --rm papermountain/gitlab-watchman -h

// scan all
docker run --rm -e GITLAB_WATCHMAN_TOKEN=abc123 -e GITLAB_WATCHMAN_URL=https://example.gitlab.com papermountain/gitlab-watchman --timeframe a --all
docker run --rm --env-file .env papermountain/gitlab-watchman --timeframe a --all

Использование

GitLab Watchman будет установлен как глобальная команда, используйте следующим образом:

root@kitploit:~
usage: gitlab-watchman [-h] --timeframe {d,w,m,a} [--output {json,stdout}] [--version] [--all] [--blobs] [--commits] [--wiki-blobs] [--issues]
                   [--merge-requests] [--milestones] [--notes] [--snippets] [--enumerate] [--debug] [--verbose]

Finding exposed secrets and personal data in GitLab

options:
  -h, --help            show this help message and exit
  --output {json,stdout}, -o {json,stdout}
                        Where to send results
  --version, -v         show program's version number and exit
  --all, -a             Find everything
  --blobs, -b           Search code blobs
  --commits, -c         Search commits
  --wiki-blobs, -w      Search wiki blobs
  --issues, -i          Search issues
  --merge-requests, -mr
                        Search merge requests
  --milestones, -m      Search milestones
  --notes, -n           Search notes
  --snippets, -s        Search snippets
  --enumerate, -e       Enumerate this GitLab instance for users, groups, projects.Output will be saved to CSV files
  --debug, -d           Turn on debug level logging
  --verbose, -V         Turn on more verbose output for JSON logging. This includes more fields, but is larger

required arguments:
  --timeframe {d,w,m,a}
                        How far back to search: d = 24 hours w = 7 days, m = 30 days, a = all time

Другие приложения Watchman

Возможно, вас заинтересуют другие приложения семейства Watchman:

  • Slack Watchman
  • Slack Watchman for Enterprise Grid
  • GitHub Watchman

Лицензия

Исходный код этого проекта выпущен под лицензией GNU General Public Licence. Этот проект не связан с GitLab.

Скачать инструмент