Gitleaks は、コードやコミット履歴に入ってしまったパスワードや API キーを探すツールです。手元のリポジトリを調べるだけなので、まず自分のプロジェクトに 1 回かけてみるところから始められます。
この記事は、GitHub などでコードを管理している開発者に向けています。読み終えると、次のことができるようになります。
- 自分のリポジトリのコミット履歴から秘密情報を探す
- コミットする前に自動で秘密情報を止める(pre-commit)
- 誤検知を無視する設定を入れる
Gitleaks でできること
Gitleaks には、調べる対象ごとにコマンドがあります。
| コマンド | 調べるもの |
|---|---|
gitleaks git |
Git リポジトリのコミット履歴。内部で git log -p を使い、過去の変更も含めて調べます |
gitleaks dir |
ディレクトリやファイル。Git で管理していないフォルダにも使えます |
gitleaks stdin |
標準入力から渡したテキスト |
見つかったものは、ファイル名、行番号、コミット、検出したルールの ID と一緒に表示されます。結果は JSON、CSV、JUnit、SARIF の形式でファイルに保存することもできます。
安全な試し方:自分のリポジトリを調べる
-
リリース一覧から、使っている OS 用のファイルをダウンロードして展開します。Windows、macOS、Linux 用が用意されています。macOS では
brew install gitleaksでも入ります。 -
自分が管理しているリポジトリのフォルダに移動します。
-
次のコマンドを実行します。
--redactを付けると、見つかった秘密情報そのものは画面に出ず、伏せ字になります。gitleaks git -v --redact -
何も見つからなければ終了コード 0、見つかれば 1 で終わります。見つかった行は、ファイル名と行番号を手がかりに確かめます。
画面共有中や、ログが他人に見える環境で実行するときは、--redact を必ず付けてください。
コミット前に止める:pre-commit
pre-commit という仕組みを使うと、git commit のたびに Gitleaks が動き、秘密情報が入ったコミットを止められます。
-
pre-commit を公式の手順でインストールします。
-
リポジトリの一番上に
.pre-commit-config.yamlを作り、次の内容を書きます。repos: - repo: https://github.com/gitleaks/gitleaks rev: v8.24.2 hooks: - id: gitleaks -
pre-commit autoupdateを実行して、revを最新の版に更新します。 -
pre-commit installを実行して、フックを有効にします。
このフックは、ステージした変更(git add した分)だけを調べます。秘密情報が見つかると、コミットは失敗します。
フックの ID は 3 種類あります。Go で Gitleaks を組み立てて動かす gitleaks、公式の Docker イメージで動かす gitleaks-docker、PC にインストール済みの Gitleaks を使う gitleaks-system です。
一時的にフックを飛ばしたいときは、SKIP=gitleaks git commit ... のように先頭に SKIP=gitleaks を付けます。
誤検知を減らす
テスト用のダミーキーなど、わざと書いている値が引っかかることがあります。そのときは次の方法で除外します。
| 方法 | 使いどころ |
|---|---|
行末に gitleaks:allow というコメントを書く |
1 行だけ除外したいとき |
.gitleaksignore ファイルに検出結果の Fingerprint を書く |
特定の検出結果を除外したいとき |
--baseline-path に以前のレポートを渡す |
古い検出結果は無視して、新しいものだけ見たいとき |
.gitleaks.toml で設定を書く |
ルールを足したり変えたりしたいとき |
注意点
- 調べる対象は、自分のリポジトリか、調べる許可を得たリポジトリに限ってください。
- 過去のコミットで見つかったキーは、ファイルから消しても履歴に残っています。キーは発行元で無効にしてください。
- 作者は README で、Gitleaks は機能の追加を終え、今後のリリースはセキュリティ修正だけになると告知しています。作者の関心は後継の Betterleaks に移っています。
- GitHub Actions 用の Gitleaks-Action は、組織アカウントのリポジトリで使うとライセンスキー(無料)が必要です。個人アカウントでは不要です。Gitleaks-Action は v2 から MIT とは別のライセンスになっています。
次に読む
出典
- 公式リポジトリ READMEgithub.com/gitleaks/gitleaks
- pre-commit フックの定義(.pre-commit-hooks.yaml)github.com/gitleaks/gitleaks/blob/master/.pre-commit-hooks.yaml
- リリース一覧github.com/gitleaks/gitleaks/releases
- Gitleaks-Action READMEgithub.com/gitleaks/gitleaks-action
確認日 2026-10-24
似たツール
OSV-Scanner
影響範囲 手元だけプロジェクトが使っている依存ライブラリを読み取り、OSV.dev の脆弱性データベースと照らし合わせる Google 製のコマンドラインツール。
- 用途
- 防御
- 形式
- コマンドライン
- 難易度
- 初級
- ライセンス
- 自由に使えるApache-2.0
- 分類
- 脆弱性スキャン
Trivy
影響範囲 手元だけコンテナイメージやコード、Kubernetes の脆弱性・設定ミス・埋め込まれた秘密情報を見つけるスキャナー。
- 用途
- 防御
- 形式
- コマンドライン
- 難易度
- 初級
- ライセンス
- 自由に使えるApache-2.0
- 分類
- 脆弱性スキャン/コンテナ・クラウド