Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
GitMonitor — 機密情報がGithub上で公開される可能性を継続的に監視する方法の一つ | Kitploit
ツール/GitHubGitHub/talkaboutcybersecurity/gitmonitor
OSINT (オープンソースインテリジェンス)偵察情報収集シークレット検出
GitHubtalkaboutcybersecurity/gitmonitor

GitMonitor

機密情報がGithub上で公開される可能性を継続的に監視する方法の一つ

リポジトリを見る
172406年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

GitMonitor

License: GPL v3

GitMonitor

GitHub上で漏洩する可能性のある機密情報を継続的に監視する一つの方法

概要

GitHub上で現在漏洩している機密情報を見つけるためのツールは他にもたくさんあることを知っています。私自身もいくつかを使っています。しかし、それらにはまだいくつかの機能が欠けていると思います。例えば:

  • 他のツールは、与えられたGitアドレスを持つリポジトリ内に存在する機密情報を見つけることに重点を置いています。私がGitMonitorを開発した当時、まず「見つける」必要があるリポジトリ(すべての関連リポジトリを見つける)、次にそれらの中に機密情報が存在するかどうかを「チェックする」ことに重点を置いたツールはごくわずかでした。

  • 「機密情報のチェック」ルールに加えて、ツールは「関心のあるリポジトリを検索する」ためのルールも必要です。考慮すべきリポジトリは、会社やプロジェクトに関連するキーワードを含むものかもしれません。

  • バグバウンティハンターなら、同時にいくつかのターゲットにしか関心がありません。しかし、会社のセキュリティエンジニアであれば、会社やプロジェクトに関連するリポジトリが現れ、それが機密情報を含む可能性があることを知る必要があります。そのようなリポジトリはGitHub上のどこにでも、どんな名前で、どんなアカウントによって投稿される可能性があります。また、そのようなリポジトリが現れたらすぐにアラートを受け取るべきです(継続的な監視)。

  • ツールには柔軟なレポートメカニズムがあります。

これが私がこのツール、GitMonitorを作成した理由です。GitMonitorは2つの異なるルールセットを使用して、必要なものを見つけます。検索ルールセットは、組織や内部プロジェクト、その他に関連する可能性のあるリポジトリを検索し、一致したリポジトリをローカルにクローンします。次に、機密フィルタリングルールセットを使用して、それらのリポジトリに機密情報が存在するかどうかをチェックします。最後に、ツールはSlack経由でレポートします。このツールをCronjobと併用することで、組織に関連する機密情報がGitHub上に漏洩した場合にそれを追跡し、Slackで結果を受け取る継続的監視システムを作成できます。

更新 2020年6月15日: バージョン1.0にアップデートしました。このバージョンではいくつかのバグを修正し、GitMonitorが安定して動作するようになりました。以前のバージョンを使用されている場合は、git pullを実行することをお勧めします。

機能

  • 2つの異なるルールセットを使用します:関心のあるリポジトリを検索するための検索ルールセット(yaml)と、関心のあるコンテナに機密情報が含まれているかどうかをチェックするためのフィルタールールセット(regex)です。検索ルール(yaml)とフィルタールール(regex)は別々に定義されます。ユーザーはyamlルールとregexを簡単かつ直感的に定義できます。

  • 検索ルールセット:異なるyamlファイルを使用して、さまざまなルールを作成できます。ルールでは、リポジトリを検索する方法を柔軟に定義できます。キーワードを使用したり、言語、ファイル名、拡張子に関連付けられたキーワードを使用したり、言語、ファイル名、拡張子に基づいて検索からリポジトリを除外することも定義できます。キーワードはリポジトリ名、リポジトリのコード、およびコミットを通じて検索されます。

  • フィルタールールセット:リポジトリに存在する可能性のある機密情報を見つけるために、regexを簡単に追加または修正できます。

  • 最初に検索ルールセットに一致したリポジトリがローカルにクローンされます。次に、フィルタールールセットがこのリポジトリに機密情報が存在するかどうかをチェックします。機密情報のチェックが完了した後、GitMonitorは結果を記録し、このリポジトリをローカルから自動的に削除してスペースを節約し、すべての関連リポジトリが見つかりチェックされるまでこのプロセスを繰り返します。

  • Slack経由でレポートします。

  • このツールはCronjobでスケジュール設定して継続的な監視が可能です。

