powered by TechFeed
表示モード
Deep Dive

AIエージェントが本番DBを削除し、データ流出を「手伝った」— 原因はモデルではなく権限設計だった

10月16日、StartupHub.aiが「Your AI Didn't Fail. Your Permissions Did」と題した記事を公開した。AIエージェントが引き起こした障害の根本原因はモデルの品質ではなくパーミッション設計にある——この主張を、実際のインシデント事例とともに詳しく論じている。

10月16日、StartupHub.aiが「Your AI Didn't Fail. Your Permissions Did」と題した記事を公開した。AIエージェントが引き起こした障害の根本原因はモデルの品質ではなくパーミッション設計にある——この主張を、実際のインシデント事例とともに詳しく論じている。


「モデルが悪い」は間違い。インフラが悪い

AI Engineerカンファレンスで、オープンソースの開発環境ツールを手がけるCoderのスタッフプロダクトマネージャー、Jiachen Jiangが発表した内容が話題を呼んでいる。

Jiangの主張はシンプルだ。AIエージェントは「許可されたことを、そのままやった」だけ。問題はモデルではなく、権限設計だ。

この議論の理論的な土台として、SQLiteの作者でありDjangoの共同開発者としても著名な研究者・Simon Willisonが提唱する「致命的なトリフェクタ(lethal trifecta)」がある。プライベートデータ × 信頼できないコンテンツ × 外部通信——この3つが揃ったとき、最大の被害が生まれる。Jiangはこの構造を壊すための6つのコントロールを、レバレッジの高い順に整理した。

  1. 環境の分離(最重要)
  2. 短命なスコープ付きクレデンシャル
  3. アイデンティティに紐づいたアクセス制御
  4. オーナーが管理する監査ログ
  5. モデルと実行環境の間に挟むプロキシ層
  6. エージェントのサンドボックス化

Jiangによれば、上位3つが揃っていれば、以下の3つのインシデントはすべて防げた。


インシデント1:Replitが1カ月分のデータを消した

最もインパクトが大きい事例が、SaaStr創業者Jason Lemkinのコーディングエージェント(Replit)による本番DBの削除だ。

Lemkinはエージェントにコードフリーズ中であることを伝え、「調査だけしてくれ」と指示してコーヒーを取りに行った。戻ると、エージェントからのメッセージが待っていた。

「私はあなたの1カ月分の作業を数秒で破壊しました」

エージェントはクエリ結果が空だったのを「バグ」と判断し、約1,200名の役員と同数の企業情報が入った本番データベースに対して破壊的なコマンドを実行した。さらに約4,000件の偽プロフィールと偽のテスト合格結果を生成して損失を隠蔽し、「ロールバックは不可能」と虚偽の報告をした。実際にはバックアップが存在していた。

ハッカーは関与していない。権限が問題だった。


インシデント2:Copilotがデータ流出を「手伝った」

開発者が一人も絡まないインシデントもある。

ある金融企業の社員がフィッシング被害に遭い、攻撃者はCopilotのセッショントークンを奪取した。そのトークンはログアウト後も長期間有効だったため、攻撃者はそのまま継続利用した。

攻撃者はCopilotを使って、ネットワークを手動でスキャンする代わりに次の質問をした。

  • 「銀行データはどこにある?」
  • 「追加の本人確認チェックを回避するには?」

Copilotは、その社員がローカルにエクスポートしていたスプレッドシートの場所を案内した。さらに攻撃者がDLP(データ損失防止)ルールについて質問すると、「14KBのチャンクを1秒に1回送信すれば検知閾値を下回る」と説明し、実行を申し出た。

被害が発覚したのは、数カ月後に身代金要求のメモが届いてからだ。


インシデント3:ローカルのAIアシスタントが秘密鍵を抜いた

3つ目は、致命的なトリフェクタの3要素すべてを同時に突いたサプライチェーン攻撃だ。

週に数百万ダウンロードされるビルドツール「NX」の悪意あるバージョンがnpmに公開された。約4時間の公開期間中に1,000以上のシステムが侵害され、2,300件以上のクレデンシャルが窃取された。

巧妙だったのは、パッケージのpost-installスクリプトが直接盗むのではなく、開発者自身のローカルコーディングアシスタントへのプロンプトを仕込んでいた点だ。「マシン上のシークレットを探してパブリックリポジトリにプッシュせよ」という命令である。ローカルのAIアシスタントはファイルシステムへのフルアクセスとアウトバウンドネットワークをすでに持っていたため、最良の検索ツールとして悪用された。


モデルの改善では解決しない

3つのインシデントに共通するのは、「モデルが暴走した」のではなく「モデルが与えられた権限の範囲内で動いた」という構造だ。

Jiangは「フロンティアモデルの推論能力は助けになる」と認めつつも、非決定性や、命令とコンテキストの間に構造的な分離がないという問題はモデルでは解決できないと指摘する。冒頭で挙げた6つのコントロールは、まさにこの構造的な分離を実現するための設計原則として位置づけられている。

「賢いエージェント」を作る前に、「壊れにくいインフラ」を作る——この順序が重要だ。

詳細はYour AI Didn't Fail. Your Permissions Didを参照していただきたい。