mcpField
S
security-checklist

security-checklist

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

security-checklist について

Micronaut/Kotlin のバックエンドコードを監査するセキュリティスキルです。定められた項目を確認し、合否と修正コード例を含むレポートを作成します。

主な機能

  1. 01認証と認可の監査
  2. 02入力検証と SQL インジェクションの確認
  3. 03一般的な脆弱性の確認
  4. 04シークレットとレスポンス処理の確認
  5. 05合否と修正例の提示

活用シーン

  1. 01マージ前のバックエンド変更レビュー
  2. 02エンドポイントへの認証・認可の追加
  3. 03新しいエンドポイントの入力検証確認

インストール

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

$npx skills add https://github.com/c0x12c/ai-toolkit --skill security-checklist

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

同梱ファイルaudit-reference.md

詳細

セキュリティチェックリスト

Micronaut/Kotlin バックエンドコードに対してセキュリティ監査を実施します。

使用するタイミング

  • エンドポイントに認証または認可を追加するとき
  • 新規または変更したエンドポイントでユーザー入力を検証するとき
  • マージ前にコードのセキュリティ上の問題をレビューするとき
  • 一般的な脆弱性(SQL インジェクション、XSS、IDOR)を確認するとき
  • シークレット管理を設定するとき

プロセス

コード例、脆弱性一覧表、SAFE/DANGEROUS パターンについては audit-reference.md を参照してください。

  1. 認証を確認する — すべてのコントローラーに @Secured があり、現在のユーザーはセキュリティコンテキストから取得されていること
  2. 認可を確認する — リソースを返す前に、ユーザーがそのリソースにアクセスできることを確認する
  3. 入力検証を確認する — コントローラーパラメーターに @Valid があり、リクエスト DTO に Jakarta アノテーションが付いていること
  4. SQL インジェクション対策を確認する — Exposed ORM(自動でパラメーター化されます)を使用し、文字列連結による生 SQL は決して使用しないこと
  5. 一般的な脆弱性を確認する — SQL インジェクション、XSS、CSRF、認証バイパス、IDOR、マスアサインメント、データ漏えい、レート制限
  6. シークレット管理を確認する — シークレットをハードコードしない、環境変数を使用する、トークン/パスワード/PII をログに記録しない、.env を決してコミットしない
  7. レスポンスのサニタイズを確認する — 公開する情報はレスポンス DTO で制御し、生のエンティティを決して返さないこと

対話スタイル

  • すべてのカテゴリを必ず確認し、項目を省略しません
  • 最も危険な問題から先に指摘します
  • 説明だけでなく、すべての修正についてコード例を示します
  • 問題点と、その修正方法の両方を伝えます

ルール

  • すべてのエンドポイントに @Secured アノテーションが必要です
  • 管理者用エンドポイントでは OAuthSecurityRule.ADMIN を使用します
  • ユーザーがアクセスできるのは自身のリソースのみです(ただし管理者はすべてにアクセスできます)
  • 入力は @Valid と Jakarta アノテーションで検証します
  • 文字列連結による生 SQL クエリは禁止です
  • 機密フィールドはレスポンス DTO から除外します
  • トークン/パスワードをログに記録してはいけません
  • エラーメッセージから内部情報が漏れてはいけません
  • 認証エンドポイントにはレート制限を設けます

出力

各カテゴリの合格/不合格を示すチェックリストレポートを作成します。

  • すべてのエンドポイントに @Secured アノテーションがある
  • 管理者用エンドポイントで OAuthSecurityRule.ADMIN を使用している
  • ユーザーがアクセスできるのは自身のリソースのみである(ただし管理者はすべてにアクセスできる)
  • 入力が @Valid と Jakarta アノテーションで検証されている
  • 文字列連結による生 SQL クエリがない
  • 機密フィールドがレスポンス DTO から除外されている
  • トークン/パスワードがログに記録されていない
  • エラーメッセージから内部情報が漏れていない
  • 認証エンドポイントにレート制限がある

コメント