Engineering · セキュリティ

暗号化された思考ブロックの落とし穴 — 推論鎖リプレイ攻撃と Preserved Thinking の設計

暗号化された思考ブロックは、同エコシステム内の弱いモデルへのリプレイ攻撃で平文に復元できる。Sonnet 5.5 のアカウント紐付けがその対策の核心です。

要点

  • ✓2026年8月10日公開の論文(Panfilov ら、arXiv:2608.09867)は、LLM の暗号化思考ブロックを同エコシステム内の弱いモデルへリプレイするだけで平文が復元できることを実証した
  • ✓公開エージェントトレース調査では 6,708 件のトレースから 315,320 件のブロックが復号され、367 件の PII と 182 件の認証情報が回収された(同論文)
  • ✓エージェントはチャットより大量の思考ブロックを生成し、ログ・デバッグ用途で公開リポジトリに上がりやすい——これが攻撃面を広げる
  • ✓Anthropic の対策(2026-09-28 Sonnet 5.5)は2本柱:①アカウント紐付け(同組織外からのブロック読取をブロック)/②コンテキスト整合性(生成時と同一の SYS/ツール/MSG を検証)
  • ✓公開リポジトリへのエージェントトレースのコミットは、暗号化済みでも禁止。マルチ組織ハンドオフは「リンク済みアカウント」かを確認する必要がある

推論は「隠せば安全」ではない

エージェントが複雑な判断をするとき、裏側では思考ブロック(thinking blocks)と呼ばれる推論チェーンが動いています。ユーザーには見えず、暗号化されて返ってくる——それで十分な保護に見えます。ところが2026年8月10日、その前提を覆す研究が公開されました。

「Stealing Reasoning Traces from Proprietary LLM APIs」(Panfilov ら、arXiv:2608.09867、2026-08-10)は、暗号化された思考ブロックが同エコシステム内の弱いモデルを介して平文に復元できることを実証しました。研究チームが公開リポジトリから収集した 6,708 件のエージェントトレースに含まれる 315,320 件のブロックを復号した結果、367 件の個人情報(PII)と 182 件の認証情報が含まれていたことが確認されています(同論文)。

暗号化ブロックは「リプレイ」で解かれる

フロンティアモデルOpus 5.5 等暗号化ブロックステートレス公開リポジトリへ公開トレースGitHub 等攻撃者が取得弱いモデルHaiku 4.5 等平文の推論復号完了315,320件 ブロック復号367件 PII182件 認証情報出典:Panfilov ら arXiv:2608.09867(2026-08-10)公開リポジトリ調査より
フロンティアモデルが返した暗号化思考ブロックは、公開リポジトリ経由で攻撃者に取得され、同エコシステム内の弱いモデル(Haiku 4.5 等)へのリプレイで平文に復元できる。315,320 件のブロックから 182 件の認証情報が漏洩(Panfilov ら arXiv:2608.09867、2026-08-10)

エージェントはなぜとくに脆弱か

チャット型のやりとりと比べ、エージェントは大量の思考ブロックを継続的に生成します。多段階のタスクをこなすにつれ、ブロックはターンをまたいで蓄積し、デバッグ用に保存されたり、テスト用として GitHub や Hugging Face に上がったりします。Panfilov らが解析した 6,708 件のエージェントトレースはいずれも公開リポジトリから取得したものであり、開発者が意図せず思考ブロックを外部に公開していたことを示しています(同論文)。

マルチエージェント構成も追加のリスクをはらみます。複数のエージェントが思考ブロックを受け渡しながら協調するアーキテクチャでは、ブロックが複数のコンテキストを経由します。ブロックの「誰のものか」を検証する仕組みがなければ、その流通経路のどこかで弱いモデルへのリプレイが成立しえます。

エージェントトレース管理が盲点になりやすい理由

思考ブロックが「暗号化済み」だと分かると、セキュリティレビューが通常のログより甘くなりがちです。しかし今回の研究が示すように、暗号化はエコシステム内の別モデルによる復号を防がないため、通常の機密データと同様のアクセス制御・保存ポリシー・公開禁止の取り扱いが必要です。

(B) 攻撃の3ステップ — なぜ成立したか

Panfilov ら(arXiv:2608.09867)が明らかにした攻撃の一般的なメカニズムは3つのステップで構成されます。

  • ブロックの取得: 暗号化思考ブロックはステートレスな設計で、API 呼び出しのたびにクライアントが渡す方式でした。そのため、公開リポジトリやログに蓄積されたブロックをそのまま再利用できました。
  • リプレイ攻撃: 攻撃者は取得したブロックを、同じプロバイダエコシステム内の保護が弱いモデル(Claude では Haiku 4.5 等)に付けてリクエストを送ります。弱いモデルは「デコードオラクル」として機能し、ブロックの内容を参照して応答を生成します。
  • 平文の復元: 弱いモデルの応答から、元の推論チェーンを再構成できます。研究では、API が報告する推論トークン数と復元されたトークン数がほぼ一致することを確認しています(同論文)。

この攻撃が成立した根本は、ブロックに「誰のアカウントで生成したか」を紐付けるメカニズムがなく、コンテキスト(システムプロンプト・ツール・メッセージ)を変えても利用できた点にあります。

アカウント紐付けとコンテキスト整合性が防御の2本柱

