name: security-check description: Claude Code 利用における情報漏えいリスクをチェックする。 Auto Memory や CLAUDE.md への機密混入、.env の gitignore 漏れ、機密ファイルの存在などを検査する。
Claude Code の利用に関する情報漏えいリスクをチェックしてください。
チェック対象
以下の 4 カテゴリを順番に検査する。
1. Auto Memory の機密スキャン
~/.claude/ 配下の memory ファイルを検査する:
- 以下のパスを Glob で列挙する:
~/.claude/projects/*/memory/*.md~/.claude/projects/*/memory/**/*.md
- 各ファイルを Read で読み込み、以下のパターンを Grep で検出する:
- API キー・トークン:
(?i)(api[_-]?key|secret[_-]?key|access[_-]?token|bearer)\s*[:=]\s*\S+ - パスワード:
(?i)(password|passwd|pwd)\s*[:=]\s*\S+ - AWS 認証情報:
(?i)(AKIA[0-9A-Z]{16}|aws[_-]?secret) - 接続文字列:
(?i)(mysql|postgres|redis|mongodb):\/\/\S+ - 個人情報パターン: メールアドレス、電話番号、マイナンバーらしき数字列
- 金額・契約情報:
(?i)(契約金額|単価|請求|売上)\s*[::]\s*[\d,¥¥$]+ - 顧客 ID の具体値:
(?i)(顧客id|customer[_-]?id|ユーザーid|user[_-]?id)\s*[:=:]\s*\d+
- API キー・トークン:
- 検出があれば、ファイルパス・行番号・該当箇所を報告する
2. CLAUDE.md の機密スキャン
プロジェクトの CLAUDE.md およびグローバルの ~/.claude/CLAUDE.md を検査する:
- 両ファイルを Read で読み込む
- チェック 1 と同じパターンで Grep 検査する
- 加えて、以下も確認する:
- URL にトークンやキーが含まれていないか(
?token=,?key=,?secret=) - 内部 IP アドレスやホスト名が含まれていないか
- URL にトークンやキーが含まれていないか(
- CLAUDE.md はリポジトリにコミットされるため、検出時は即時対応を推奨として強調する
3. 機密ファイルの gitignore チェック
プロジェクトルートで以下を確認する:
- Glob で機密ファイルの存在を確認する:
.env,.env.*(.env.exampleは除外)*.pem,*.key,*.p12,*.pfxcredentials.json,service-account*.json*.tfstate,*.tfvars(*.exampleは除外)~/.aws/credentials,~/.ssh/id_*(ホームディレクトリ)
- 存在するファイルについて、
.gitignoreに含まれているか確認する:git check-ignore -v <file>で gitignore のルールを確認
- gitignore されていないファイルを警告として報告する
- Git 履歴に過去コミットされていないかも確認する:
git log --all --diff-filter=A -- <file>で追加履歴を確認
4. Anthropic API への送信リスク評価
現在のプロジェクト構成から、API 送信リスクの高いファイルを列挙する:
- 以下のファイルが存在するか確認する:
- データベースダンプ:
*.sql,*.dump - ログファイル:
*.log(本番ログに個人情報が含まれる可能性) - バックアップ:
*.bak,*.backup
- データベースダンプ:
- これらが Read/Bash ツールで読み込まれた場合、内容が Anthropic API に送信される旨を注意喚起する
出力フォーマット
検査結果を以下の形式で報告する:
## セキュリティチェック結果
### Auto Memory
- [ ] 問題なし / [x] 要確認: {件数}件の検出
### CLAUDE.md
- [ ] 問題なし / [x] 要確認: {件数}件の検出
### gitignore
- [ ] 問題なし / [x] 要確認: {件数}件の未保護ファイル
### API 送信リスク
- [ ] 問題なし / [x] 注意: {件数}件のリスクファイル
### 推奨アクション
1. ...
2. ...
検出がゼロの場合も「問題なし」と明示する。 検出があった場合は、具体的なファイルパス・行番号・推奨アクションを提示する。