Ultra Thermo Nuclear VibeCoding セキュリティレビュー — エージェントスキル
基本原則
クライアントを決して信頼するな。 価格、ユーザーID、ロール、サブスクリプション状態、機能フラグ、レート制限カウンターはすべて、サーバーサイドで検証または強制されなければなりません。ブラウザ、モバイルバンドル、リクエストボディにしか存在しないものは、攻撃者が制御可能です。
追加の原則 — core/principles.md を参照:
- 多層防御: 単一のセキュリティ制御に依存しない
- 安全に障害: 障害発生時はアクセスを拒否(フェイルクローズド)
- 最小権限: 必要最小限の権限のみ付与
- 入力検証: ユーザー入力を決して信用しない — すべてサーバーサイドで検証
- 出力エンコーディング: データをレンダリングされるコンテキストに合わせてエンコード
動作モード
モード1: AUDIT(事後分析)
以下の発言でトリガー: 「セキュリティ監査を実行」「脆弱性をチェック」「vibeセキュリティ監査」「これは安全?」または既存コードのレビューを明示的に要求する場合。
プロセス:
- 技術スタックを検出(以下のステップ1を参照)
- 50項目チェックリストを実行 —
core/audit-process.mdを参照 - スコアを計算しレポートを作成 —
core/output-format.mdを参照 - 必要に応じて該当する脆弱性リファレンスとスタックモジュールを読み込む
モード2: PREVENTIVE(コード生成時)
以下の発言でトリガー: 認証、支払い、データベースアクセス、APIキー、シークレット、ユーザーデータ、ファイルアップロードに関するコードを書いたりレビューしたりする場合(たとえユーザーがセキュリティに言及していなくても)。
プロセス:
- 記述中のコードに該当するセキュリティドメインを特定
- コードを生成する前に該当するリファレンスファイルを参照
- 最初から安全なパターンを適用
- 自明でない場合はインラインコメントでセキュリティ上の判断を説明
- セキュリティ上のトレードオフをユーザーに通知
ステップ1: 技術スタックの検出
以下のファイルを調べてプロジェクトの技術スタックを特定:
| 検出対象 | 探すべき指標 |
|---|---|
| フレームワーク | next.config.*, nuxt.config.*, astro.config.*, vite.config.*, angular.json, svelte.config.* |
| パッケージ管理 | package.json, requirements.txt, go.mod, Gemfile, Cargo.toml, pubspec.yaml |
| データベース | prisma/, drizzle.config.*, supabase/, firebase.json, convex/ |
| 認証 | インポート: @clerk, next-auth, @supabase/auth, @auth0, lucia, passport, firebase/auth |
| ストレージ | インポート: @aws-sdk/client-s3, @supabase/storage, @google-cloud/storage |
| AI API | インポート: openai, @anthropic-ai/sdk, @google/generative-ai, langchain, @ai-sdk |
| 決済 | インポート: stripe, @paddle/paddle-node, @lemonsqueezy |
| メール | インポート: resend, @sendgrid/mail, nodemailer |
| GraphQL | schema.graphql, インポート: @apollo/server, graphql-yoga, type-graphql |
| モバイル | app.json (Expo), react-native.config.js, capacitor.config.* |
| デプロイ | vercel.json, netlify.toml, fly.toml, Dockerfile, docker-compose.*, .github/workflows/ |
| Edgeランタイム | wrangler.toml, ソース内のedgeランタイムディレクティブ |
検出されたスタックに該当しないチェックはスキップしてください。
ステップ2: 監査の実行
該当するチェックリストファイルを読み込み実行:
監査進捗:
- [ ] ステップ1: 技術スタックの検出
- [ ] ステップ2a: クリティカルチェック(1〜15) — `checklists/critical-15.md` を参照
- [ ] ステップ2b: 標準チェック(16〜40) — `checklists/standard-25.md` を参照
- [ ] ステップ2c: プロダクションチェック(41〜50) — `checklists/production-10.md` を参照
- [ ] ステップ3: スコア計算とレポート作成 — `core/output-format.md` を参照
クリティカルチェックを最初に実行 — checklists/critical-15.md を読み、すべてのチェックを実行してから次に進む。
各チェックでは該当するリファレンスファイルを参照:
- 脆弱性の詳細 →
vulnerabilities/*.md - スタック固有パターン →
stack/*.md - プロダクション準備 →
production/*.md
深刻度スケール
| スコア | レベル | 必要な対応 |
|---|---|---|
| 10/10 | クリティカル | デプロイ前に修正 |
| 8-9/10 | 高 | 24時間以内に修正 |
| 6-7/10 | 中 | 1週間以内に修正 |
| 4-5/10 | 低 | 都合の良い時に修正 |
| 1-3/10 | 情報 | 対応を検討 |
プロジェクトスコア = 100から全発見項目の深刻度スコア合計を引いた値(最低0)。
| スコア | 評価 |
|---|---|
| 90-100 | ✅ 優良 |
| 70-89 | ⚠️ 良好 — 軽微な問題 |
| 50-69 | 🟡 普通 — 注意が必要 |
| 30-49 | 🟠 不良 — 有意なリスク |
| 0-29 | 🔴 クリティカル — デプロイ不可 |
ステップ3: レポートの出力
core/output-format.md で定義された形式を使用。主な要件:
- 正確なファイルと行番号を参照
- 各発見に対して一致したパターンを示す
- すべての問題に対してbefore/afterのコード差分を提供
- Quick Winsセクションを含める(10分未満で修正可能な項目)
- 優先順位付けされたサマリーで終了
リファレンスインデックス
コア
core/principles.md— セキュリティ原則と多層防御戦略core/audit-process.md— 50項目チェックリストルーティングと実行順序core/output-format.md— スコアリング付きレポートテンプレート
脆弱性知識ベース
vulnerabilities/injection.md— SQLインジェクション、XSS、コマンドインジェクション、LDAPインジェクションvulnerabilities/access-control.md— IDOR、権限昇格、マスアサインメントvulnerabilities/authentication.md— JWT、OAuth 2.0、PKCE、セッション管理、パスワードセキュリティvulnerabilities/csrf-ssrf.md— CSRF、SSRF、オープンリダイレクト(バイパス手法テーブル付き)vulnerabilities/file-upload.md— マジックバイト、ポリグロットファイル、ZIPスリップ、SVG XSSvulnerabilities/cryptography.md— 暗号化、ハッシュ、鍵管理、nonceの再利用vulnerabilities/race-conditions.md— TOCTOU、二重支払い、ミューテックスパターン
スタック固有モジュール
stack/supabase.md— RLSポリシー、認証、ストレージ、Edge Functionsstack/firebase.md— セキュリティルール、Firestore、認証stack/nextjs.md— サーバーアクション、ミドルウェア、ルートハンドラー、App Routerstack/stripe-payments.md— Webhook、価格検証、サブスクリプションフローstack/react-native.md— セキュアストレージ、APIプロキシ、ディープリンクstack/ai-llm.md— APIキー保護、プロンプトインジェクション、利用制限、出力サニタイズstack/graphql.md— イントロスペクション、深さ制限、バッチ処理、永続化クエリstack/docker-cicd.md— コンテナセキュリティ、パイプラインハードニング
プロダクション準備
production/security-headers.md— CSP、HSTS、X-Frame-Options、Permissions-Policyproduction/deployment.md— ソースマップ、環境変数の分離、デバッグエンドポイントproduction/compliance.md— GDPR、CCPA、アカウント削除、データ保持production/observability.md— ログのセキュリティ、PIIサニタイズ、監視production/dependency-audit.md— ゴーストパッケージ、タイポスクワッティング、サプライチェーン攻撃
実行可能なチェックリスト
checklists/critical-15.md— 15のクリティカルチェック(デプロイ前に修正)checklists/standard-25.md— 25の標準チェック(1週間以内に修正)checklists/production-10.md— 10のプロダクション準備チェック(稼働前に実施)
コード生成時
これらのルールは予防的に適用されます。認証、支払い、データベースアクセス、APIキー、ユーザーデータに関わるコードを書く前に、該当するリファレンスファイルを参照して脆弱性を最初から導入しないようにしてください。予防は検出よりも常に優れています。
不明な場合は、より制限的/安全なオプションを選択し、コメントでセキュリティ上の考慮事項を文書化してください。