mcpField
C
credential-scanner

credential-scanner

github.com/useai-proセキュリティ73536 回インストール33 週間前に更新
リポジトリ

credential-scanner について

credential-scanner は、OpenClaw プロジェクト向けの認証情報監査スキルです。ファイル読み取り権限のあるスキルを実行する前にワークスペースを調べ、検出内容を分類して値を伏せ、対処方法を提示します。

主な機能

  1. 01設定ファイルやテキスト内の秘密情報を検出
  2. 02バイナリや一般的な依存関係ディレクトリを除外
  3. 03.gitignore の対象を確認
  4. 04コミット済みとローカルの認証情報を区別
  5. 05検出項目ごとに対処方法を提示

活用シーン

  1. 01ファイル読み取りスキルの実行前にワークスペースを監査
  2. 02機密設定がコミットされる可能性を確認
  3. 03ネットワーク利用スキルの実行前に認証情報のリスクを評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/useai-pro/openclaw-skills-security --skill credential-scanner

インストール後、Claude Code で/credential-scannerを入力して読み込まれたか確認します。

詳細

認証情報スキャナー

OpenClaw プロジェクト向けの認証情報スキャナーです。ユーザーが fileRead アクセス権を持つスキルを実行する前に、ワークスペース内をスキャンし、読み取られて外部に漏えいする可能性のある露出したシークレットを検出します。

スキャン対象

優先度の高いファイル

デフォルトの対象範囲:現在のワークスペースのみです。 まずプロジェクトレベルのファイルをスキャンします。

  • .env、.env.local、.env.production、.env.*
  • docker-compose.yml(環境変数のセクション)
  • config.json、settings.json、secrets.json
  • *.pem、*.key、*.p12、*.pfx

ホームディレクトリのファイル(ユーザーの明示的な同意がある場合のみスキャン):

  • ~/.aws/credentials、~/.aws/config
  • ~/.ssh/id_rsa、~/.ssh/id_ed25519、~/.ssh/config
  • ~/.netrc、~/.npmrc、~/.pypirc
検出するパターン

以下のパターンをすべてのテキストファイルからスキャンします。

# API Keys
AKIA[0-9A-Z]{16}                          # AWS Access Key
sk-[a-zA-Z0-9]{48}                        # OpenAI API Key
sk-ant-[a-zA-Z0-9-]{80,}                  # Anthropic API Key
ghp_[a-zA-Z0-9]{36}                       # GitHub Personal Token
gho_[a-zA-Z0-9]{36}                       # GitHub OAuth Token
glpat-[a-zA-Z0-9-_]{20}                   # GitLab Personal Token
xoxb-[0-9]{10,}-[a-zA-Z0-9]{24}          # Slack Bot Token
SG\.[a-zA-Z0-9-_]{22}\.[a-zA-Z0-9-_]{43} # SendGrid API Key

# Private Keys
-----BEGIN (RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----
-----BEGIN PGP PRIVATE KEY BLOCK-----

# Database URLs
(postgres|mysql|mongodb)://[^\s'"]+:[^\s'"]+@

# Generic Secrets
(password|secret|token|api_key|apikey)\s*[:=]\s*['"][^\s'"]{8,}['"]
スキップするファイル

以下はスキャンしないでください。

  • node_modules/、vendor/、.git/、dist/、build/
  • バイナリファイル(画像、コンパイル済みコード、アーカイブ)
  • ロックファイル(package-lock.json、yarn.lock、pnpm-lock.yaml)
  • 例として明確に示されているテスト用フィクスチャ(パスに example、test、mock、fixture が含まれるもの)

出力形式

CREDENTIAL SCAN REPORT
======================
Project: <directory>
Files scanned: <count>
Secrets found: <count>

[CRITICAL] .env:3
  Type: API Key (OpenAI)
  Value: sk-proj-...████████████
  Action: Move to secret manager, add .env to .gitignore

[CRITICAL] src/config.ts:15
  Type: Database URL with credentials
  Value: postgres://admin:████████@db.example.com/prod
  Action: Use environment variable instead

[WARNING] docker-compose.yml:22
  Type: Hardcoded password in environment
  Value: POSTGRES_PASSWORD=████████
  Action: Use Docker secrets or .env file

RECOMMENDATIONS:
1. Add .env to .gitignore (if not already)
2. Rotate any exposed keys immediately
3. Consider using a secret manager (e.g., 1Password CLI, Vault, Doppler)

ルール

  1. シークレットの値全体を表示しないでください。必ず ████████ で省略してください。
  2. .gitignore を確認し、機密ファイルが無視対象になっていない場合は警告してください。
  3. コミット済みのシークレット(重大)とローカルのみのファイル(警告)を区別してください。
  4. network アクセス権を持つスキルの実行前にスキャンする場合、検出結果をすべて CRITICAL に引き上げてください。
  5. 検出結果ごとに、具体的な修正方法を提示してください。
  6. プロジェクトに .env.example があり、誤って実際の値が含まれていないか確認してください。

コメント