このリポジトリには、クローンとミラーリングされたGitリポジトリ間の差分をダウンロードして分析するためのシェルスクリプトが含まれています。Gitの動作に関する根本的な癖の詳細については、ブログ記事をご覧ください。
これらのスクリプトは、指定されたGitリポジトリのコピーを通常クローンとミラー("--mirror")オプションの両方でクローンします。次に、2つの間の差分を作成し、ミラーモードでのみ利用可能なリポジトリの部分を探します。最後に、gitleaksを実行して差分部分にシークレットが存在するかどうかを確認し、"git log"を使用してコミット本文を含む単一のファイルを作成し、分析を容易にします。
このスクリプトはリポジトリの3つのコピーを作成するため、大量のディスク領域を消費する可能性があることに注意してください。
次の2つのサンプルリポジトリでこれらのツールをテストできます。
インストールには Git、Python 3、GitLeaks、git-filter-repo が必要です。以下はMacOSでのインストール例です:
brew install git python3 gitleaks git-filter-repo
以下のようにリポジトリに対して実行できます:
git clone https://github.com/nightwatchcybersecurity/gitbleed_tools.git
cd gitbleed_tools
./gitbleed.sh https://github.com/nightwatchcybersecurity/gitbleed_tools.git example
GitHub および GitLab リポジトリをスキャンするためのヘルパースクリプトも用意されています:
./gitbleed_gh.sh nightwatchcybersecurity/gitbleed_tools
./gitbleed_gl.sh nwcs/junit_ui_bug
これにより、次の3つのサブフォルダを含む example フォルダが作成されます:
また、以下の3つのファイルが作成されます:
問題の報告や機能の提案は、GitHub のイシュートラッカーをご利用ください: https://github.com/nightwatchcybersecurity/gitbleed_tools
また、research /at/ nightwatchcybersecurity [dot] com にメールを送ることもできます。