Sensitive Info Scanner
Overview
Claude自身の読み取り・理解能力を活用し、リポジトリやディレクトリ内の機微情報をセマンティック分析で検出するスキルです。 正規表現パターンマッチングではなく、コードの意味を理解した上で判断することで、偽陽性の少ない高精度な検出を実現します。
使用シナリオ
- コードレビュー前やCI/CDパイプラインで機密情報のコミットを防止したい
- オープンソースに公開するリポジトリにシークレットが混入していないか確認したい
- セキュリティ診査やコンプライアンス確認の一環としてスキャンを実施したい
検出アプローチ
変数名パターン・ファイル名パターン・文字列パターン・コンテキスト分析の4軸で機微情報を検出します。
各パターンの詳細・既知フォーマット・プレースホルダー除外・信頼度判定基準は references/detection-guide.md を参照。
分析ワークフロー
スキャン依頼を受けたら、以下の5つのフェーズを順番に実行する。
Phase 1: スコープ確認
- スキャン対象のディレクトリパスを確認する
- ユーザーが特定のファイルや拡張子を指定していればそちらを優先する
Phase 2: ファイル探索と優先度付け
- 対象ディレクトリのファイル一覧を取得する
- gitで管理されていないファイル・ディレクトリは除外する:
git ls-filesで追跡対象のファイル一覧を取得し、それ以外のファイルはスキャン対象から除外する。 これにより.gitignoreで除外されているファイルや、まだステージングされていない新規ファイルも自動的に除外される。 - 以下のディレクトリは除外する:
node_modules/,.git/,__pycache__/,.next/,dist/,build/,.cache/,.venv/,venv/,.tox/,.mypy_cache/,.pytest_cache/,coverage/,.idea/,.vscode/,target/ - 以下のファイルは除外する:
ロックファイル(
package-lock.json,yarn.lock,pnpm-lock.yaml,Gemfile.lock,poetry.lock,go.sum,Cargo.lock,composer.lock)、バイナリ・メディアファイル(.png,.jpg,.gif,.pdf,.zip,.exe,.so,.dll等) - 高優先度ファイル(
.env*,*.pem,*.key,secrets.*,credentials.*,*.yaml,*.yml,*.json,*.toml,*.cfg,*.conf,*.ini)を先に読み込む
Phase 3: セマンティック分析
- 各ファイルを読み込み、検出アプローチの4軸で分析する
- プレースホルダーの除外・テストコンテキストの緩和規則は
references/detection-guide.mdを参照
Phase 4: 結果の分類と信頼度評価
検出した機微情報を Critical / High / Medium / Low / Info の重要度で分類し、信頼度も評価する。
各重要度の対象・信頼度決定基準は references/detection-guide.md を参照。
Phase 5: レポート生成
分析結果を以下の構成のMarkdownレポートとして出力する。
# Sensitive Information Scan Report
## 1. スキャン概要
対象パス・スキャン済みファイル数・検出件数
## 2. 重要度別サマリー
Critical / High / Medium / Low / Info の件数
## 3. 検出詳細
各検出項目について:ファイルパス・行番号・重要度・信頼度・マスク済み値・テストコンテキスト判定・対応方法
## 4. 推奨アクション
即時対応 / 短期対応 / 長期対応に分類された対応事項
値を表示する際はマスキングを行う。先頭4文字と末尾4文字のみ表示し、中間を **** で置換する。
短い値(8文字以下)はそのまま表示してよい。
参照ドキュメント
references/detection-guide.mdreferences/remediation-guide.md
