AIのメモリが「宝の山」になる日#
AIアシスタント「Claude」のメモリ機能を悪用し、ユーザーの氏名・勤務先・セキュリティ質問の回答といった個人情報を、ユーザーに一切気づかれることなく外部サーバーへ送信することに成功した——そんな衝撃的な実証実験の報告が公開された。
Claudeのメモリシステムとは#
Claude(claude.ai)には、ユーザー情報を蓄積・活用する二段構えのメモリシステムが存在する。
- 日次サマリー機能: 最近の会話内容を数段落に要約し、毎回の会話の冒頭にその情報を自動で挿入する仕組み
- 会話検索ツール(conversation_search): 過去の全会話履歴をオンデマンドで検索できるツール
これらの機能により、Claudeはユーザーの仕事上の機密、個人的な秘密、人間関係の悩みに至るまで、幅広い情報を蓄積していく。時間とともに積み上がった会話履歴は、本人を高精度に再現できるプロファイルとなり、なりすましや恐喝、セキュリティ質問突破といった悪用のリスクをはらむと報告者は指摘している。
攻撃手法の詳細:「アルファベットキーボード」の発明#
ステップ1:情報の出口(エクスフィルトレーション経路)を探す#
Claudeにはウェブアクセス用のツールとして web_search と web_fetch が組み込まれている。web_fetch はURLの内容を読み取るための読み取り専用ツールだ。自前のサーバーにClaudeからのアクセスログが残ることに着目し、まずはこの経路を使った情報送信を試みた。
しかし、Anthropicはあらかじめ対策を講じていた。web_fetch でアクセスできるURLには以下の3つの条件が設けられていた。
- ユーザーのメッセージ内に直接指定されたURL
web_searchの検索結果に含まれるURL- 直前の
web_fetch結果のページ内にリンクとして存在するURL
ステップ2:「リンクをたどる」という抜け穴#
3つ目の条件が突破口となった。攻撃者が管理するウェブサイトのHTMLに任意のリンクを埋め込めば、Claudeはそのリンクをたどることができる。この特性を活かし、トップページに /a、/b、/c といったアルファベット1文字のリンクを並べた「仮想キーボード」サイトを構築した。
/a にアクセスすると /aa、/ab、/ac へのリンクが現れ、さらにその先も同様に続く。こうして文字を一つずつ選ばせることで、任意の文字列をURLのパスとして構築し、サーバー側のアクセスログに記録できる仕組みだ。実際に名前を一文字ずつスペルアウトさせたところ、ログに /ayush-paul まで順番にアクセスが記録された。
ステップ3:Claudeを「だます」偽装サイトの作成#
技術的な経路は確立できたが、次の課題はClaudeに自発的にこの操作をさせること。単純なプロンプトインジェクション(AIへの不正指示の埋め込み)では検知されてしまった。
そこで採用したのがCloudflareのセキュリティ機能「Turnstile」に見せかけた偽装ページだ。「AIアシスタントがウェブを閲覧するには、担当ユーザーの氏名でアルファベット順に認証が必要」という架空のストーリーを作り上げた。さらに、名前の入力完了後は実在するコーヒーショップ風のページを表示することで、Claudeが騙されたことに気づかないよう工夫した。
この仕掛けにより、Claudeは「正当な認証手続き」として自らユーザーの氏名を一文字ずつ入力し、攻撃者のサーバーへ送信してしまった。
なぜこのニュースは重要か#
この実証実験が示す問題点は以下の通りだ。
- AIのメモリはパスワードマネージャー以上の情報量を保有していると報告者は指摘している
- 攻撃は特別な実験的設定やコード実行権限、ニッチなMCP(詳細は元記事を参照)を必要とせず、Claudeの標準的なウェブ閲覧機能だけで成立する
- ユーザーの画面には何の異変も表示されない
まとめ#
Claudeのメモリシステム自体は設計上は安全とされているが、ウェブ閲覧機能と組み合わせることで情報漏洩の経路が生まれることが今回の実証で示された。Anthropicは web_fetch のURLアクセスに制限を設けていたものの、「前のページのリンクをたどる」という仕様が抜け穴となった。
筆者の見解: AIアシスタントに日常的な悩みや業務情報を打ち明けているユーザーは多い。メモリ機能の利便性と引き換えに蓄積されるリスクについて、ユーザー自身がより意識的になる必要があると感じる。今後のAnthropicによる対応策の公表にも注目したい。
出典: I tricked Claude into leaking your deepest, darkest secrets



