secrets-scan について
コードベースやリポジトリを保守する開発者向けのシークレットスキャンスキルです。利用可能な自動スキャナーと手動のパターン・文脈確認を組み合わせ、検出後のマスキングや対応手順も定めています。
主な機能
- 01自動スキャナーの選択
- 02シークレットパターンの手動確認
- 03検出内容の文脈評価
- 04予防策のチェックリスト
- 05マスキングとローテーションの指針
活用シーン
- 01コードベース内のハードコードされた認証情報のスキャン
- 02リポジトリ履歴に残るシークレットの確認
- 03検出された認証情報の評価と対応
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ owasp/ secure-agent-playbook --skill secrets-scanインストール後、Claude Code で/secrets-scanを入力して読み込まれたか確認します。
詳細
シークレットスキャン
plays/secrets-scan.md の手順に従って、ハードコードされたシークレットを検出します。
手順
-
自動スキャナーを実行する — 利用可能なツールを、次の優先順位で使用します:
trufflehog filesystem --directory=<path> --json(推奨)trufflehog git file://<repo> --json(Git の履歴も含みます)gitleaks detect --source=<path> --report-format=jsondetect-secrets scan <path> --all-files- スキャナーが利用できない場合は、手動でパターン分析を行います。
-
手動でパターン分析を行う — 確度の高いパターンを検索します:
- AWS キー(
AKIA...)、OpenAI(sk-...)、Anthropic(sk-ant-...)、GitHub(ghp_...)、Slack(xoxb-...)、Stripe(sk_live_...)、SendGrid(SG.) - パスワードが埋め込まれた接続文字列(
://user:pass@host) - 秘密鍵(PEM ヘッダー)、JWT シークレット、データベースの認証情報
- リスクの高いファイル:
.env、docker-compose*.yml、*.tfvars、terraform.tfstate、kubeconfig、.npmrc、.pypirc
- AWS キー(
-
コンテキストを分析する — 検出した項目ごとに、実際の値か(プレースホルダーやテスト用データではないか)、有効か、影響範囲(サービス、権限、本番環境か開発環境か、露出期間)はどの程度かを確認します。
-
予防策を確認する — 次の項目を確認します:
.gitignoreで機密ファイルが除外されているか、シークレットスキャン用の pre-commit フックがあるか、CI パイプラインでスキャンしているか、シークレット管理のドキュメントがあるか。
重要:検出結果に実際のシークレット値を含めないでください。必ずマスキングした値のみを表示します(例:AKIA****EXAMPLE)。本番環境で有効なシークレットは、直ちにローテーションする必要があります。
出力
スキャンの概要、templates/finding.md を使用した検出結果、予防策のチェックリスト、必要に応じた即時ローテーションの対応を出力します。
OWASP の参照情報
- A07:2021:識別と認証の失敗
- CWE-798:ハードコードされた認証情報の使用
- CWE-312:機密情報の平文保存
コメント
Markdown 対応