mcpField
S
secrets-management-audit

secrets-management-audit

github.com/mn-youssefセキュリティ4942 回インストール20 週間前に更新
リポジトリ

secrets-management-audit について

Secrets Management Auditは、漏えいした認証情報を探し、アプリケーションのシークレット管理を評価するセキュリティ監査スキルです。ソース、Git履歴、成果物、ログ、設定、CI/CD、クラウド環境を調べ、影響範囲とローテーション状況を記録します。

主な機能

  1. 01ソースとGit履歴のスキャン
  2. 02バンドル、バイナリ、ログ、CI/CDの確認
  3. 03検出結果の検証と権限範囲の評価
  4. 04保管、ローテーション、権限の監査
  5. 05場所とローテーション状況の記録

活用シーン

  1. 01リリース前のリポジトリ監査
  2. 02認証情報漏えいの疑いの調査
  3. 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 を参照してください。

手順

  1. 広範囲にスキャンする — Git 履歴全体、作業ツリー、成果物、ログを、エントロピー検出とパターン検出で調べます。
  2. 検証する — その検出結果は有効な認証情報か確認します(第三者の認証情報を使用せず、安全な方法で検証します。自分のキーのみを使用してください)。
  3. 影響範囲を評価する — そのシークレットで何にアクセスできるか、スコープや権限を確認します。
  4. 管理状況を監査する — シークレットが保管庫で管理され、ローテーションされ、最小権限に設定され、コード内に置かれていないか確認します。
  5. 修正する — 露出したシークレットをローテーションし、履歴から削除して、シークレットマネージャーに移し、再発防止策を追加します。

ツール

trufflehog、gitleaks、detect-secrets(履歴とエントロピーを含む検出);git filter-repo/ BFG(履歴の削除);クラウドのシークレットマネージャー/Vault(保管);pre-commit フックと CI スキャン(防止)。

出力

検出結果ごとに、シークレットの種類、場所(コミットハッシュを含む)、有効性、影響範囲、ローテーション状況を記載します。 有効な高権限キーは重大です。直ちにローテーションしてください。

引き継ぎ

漏えいしたキーからアカウント/クラウドの乗っ取りにつながる連鎖 → vulnerability-chaining;修正と再発防止 → security-hardening(ローテーション、保管庫での管理、スコープ設定、pre-commit/CI のシークレットスキャン)。

よくある間違い

  • HEAD だけをスキャンする — 削除したシークレットが残り続けるのはGit 履歴です。
  • コードからシークレットを削除しても、ローテーションしない — すでに侵害されています。
  • フロントエンド/モバイルのバンドルに、本当はシークレット/サービスキーである「公開」キーを含めて配信する。
  • 再発防止策がない — pre-commit/CI スキャンがなければ、来週にはまたシークレットが入り込みます。

コメント