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 および 3 対応 PyPI バージョン ライセンス: MIT

GitLab Watchman について

GitLab Watchman は、GitLab API を使用して公開されたシークレットや個人データを検出するアプリケーションです。また、GitLab インスタンスから有用な情報を列挙します。

機能

シークレット検出

GitLab 内で内部共有されているプロジェクトを検索し、以下を確認します:

  • コード
  • コミット
  • Wiki ページ
  • 課題
  • マージリクエスト
  • マイルストーン
  • ノート
  • スニペット

以下のデータを対象とします:

  • 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 を実行するときに無効にしたいシグネチャは、watchman.conf ファイルの disabled_signatures セクションにその ID を追加することで定義できます。例:

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

シグネチャの ID は、Watchman Signatures リポジトリ 内の個々の YAML ファイルで確認できます。

ログ記録

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 は v4 API を使用し、以下の 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 の個人アクセストークンが必要です。

GitLab GUI で、Settings -> Access Tokens -> Add a personal access token から個人アクセストークンを作成できます。

トークンには以下のスコープの権限が必要です:

root@kitploit:~
api

注意: 個人アクセストークンは作成したユーザーに代わって動作するため、サービスアカウントを使用してトークンを作成することをお勧めします。そうしないと、アプリがあなたのプライベートリポジトリにアクセスできるようになります。

GitLab URL

また、GitLab インスタンスの URL を指定する必要があります。

トークンと URL の指定

GitLab Watchman は、環境変数 GITLAB_WATCHMAN_TOKEN および GITLAB_WATCHMAN_URL から GitLab トークンと 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 ハブから 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 とは関連がありません。

ツールをダウンロード