credential-scanner について
credential-scanner は、OpenClaw プロジェクト向けの認証情報監査スキルです。ファイル読み取り権限のあるスキルを実行する前にワークスペースを調べ、検出内容を分類して値を伏せ、対処方法を提示します。
主な機能
- 01設定ファイルやテキスト内の秘密情報を検出
- 02バイナリや一般的な依存関係ディレクトリを除外
- 03.gitignore の対象を確認
- 04コミット済みとローカルの認証情報を区別
- 05検出項目ごとに対処方法を提示
活用シーン
- 01ファイル読み取りスキルの実行前にワークスペースを監査
- 02機密設定がコミットされる可能性を確認
- 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)
ルール
- シークレットの値全体を表示しないでください。必ず
████████で省略してください。 .gitignoreを確認し、機密ファイルが無視対象になっていない場合は警告してください。- コミット済みのシークレット(重大)とローカルのみのファイル(警告)を区別してください。
networkアクセス権を持つスキルの実行前にスキャンする場合、検出結果をすべて CRITICAL に引き上げてください。- 検出結果ごとに、具体的な修正方法を提示してください。
- プロジェクトに
.env.exampleがあり、誤って実際の値が含まれていないか確認してください。
コメント
Markdown 対応