mcpField
S
security-secrets

security-secrets

github.com/igorwarzochaセキュリティ122112 回インストール38 週間前に更新
リポジトリ

security-secrets について

security-secretsは、コードベース内の認証情報露出を検出するセキュリティスキルです。一般的なシークレットの正規表現、重点ファイル、コマンドラインスキャン、マスキング規則を示します。

主な機能

  1. 01高精度なシークレット正規表現
  2. 02一般的な認証情報の検出
  3. 03重点ファイルのリスク指針
  4. 04コマンドラインスキャンコマンド
  5. 05シークレットのマスキング形式
  6. 06即時ローテーションの指示

活用シーン

  1. 01リポジトリ内の認証情報漏えい検索
  2. 02セキュリティレビューでのファイル優先順位付け
  3. 03監査報告での検出結果のマスキング

インストール

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

$npx skills add https://github.com/igorwarzocha/opencode-workflows --skill security-secrets

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

同梱ファイルscripts/scan-all.shscripts/scan.sh

詳細

コードベース内のシークレット検出に有効な正規表現パターンです。

高精度な正規表現パターン

シークレットの種類パターン備考
AWS アクセスキーAKIA[0-9A-Z]{16}常に20文字で、AKIAで始まります
AWS シークレット(?i)aws(.{0,20})?['"][0-9a-zA-Z/+]{40}['"]Base64風の40文字です
Google API キーAIza[0-9A-Za-z\-_]{35}合計39文字です
Google OAuth[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.comクライアント ID
Google サービスアカウント"type":\s*"service_account"JSON ファイル内
GitHub トークンgh[pousr]_[A-Za-z0-9_]{36,}ghp_/gho_/ghu_/ghs_/ghr_
GitHub PAT(きめ細かいアクセス制御)github_pat_[A-Za-z0-9_]{22,}新しい形式
GitLab トークンglpat-[A-Za-z0-9\-]{20,}パーソナルアクセストークン
Stripe シークレット`sk_(livetest)_[0-9a-zA-Z]{24,}`
Stripe 制限付きキー`rk_(livetest)_[0-9a-zA-Z]{24,}`
Stripe 公開可能キー`pk_(livetest)_[0-9a-zA-Z]{24,}`
Slack ボットトークンxoxb-[A-Za-z0-9-]+ボットトークン
Slack ユーザートークンxoxp-[A-Za-z0-9-]+ユーザートークン
Slack ワークフロートークンxwfp-[A-Za-z0-9-]+ワークフロートークン
Slack アプリトークンxapp-[A-Za-z0-9-]+アプリレベルのトークン
Slack Webhookhttps://hooks\.slack\.com/services/T[A-Z0-9]+/B[A-Z0-9]+/[a-zA-Z0-9]+
Discord トークン[MN][A-Za-z\d]{23,}\.[\w-]{6}\.[\w-]{27}ボットトークン
Discord Webhookhttps://discord\.com/api/webhooks/[0-9]+/[A-Za-z0-9_-]+
OpenAI キーsk-[A-Za-z0-9]{48}API キー
Anthropic キーsk-ant-[A-Za-z0-9\-]{32,}API キー
TwilioSK[a-z0-9]{32}API キー SID
SendGridSG\.[a-zA-Z0-9]{22}\.[a-zA-Z0-9]{43}API キー
Mailgunkey-[0-9a-zA-Z]{32}API キー
Mailchimp[a-f0-9]{32}-us[0-9]{1,2}API キー
Firebase(?i)firebase[a-z0-9\-]+\.firebaseio\.comデータベース URL
SupabaseeyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*JWT(コンテキストを確認)
Heroku[hH]eroku.*[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}API キー
NPM トークンnpm_[A-Za-z0-9]{36}公開用トークン
PyPI トークンpypi-[A-Za-z0-9_-]{50,}アップロード用トークン
秘密鍵`-----BEGIN (RSAEC
データベース URL`(?i)(postgresmysql
URL 内のパスワード[a-zA-Z]{3,15}://[^/\\:@]+:[^/\\:@]+@.{1,100}Basic 認証
JWT シークレット`(?i)(jwt[_-]?secrettoken[_-]?secret)['"]?\s*[:=]\s*['"][^'"]+['"]`
汎用シークレット`(?i)(passwordpasswd

CLI スキャンコマンド

# Quick grep scan (fast, high signal)
rg -n "(AKIA[0-9A-Z]{16}|sk_(live|test)_|rk_(live|test)_|pk_(live|test)_|xox[baprs]-|xapp-|xwfp-|gh[pousr]_|github_pat_)" .
rg -n "BEGIN (RSA|EC|OPENSSH|DSA|PGP) PRIVATE KEY" .
rg -n "(?i)(api[_-]?key|secret|token|password)\s*[:=]\s*['\"][^'\"]{8,}" .

# Dedicated scanners (thorough)
gitleaks detect --source . --redact --no-git
semgrep scan --config p/secrets --error
trufflehog filesystem . --only-verified

<priority_files>

優先して確認するファイル

ファイルパターンリスクレベル理由
.env*CRITICAL多くのシークレットが含まれていることがよくあります
*config*.js/ts/jsonHIGHアプリの設定
*secret*, *credential*HIGH不審な名前が付けられています
docker-compose*.ymlHIGHデータベースのパスワードやサービスの認証情報
.github/workflows/*.ymlHIGHCI/CD のシークレット
*test*, *spec*, *fixture*MEDIUM実際の認証情報を含むテストデータ
*.pem, *.key, *.p12CRITICAL秘密鍵

</priority_files>

マスキング形式

シークレットを報告する場合は、必ず次のようにマスキングしてください:

Original: AKIAIOSFODNN7EXAMPLE
Redacted: AKIA****...****MPLE

Original: sk_test_XXXXYYYYZZZZ11112222
Redacted: sk_****...****2222

先頭4文字と末尾4文字のみを表示してください。直ちにローテーションするよう必ず指示してください。

コメント