secrets-management-audit について
Secrets Management Auditは、漏えいした認証情報を探し、アプリケーションのシークレット管理を評価するセキュリティ監査スキルです。ソース、Git履歴、成果物、ログ、設定、CI/CD、クラウド環境を調べ、影響範囲とローテーション状況を記録します。
主な機能
- 01ソースとGit履歴のスキャン
- 02バンドル、バイナリ、ログ、CI/CDの確認
- 03検出結果の検証と権限範囲の評価
- 04保管、ローテーション、権限の監査
- 05場所とローテーション状況の記録
活用シーン
- 01リリース前のリポジトリ監査
- 02認証情報漏えいの疑いの調査
- 03シークレットの保管とローテーションの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mn-youssef/ security-skills --skill secrets-management-auditインストール後、Claude Code で/secrets-management-auditを入力して読み込まれたか確認します。
同梱ファイルreferences/secret-hunting.md
詳細
シークレット管理監査(検出/修正 — 認証情報とキー)
概要
シークレットの漏えいは、侵害につながる最も早い経路の一つです。キーを一つコミットしただけで、クラウドアカウント全体を奪われる可能性があります。このスキルでは、隠れている場所を問わず露出したシークレットを見つけ、アプリがシークレットを適切に管理しているか(保管庫での管理、ローテーション、スコープ設定)を監査します。
基本原則: ソース、履歴、ログ、バイナリに含まれるシークレットは、すでに公開されたものです。侵害されたものとみなし、ローテーションしてください。ローテーションを伴わない検出は、見せかけにすぎません。
対象となる場合/対象外となる場合
- 対象となる場合: 基本的に常に対象です。どのアプリにも、ソース、Git 履歴、ログ、環境変数、ビルド成果物、CI など、どこかにシークレット/キー/設定が存在します。
- 対象外となる場合: 実質的にありません。静的サイトでも、API キー、デプロイ用認証情報、CI トークンがあります。
- スキャン対象が本当に何もない場合: その旨を明示してください。ただし、必ず先に確認してください。「シークレットがない」は、ほとんどの場合「十分に調べていない」という意味です。
⚠️ 認可
自身が所有する、または認可を受けたリポジトリ、成果物、インフラストラクチャに限ります。実際に露出したシークレットを見つけた場合はインシデントとして扱い、まずローテーションしてから、漏えい経路を修正してください。
シークレットが隠れている場所(すべて調査する)
| 場所 | 方法 |
|---|---|
| ソースコード | スキャナーとキーのパターン検索を使用します |
| Git 履歴 | HEAD から削除したシークレットも履歴には残っています。すべてのコミットをスキャンします |
| フロントエンドのバンドル | キーをブラウザーに配信している JS/ソースマップを調査します |
| モバイルバイナリ | 逆コンパイルした APK/IPA(apktool/jadx、strings)を調査します |
| ログとエラー出力 | stdout/ログファイル/APM に出力されたトークンや PII を調査します |
| 設定と環境変数 | .env、設定ファイル、コンテナー環境変数、クラウドのユーザーデータを調査します |
| CI/CD | パイプラインファイル、ビルドログ、マスクされていても漏えいした環境変数を調査します |
| クラウド | インスタンスメタデータ、関数の環境変数、IaC の状態、設定を調査します |
ツールとパターンについては references/secret-hunting.md を参照してください。
手順
- 広範囲にスキャンする — Git 履歴全体、作業ツリー、成果物、ログを、エントロピー検出とパターン検出で調べます。
- 検証する — その検出結果は有効な認証情報か確認します(第三者の認証情報を使用せず、安全な方法で検証します。自分のキーのみを使用してください)。
- 影響範囲を評価する — そのシークレットで何にアクセスできるか、スコープや権限を確認します。
- 管理状況を監査する — シークレットが保管庫で管理され、ローテーションされ、最小権限に設定され、コード内に置かれていないか確認します。
- 修正する — 露出したシークレットをローテーションし、履歴から削除して、シークレットマネージャーに移し、再発防止策を追加します。
ツール
trufflehog、gitleaks、detect-secrets(履歴とエントロピーを含む検出);git filter-repo/
BFG(履歴の削除);クラウドのシークレットマネージャー/Vault(保管);pre-commit フックと CI スキャン(防止)。
出力
検出結果ごとに、シークレットの種類、場所(コミットハッシュを含む)、有効性、影響範囲、ローテーション状況を記載します。 有効な高権限キーは重大です。直ちにローテーションしてください。
引き継ぎ
漏えいしたキーからアカウント/クラウドの乗っ取りにつながる連鎖 → vulnerability-chaining;修正と再発防止 →
security-hardening(ローテーション、保管庫での管理、スコープ設定、pre-commit/CI のシークレットスキャン)。
よくある間違い
- HEAD だけをスキャンする — 削除したシークレットが残り続けるのはGit 履歴です。
- コードからシークレットを削除しても、ローテーションしない — すでに侵害されています。
- フロントエンド/モバイルのバンドルに、本当はシークレット/サービスキーである「公開」キーを含めて配信する。
- 再発防止策がない — pre-commit/CI スキャンがなければ、来週にはまたシークレットが入り込みます。