mcpField
D
defense

defense

github.com/ariadossセキュリティ1260 回インストール今日更新
リポジトリ

defense について

Webアプリを対象に、シークレットやアクセス制御からAPI保護、機密データの扱いまで8領域を確認するセキュリティ監査スキルです。重要度別にファイル名と行番号付きで問題を報告します。

主な機能

  1. 01ハードコードされたシークレットの検出
  2. 02認証とアクセス制御の確認
  3. 03入力検証と暗号化の確認
  4. 04OWASP Top 10リスクの監査
  5. 05API、レート制限、機密データの確認

活用シーン

  1. 01リリース前のWebアプリ監査
  2. 02認証とルート保護のレビュー
  3. 03シークレットや個人情報の露出検出

インストール

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

$npx skills add https://github.com/ariadoss/superskills --skill defense

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

詳細

多層防御 — セキュリティ検証

Web アプリケーション向けの多層セキュリティ監査です。8 つのセキュリティレイヤーにわたってチェックを実行します。

ワークフロー

各レイヤーを順番に実行します。検出事項は、重大度(CRITICAL / HIGH / MEDIUM / LOW)と file:line 参照を添えて報告します。

レイヤー 1:シークレットのスキャン

ハードコードされたシークレット、API キー、トークン、認証情報を検索します。

grep -rn "API_KEY\|SECRET_KEY\|DATABASE_URL\|PRIVATE_KEY\|password\s*=\|sk_live\|sk_test" . \
  --include="*.ts" --include="*.tsx" --include="*.js" --include="*.py" --include="*.env" \
  | grep -v node_modules | grep -v ".next" | grep -v ".env.example" | grep -v __pycache__

確認項目:

  • ソースコードにシークレットがないこと(.env のみに保存すること)
  • .env が .gitignore に含まれていること
  • Git の履歴にシークレットがないこと:git log --all -p -S "sk_live\|API_KEY\|SECRET" -- . ':!.env*' | head -50

レイヤー 2:認証と認可

  • セッション管理:トークンの有効期限、httpOnly/secure/sameSite Cookie、ログアウト時の無効化
  • ルート保護:すべての API ルートで処理前に認証を確認すること
  • ロールの適用:異なる種類のユーザーが、自身のリソースのみアクセスできること
  • IDOR の防止:リソースへのアクセスを認証済みユーザーの範囲に限定すること
# Find potentially unprotected API routes
find . -path "*/api/*/route.ts" -o -path "*/api/*/route.js" | xargs grep -L "auth\|session\|token\|verify" 2>/dev/null

レイヤー 3:入力検証

  • すべてのユーザー入力を検証すること(スキーマ、型チェック)
  • 生の SQL を使用しないこと — パラメーター化クエリまたは ORM のみを使用すること
  • シェル呼び出しでの文字列補間によるコマンドインジェクションがないこと
  • ファイルアップロードに種類とサイズの制限があること
  • URL パラメーターをサニタイズすること
# Check for template literal SQL or shell commands
grep -rn "exec(\`\|sql\`\|query(\`" . --include="*.ts" --include="*.js" | grep -v node_modules

レイヤー 4:暗号化

  • 保存時:機密データをデータベース内で暗号化すること
  • 転送中:HTTPS を強制し、HTTP へのフォールバックをなくすこと
  • 鍵管理:鍵は環境変数に保存し、ソースコードに含めず、ログにも記録しないこと

レイヤー 5:OWASP Top 10

#リスク確認項目
A01アクセス制御の不備リソースの分離、ロールチェック、IDOR
A02暗号化の失敗PII の暗号化、鍵管理
A03インジェクションSQL、コマンド、テンプレートインジェクション
A04安全でない設計ビジネスロジックの欠陥
A05セキュリティ設定のミスデフォルト認証情報、詳細すぎるエラー、デバッグモード
A06脆弱なコンポーネントnpm audit、古い依存関係
A07認証の失敗セッション管理、ブルートフォース攻撃の防止
A08データ整合性の失敗Webhook 署名、CSRF トークン
A09ログ記録の失敗監査証跡、ログに PII を記録しないこと
A10SSRFサーバー側リクエストでの URL 検証
# Dependency vulnerabilities
npm audit --production 2>/dev/null | head -50

レイヤー 6:API セキュリティ

  • Webhook 署名の検証(Stripe など)
  • API キーをクライアント側のコードに公開しないこと
  • パブリックエンドポイントにレート制限を設けること
  • CORS を適切に設定すること
  • Content-Type を検証すること

レイヤー 7:レート制限と DoS 対策

  • API ルートにレート制限を設けること
  • ログインエンドポイントにブルートフォース攻撃対策を設けること
  • ファイルアップロードのサイズ制限を適用すること
  • 負荷の高い処理をスロットリングすること

レイヤー 8:機密データの保護

  • PII をログに記録しないこと
  • エラーメッセージに PII を含めないこと
  • 機密フィールドを API レスポンスから除外すること
  • データ保持ポリシーを適用すること
# Check for PII in logs
grep -rn "console\.\(log\|error\|warn\).*\(password\|ssn\|social\|secret\|token\)" . \
  --include="*.ts" --include="*.js" | grep -v node_modules

レポート形式

## Security Audit Report

### Critical Findings
- [CRITICAL] Description — file:line

### High Findings
- [HIGH] Description — file:line

### Medium/Low Findings
- [MEDIUM/LOW] Description — file:line

### Passed Checks
- [PASS] Layer description

コメント