動作図

必要条件

  • Python3
  • Python3-pip
  • Ubuntu 18.04およびMacOSでテスト済み。GitMonitorは他のシステムでも正常に動作すると考えています。

セットアップ

1. 依存関係のインストール

root@kitploit:~
> python3 -m pip install -r requirements.txt

PyYAMLバージョン5x以上がインストールされていることを確認してください(pip3 install --ignore-installed PyYAML)

2. 設定ファイル (config.ini) に必要な情報がすべて設定されていることを確認してください

以下の表は、設定ファイルの各キーの意味を説明しています:

3. GitHubアカウントの認証情報を定義します。これには2つの方法があります

  • 環境変数で認証情報を定義する:
root@kitploit:~
> export GIT_USERNAME=あなたのGitHubユーザー名
> export GIT_PASSWORD=あなたのGitHub個人アクセストークンまたはパスワード
  • または、設定ファイルに認証情報を定義する(推奨しません):

    • config.iniファイルを開きます。
    • 認証情報をuserキーとpassキーの値に入力します。

環境変数で認証情報を定義する場合の設定ファイルの例

設定ファイルの例

4. ルール(検索ルール)を記述します。ルールをrulesディレクトリに置きます

ルールテンプレートのように、複数のキーワードを定義するために異なるyamlファイルを作成できます。ルールファイルは以下の画像のようになります:

ルールファイルの例

5. libs/regex.pyファイルに正規表現を追加します - 機密フィルタリングルール(オプション)

6. GitMonitorを実行します

root@kitploit:~
> python3 gitmonitor.py

7. Cronjobを使用してツールの自動実行をスケジュールできます。

例えば:

Cronjobの例

今後の予定

  • 機能:メールでのレポート
  • 機能:結果をElasticsearchに送信
  • 開発:setup.pyの作成
  • 開発:Dockerfileの作成

私のチーム

  • Tony - プロジェクトリーダー
  • musashi137 - コア開発者

特別感謝

  • 正規表現ベースの機密情報検索メカニズムを提供してくれたGitMAD

貢献について

このプロジェクトの多くの領域は、現在のコードのリファクタリングや新機能の実装中に改善され、大きく変更される可能性があります。コミュニティからの改善フィードバックやプルリクエストは大いに歓迎され、受け入れられます。

一般的に、私たちは "fork-and-pull" Gitワークフローに従います。

  1. GitHubでリポジトリをフォークする
  2. プロジェクトを自分のマシンにクローンする
  3. 変更を自分のブランチにコミットする
  4. 自分のフォークにプッシュする
  5. 変更をレビューしてもらうためにプルリクエストを送信する

注:プルリクエストを行う前に、"upstream"から最新のものをマージしてください!

寄付

Buy Me A Coffee

ツールをダウンロード
キー説明
userGitHubのユーザー名 - 環境変数でGitHubの認証情報を設定している場合は空白のままにします
passGitHubのパスワード - 環境変数でGitHubの認証情報を設定している場合は空白のままにします
webhooksGitMonitorからSlackにメッセージを投稿するためのIncoming Webhookトークン
rule検索ルールセットを含むディレクトリ
sourceリポジトリをダウンロードするディレクトリ
log各スキャン後の状態を記録するJSONファイルを含むディレクトリ。このJSONファイルはスキャン間の結果を比較するために使用されます(新しいリポジトリを識別するため)
startスキャン開始のバナーと機密フィルタリングルールセットスキャンの結果のバナーを定義します - Slackに送信される結果に表示されます
endスキャン終了のバナーと検索ルールセットスキャンの結果のバナーを定義します - Slackに送信される結果に表示されます
all全リポジトリを表示するためのバナーを定義します - Slackに送信される結果に表示されます