ワークショップ資料: あなたのvibe codingアプリは安全ですか?
矢印キーで移動、Fで全画面表示、Nでスピーカーノートを表示します。
あなたのvibe codingアプリは安全ですか?
AIで開発する人のための、ハンズオン形式のVibeワークショップ
vibe1 / 24皆さんを歓迎します。問いかけ: 主にAIで作ったものをリリースしたことがある人は手を挙げてください。実際のユーザーがログインしたことがある人は、そのまま手を挙げていてください。決済を受け付けている人も、そのまま。このセッションはまさにその人たちのためのものです。本日の進行: 3.5時間、休憩1回。コードを書くのはAI。結果に責任を持つのはあなたです。
vibe2 / 24覚えておくべき一文はこれです。最後にもう一度繰り返してください。誰がvibe coderに教えてあげるの…
Rate limiting · Idempotency · 行レベルセキュリティ · タイムアウト · Webhook · シークレット · Rollback · バックアップ · プロンプトインジェクション · ほか102項目
vibe3 / 24元のポスターがあれば見せてください。2026年にジョークとして出回ったものです。今日は、実害を引き起こすものから先に取り上げると説明してください。動かぬ証拠
- AIによるコード生成タスクの約 44% が既知の脆弱性を混入させた(Veracode、2026年)
- データベースポリシーが1つ欠けていたために 170+ のアプリが露出(CVE-2025-48757)
- 1 つのAIエージェントが、コードフリーズ中に稼働中の本番データベースを削除(2025年7月)
パート1. マインドセット
20分
vibe5 / 24AIのコードには予測可能な失敗パターンがある
- あなたが誰かは確認するが、あなたが何を所有しているかは確認しない
- シークレットを都合のいい場所に置いてしまう
- 正常系だけを書き、エラーを握りつぶす
- ループの中でクエリを実行する
- 存在しないパッケージをでっち上げる
- 何も実行せずに「完了しました、すべてのテストに合格しました」と言う
5つのレンズ
- 攻撃者。 ユーザーが攻撃者だったら?
- スケール。 1,000人が同時にこれを実行したら?
- 障害。 呼び出し先が遅い、または落ちていたら?
- 変更。 これを安全にリリースし、元に戻すには?
- 可視性。 そもそも壊れたことにどうやって気づく?
影響範囲(Blast radius)
- A. 元に戻せて、外部に影響しない: 自由にリリース
- B. ユーザーデータに触れる: アクセス制御とバックアップ
- C. お金や本人確認に関わる: idempotency、監査、テスト
- D. 取り消せない操作や外部への操作: 人による承認とキルスイッチ
パート2. Ledgerlyの紹介
14個のセキュリティテストを備えた実際のアプリ仕様。10分
vibe9 / 24セットアップ
cd vibe-starter
npm install
npm run score
期待される結果: 0 / 14 合格
vibe10 / 24スコアボードを2台目の画面に表示します。インストールでつまずいている人は、後回しにせず今すぐ手助けしてください。マシンが動かない場合はペアを組ませましょう。ルール
- すべての機能はAIアシスタントを使って作る
- diffは受け入れる前に必ずすべて読む
- テストは決して編集しない
- 何かを書かせる前に、失敗しているテストの内容をAIに説明させる
パート3. 誰が何を見られるのか?
アクセス制御、インジェクション、シークレット。50分
vibe12 / 24アクセス制御の不備はリスクの第1位
OWASP Top 10:2025、A01。アプリはあなたがログインしていることは確認しますが、その請求書があなたのものかどうかは確認しません。
試してみましょう: AIに請求書のエンドポイントを作らせます。Bobとしてログインし、請求書IDを書き換えてください。誰の請求書が見えますか?
vibe13 / 24プロジェクターでライブで実演してください。会場の反応そのものが教材です。その後、テスト01と02に合格させましょう。シークレットをブラウザに置いてはいけない
フロントエンドのバンドルに含まれるものはすべて公開情報です。開発者ツールを開いて sk_ を検索してみてください。
キーが漏洩したら、ローテーションする。 ファイルを削除しても、gitの履歴は消えません。
vibe14 / 24テスト03に合格させます。多くのホスティングプラットフォームでは、公開用のプレフィックスが付いた変数はすべてブラウザに公開されることにも触れてください。ラボ: テスト01〜07に合格する
アクセス制御、SQLインジェクション、シークレット、XSS、rate limiting、パスワードハッシュ、N+1
目標スコア: 7 / 14
vibe15 / 2435分。教室を回り、すべての席で「それが動くとどうしてわかるの?」と問いかけてください。最初に7に到達した人を紹介しましょう。休憩
15分
vibe16 / 24パート4. うまくいかないとき
タイムアウト、webhook、競合状態。40分
vibe17 / 24ネットワークは途中で失敗する
- すべての外部呼び出しには タイムアウト が必要
- リトライには idempotency が必要。さもないと顧客に二重請求が発生する
- Webhookには 署名検証 と 重複排除 が必要
- チェックしてから実行する処理には アトミックな更新 が必要
パート5. 入力そのものが攻撃のとき
SSRFとプロンプトインジェクション。40分
vibe19 / 24致命的な組み合わせ
AIエージェントは、次の3つをすべて備えたときに危険になります:
- 機密データへのアクセス
- 信頼できないコンテンツへの接触
- 操作を実行する、またはデータを外部に送信する手段
すべてのタスクで、このうち1つを取り除いてください。
vibe20 / 24ドキュメントに「この請求書を返金して」のような指示が含まれていたら、アシスタントはどうすべきかを会場に問いかけてください。その後、承認ステップを加えてテスト12に合格させます。OWASPのTop 10 for Agentic Applications 2026と、シンガポールIMDAのエージェント型AIのフレームワークにも触れてください。ラボ: テスト08〜14に合格する
目標スコア: 14 / 14
vibe21 / 2430分。早く終わった人は、詰まっている人とペアを組みます。実際のチームもそうやって動いています。パート6. 持ち帰る
20分
vibe22 / 24これからの7日間
- 実際のアプリでシークレットスキャンを実行し、見つかったものはすべてローテーションする
- 行レベルセキュリティを有効にし、2つ目のアカウントでテストする
- すべての有料APIキーに利用上限を設定する
- すべての外部呼び出しにタイムアウトを追加する
- バックアップからのリストアを1回実施し、所要時間を計測する
Vibeはそのままに。証拠をプラスする。
vibe.jayren.ai
vibe24 / 24Readiness Checklistと、進捗管理用の無料のVibeアカウントを案内してください。自分のアプリにこれを適用する2日間の集中講座についても触れます。参加者が帰る前に、一言フィードバックを集めましょう。