Gitleaks

Git リポジトリやファイルに紛れ込んだパスワード、API キー、トークンなどの秘密情報を見つけるコマンドラインツール。

cat gitleaks/meta.yml確認日 2026-10-24

安全性

影響範囲 手元だけ自分の端末の中で完結し、外には何も送らない
管理者権限
不要
検証環境
不要

使い方

用途
防御
難易度
初級
形態
コマンドライン
対応環境
Linux / macOS / Windows / Docker

信頼性

リポジトリ
gitleaks/gitleaks
ライセンス
自由に使えるMIT
GitHub
スター30,3152026-10-25 時点
メンテ状況
更新が続いている最終更新 2026-10-23
目次
  1. はじめに
  2. Gitleaks でできること
  3. 安全な試し方:自分のリポジトリを調べる
  4. コミット前に止める:pre-commit
  5. 誤検知を減らす
  6. 注意点
  7. 次に読む
  8. 出典

Gitleaks は、コードやコミット履歴に入ってしまったパスワードや API キーを探すツールです。手元のリポジトリを調べるだけなので、まず自分のプロジェクトに 1 回かけてみるところから始められます。

この記事は、GitHub などでコードを管理している開発者に向けています。読み終えると、次のことができるようになります。

  • 自分のリポジトリのコミット履歴から秘密情報を探す
  • コミットする前に自動で秘密情報を止める(pre-commit)
  • 誤検知を無視する設定を入れる

Gitleaks でできること

Gitleaks には、調べる対象ごとにコマンドがあります。

コマンド 調べるもの
gitleaks git Git リポジトリのコミット履歴。内部で git log -p を使い、過去の変更も含めて調べます
gitleaks dir ディレクトリやファイル。Git で管理していないフォルダにも使えます
gitleaks stdin 標準入力から渡したテキスト

見つかったものは、ファイル名、行番号、コミット、検出したルールの ID と一緒に表示されます。結果は JSON、CSV、JUnit、SARIF の形式でファイルに保存することもできます。

しないことGitleaks は秘密情報を見つけるだけで、消しはしません。見つかったキーは、発行元のサービスで無効にして作り直す必要があります。また、Gitleaks は手元のファイルを読むだけで、調べた内容をどこかへ送ることはありません。

安全な試し方:自分のリポジトリを調べる

  1. リリース一覧から、使っている OS 用のファイルをダウンロードして展開します。Windows、macOS、Linux 用が用意されています。macOS では brew install gitleaks でも入ります。

  2. 自分が管理しているリポジトリのフォルダに移動します。

  3. 次のコマンドを実行します。--redact を付けると、見つかった秘密情報そのものは画面に出ず、伏せ字になります。

    gitleaks git -v --redact
  4. 何も見つからなければ終了コード 0、見つかれば 1 で終わります。見つかった行は、ファイル名と行番号を手がかりに確かめます。

画面共有中や、ログが他人に見える環境で実行するときは、--redact を必ず付けてください。

コミット前に止める:pre-commit

pre-commit という仕組みを使うと、git commit のたびに Gitleaks が動き、秘密情報が入ったコミットを止められます。

  1. pre-commit を公式の手順でインストールします。

  2. リポジトリの一番上に .pre-commit-config.yaml を作り、次の内容を書きます。

    repos:
      - repo: https://github.com/gitleaks/gitleaks
        rev: v8.24.2
        hooks:
          - id: gitleaks
  3. pre-commit autoupdate を実行して、rev を最新の版に更新します。

  4. 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 とは別のライセンスになっています。

次に読む

出典

  1. 公式リポジトリ READMEgithub.com/gitleaks/gitleaks
  2. pre-commit フックの定義(.pre-commit-hooks.yaml)github.com/gitleaks/gitleaks/blob/master/.pre-commit-hooks.yaml
  3. リリース一覧github.com/gitleaks/gitleaks/releases
  4. Gitleaks-Action READMEgithub.com/gitleaks/gitleaks-action

確認日 2026-10-24

似たツール

OSV-Scanner

影響範囲 手元だけ
google/osv-scanner

プロジェクトが使っている依存ライブラリを読み取り、OSV.dev の脆弱性データベースと照らし合わせる Google 製のコマンドラインツール。

用途
防御
形式
コマンドライン
難易度
初級
ライセンス
自由に使えるApache-2.0
分類
脆弱性スキャン
更新が続いているスター11,264最終更新 2026-10-24
OSV-Scannerの解説を読む

Trivy

影響範囲 手元だけ
aquasecurity/trivy

コンテナイメージやコード、Kubernetes の脆弱性・設定ミス・埋め込まれた秘密情報を見つけるスキャナー。

用途
防御
形式
コマンドライン
難易度
初級
ライセンス
自由に使えるApache-2.0
分類
脆弱性スキャン/コンテナ・クラウド
更新が続いているスター38,703最終更新 2026-10-23
Trivyの解説を読む