AI構築アプリは脆い:小さな変更がデータ分離と権限を壊す理由

Claude CodeやCursorのようなAIコーディングツールを使う開発者は、一貫した問題に直面している。AIが構築したアプリは進化に弱く、小さな変更がログイン、権限、データ分離などの重要な機能を静かに壊してしまう。ある開発者は具体的な例を挙げている。シンプルなユーザーアプリで、アカウントを切り替えると他のユーザーのデータが表示されてしまうというものだ。AIが間違ったコードを書いたわけではなく、所有権ルールを理解していなかっただけだ。
根本的な問題:AIは構造から生成し、意図からではない
根本的な原因は、AIモデルがシステム本来のビジネス意図ではなく、構造パターンに基づいてコードを生成することにある。そのため、小さな追加でも、気づきにくいセキュリティや認可の失敗を引き起こす可能性がある。
共有された実用的な修正方法
その開発者は、効果があった3つの対策を見つけた:
- 所有権ルールを明示する:各レコードの所有者を明確に定義する(例:
user_id外部キーにカスケードを設定)。 - API層で権限を強制する:フロントエンドのみのチェックに頼らない。すべてのルートでミドルウェアやガード(例:
authorize('owner', $record))を使用する。 - AIにビジネスロジックをコードから推測させない:認可ルールとバリデーションをハードコードし、モデルが例からそれらを推測することを期待しない。
なぜこれが重要なのか
より多くの開発者がAIエージェントを使ってアプリを立ち上げるようになるにつれて、これらの障害モードを理解することが不可欠である。放置すれば、AIは機能的に見えるが、深刻なデータ分離や権限昇格のバグを持つアプリを生み出す可能性がある。この投稿はr/ClaudeAIコミュニティで多くの共感を呼び、広く見られる問題であることを示している。
AIを使って構築するチームへの教訓は明確だ:最初から明示的なAPIレベルの認可に投資し、AI生成コードを厳格なセキュリティレビューが必要な初稿として扱うこと。特に所有権と権限に関しては。
📖 元のソースを読む: r/ClaudeAI
👀 See Also

Google、犯罪ハッカーがAIを利用してゼロデイ脆弱性を発見したと発表
Googleは、攻撃者がAIエージェントを使い、これまで知られていなかったソフトウェアの脆弱性を発見・悪用したことを明らかにした。これは、実環境でAIが主導するゼロデイ発見が確認された初の事例となる。

ローカルモデルプロンプトインジェクションスキャナー for AIスキルセキュリティ
概念実証ツールは、Ollama上のmistral-small:latestのようなローカルの非ツール呼び出しモデルを使用して、サードパーティのAIスキルに隠れたbashコマンドインジェクションをスキャンし、Claude Codeの!演算子機能におけるセキュリティ脆弱性に対処します。

クロードの会話検索ツールは、削除されたチャットを依然として返します
Claude Proユーザーが、削除された会話がClaudeの会話検索ツールを通じて依然として取得可能であることを発見しました。チャットリンクは無効になっているにもかかわらず、タイトル、メッセージ数、抜粋などの実質的な内容が返されます。

AIが2つの脆弱性文化を崩壊させる:調整された開示とLinuxの「バグはバグ」
Jeff Kaufmanは、AIによる脆弱性発見が、調整された開示とLinuxの静かな修正文化の両方をどのように崩壊させているかを、最近のCopy Fail (ESP)脆弱性を事例に分析しています。