① アカウント紐付けOrg A 読取✓ 許可(同組織)思考ブロックOrg A に紐付けOrg B 読取✗ 破棄② コンテキスト整合性同一コンテキスト✓ 通過コンテキスト検証SYS/ツール/MSGコンテキスト改変✗ ブロック除去2026-08-31 以降作成のアカウントに適用(Claude Fable 5.1・Opus 5.5・Sonnet 5.5)。Anthropic「Preserved thinking」(2026-09-28)
Claude Sonnet 5.5 で導入された保護の2層。①アカウント紐付け:思考ブロックは生成した組織(または明示的にリンクされた組織)のみが読み取れる。別組織からのブロックは破棄される(リクエスト自体は成功)。②コンテキスト整合性:API が生成時と同一のシステムプロンプト・ツール・メッセージを検証する(Anthropic「Preserved thinking」、2026-09-28)

Anthropic の対策:Sonnet 5.5 の3つの変更

Anthropic は2026年9月28日、Claude Sonnet 5.5 とともに「Preserved thinking」の強化を展開し、推論抽出に対する3層の防御を実装しました(Anthropic「Claude Sonnet 5.5」発表、および「Preserved thinking」サポートドキュメント、2026-09-28)。

  • ① アカウント紐付け(Account Binding): 思考ブロックは生成したアカウント、または同じ Claude Platform 組織もしくは Google Cloud 組織内のリンク済みアカウントのみが利用できます。別アカウントからのブロックは API が破棄しますが、リクエスト自体は成功します(non-strict モードでは破棄されたブロックが通知されます)。
  • ② コンテキスト整合性(Context Integrity): API は、思考ブロックが生成時と同じシステムプロンプト・ツール・メッセージとともに送られているかを検証します。コンテキストを書き換えたうえでブロックを再利用する「なりすまし」が通らなくなりました。
  • ③ 蒸留検知クラシファイア(Distillation Classifier): 数千のアカウントを用いた工業的な推論抽出(能力の蒸留)を検出するクラシファイアが追加されました。技術的な実装の詳細は公式ドキュメントでは非開示となっています。

これらの変更は Claude Fable 5.1・Claude Opus 5.5・Claude Sonnet 5.5 に対して、2026年8月31日以降に作成された新規アカウントへ適用されています。既存アカウントへの適用は段階展開となります(同サポートドキュメント)。

🛡 (A) agens の現在の実装 / (C) 今後の設計方向

(A) agens は Anthropic の Claude Platform 上で動作するため、2026-09-28 以降の Preserved thinking 強化はそのまま適用されます。エージェントが生成した思考ブロックは組織アカウントに紐付けられており、外部組織からの読み取りを防ぎます。監査ログと AIタスク監査機能は、エージェントの操作記録を保持します。(C) エージェントトレースの保存・外部公開ポリシーに関するガイドラインの整備は今後の機能整備方向の一つとして検討中です。

エージェント設計者が今すぐ確認すべき3点

(B) 今回の脆弱性と Anthropic の対策を踏まえ、エージェントを構築・運用するすべての開発者が確認すべき点を整理します。

  • エージェントトレースの保存・公開ポリシーを見直す: 思考ブロックが含まれるログやトレースを公開リポジトリにコミットしないようにします。「暗号化済み」を理由に機密データとして扱わない運用を避けてください。
  • マルチ組織の agent handoff では「リンク済みアカウント」を確認する: アカウント紐付けにより、別の Claude Platform 組織や AWS Bedrock / Google Vertex AI をまたぐブロックの受け渡しは動作が変わります。組織間のフォールオーバーが必要な場合はアカウントチームへの連絡が必要です(Anthropic「Preserved thinking」サポートドキュメント)。
  • コンテキストを動的に変えながら thinking block を再利用するコードを確認する: コンテキスト整合性の導入により、システムプロンプト・ツール・メッセージを変えながらブロックを再利用するパターンは動作が変わります。non-strict モードへの切り替えか、コンテキストを変えずに使う設計への修正を検討してください。

よくある質問

アカウント紐付けにより、マルチエージェントのハンドオフはどう変わりますか?
同じ Claude Platform 組織内のエージェント間では変更なく動作します。別組織間やクロスプラットフォーム(Vertex AI ↔ Bedrock など)のハンドオフでは、ブロックが破棄されます。ただしリクエスト自体は成功し、モデルが思考を再生成します。non-strict モードでは破棄されたブロックが通知されます。組織間の明示的なアカウントリンクが必要な場合はアカウントチームへの連絡が必要です(Anthropic「Preserved thinking」サポートドキュメント、2026-09-28)。
今回の攻撃はすべてのモデルが対象でしたか?
Panfilov ら(arXiv:2608.09867、2026-08-10)は Anthropic・OpenAI・Google の3社のフロンティアモデル API を対象に調査しています。Claude 側では、フロンティアモデルが生成したブロックを Haiku 4.5 を「デコードオラクル」として使用できることを確認しています。Anthropic の対策は2026-09-28 に Claude Fable 5.1・Opus 5.5・Sonnet 5.5 へ展開されました。
extended thinking をオフにすることが最良の対策ですか?
(B) extended thinking を使わなければ思考ブロックそのものが発生しないため、リプレイ攻撃の起点は生まれません。ただし、複雑な推論タスクでの品質が低下するトレードオフがあります。Anthropic がアカウント紐付け・コンテキスト整合性という形で「ブロックを使いながら保護する」設計を選んだのも、このトレードオフを踏まえた判断です。思考ブロックのトレース保存・共有ポリシーの見直しは、extended thinking の有無にかかわらず重要です。

最終更新: 2026-10-05