AI論争

Claude Codeとターミナルエージェントのプロンプトステガノグラフィーを巡る信頼問題

AnthropicのClaude Codeで発見された隠しUnicodeウォーターマークと、それに伴う企業の信頼性低下とセキュリティ問題について技術的に検証します。

投稿日 2026/7/4

Claude Codeとターミナルエージェントのプロンプトステガノグラフィーを巡る信頼問題

この記事では、ローカル開発ツール、自動化されたプロンプトテレメトリー、および企業データのセキュリティが交差する課題について考察します。コンパイル済みのバイナリから発見された隠しプロンプトウォーターマークの技術的メカニズムを分析し、知的財産保護と開発者の信頼との間で生じる摩擦を検証します。


発見:Unicodeの置き換えとXOR 91キー

Anthropicのコマンドラインエージェントを巡る議論は、バージョン2.1.196のコンパイル済みJavaScriptバイナリに対する技術的解析から始まりました。Therealloで公開した独立系開発者は、ローカルのCLIツールがAPIへ送信する前に、システムプロンプトのテキストを密かに書き換えていることを発見しました。HTTPヘッダー、環境変数、または明示的なメタデータペイロードに依存する標準的な追跡手法とは異なり、この仕組みはプロンプトのテキスト自体に直接作用していました。

このメカニズムは文字置換によって実行されていました。ツールはシステムプロンプトの冒頭にある日付文字列(通常は「Today’s date is YYYY-MM-DD」で始まるもの)を変更していました。特定の条件が満たされた場合、「Today’s」の標準的なアポストロフィ(')が、視覚的に区別がつかないUnicodeの代替文字、例えば右シングルクォーテーションマーク(U+2019)、修飾文字アポストロフィ(U+02BC)、または修飾文字プライム(U+02B9)に置き換えられていました。一般的なターミナル環境やコードエディタで作業するユーザーにとって、これらの文字は標準のアポストロフィと同一に見えますが、プロンプトを受け取るAPIエンドポイントはどのUnicodeバリアントであるかを即座に検出できました。

文字の置き換えに加え、コードはローカルシステムのタイムゾーンをチェックしていました。環境レポートが特定のタイムゾーン(「Asia/Shanghai」または「Asia/Urumqi」など)を返した場合、システムプロンプト内の日付の区切り文字がハイフン(-)からスラッシュ(/)に変更されました。このターゲット設定は、静的解析を避けるためにバイナリ内で難読化されており、実行時に十進数値91のXORキーでデコードされるBase64暗号化文字列リストが使用されていました。

このリストには、Zhipu、Moonshot、DeepSeekなどの競合するAIラボだけでなく、中国の主要なテクノロジー企業や商用リセラーを含む、約19の難読化されたドメインが含まれていました。ターゲットには、Alibaba、ByteDance、Baidu、JD.com、Xiaohongshu、Bilibili、iFlytekなどの企業や、複数のプロキシサービスおよびAPIゲートウェイが含まれていました。ツールがこれらのホスト名経由で実行されていることを検出すると、Unicodeの切り替えが発動する仕組みでした。

開発者にとって、このようなローカル側での自動書き換えは、標準的なAPIの設計から大きく外れたものです。ローカルのCLIツールが、ターミナル出力に変更を表示することなく、リモートサーバーにテレメトリーを通知するためにリクエストのテキストを密かに変更する場合、実用ツールと追跡チャネルとの境界線は曖昧になります。


知的財産保護(蒸留防止)とサイレントテレメトリー

このウォーターマークの技術的構造は、モデルの蒸留(distillation)およびAPIの無断転売に対抗するために導入されたことを示唆しています。蒸留とは、開発者が高性能モデル(Claudeなど)を使用してトレーニングデータを生成し、それを用いてより小型の競合モデルを微調整するプロセスです。主要なAIラボは、競合他社が本来の開発コストの数分の一で能力を模倣できてしまうため、利用規約でこの行為を禁止しています。闇市で流通するAPIトークンの増加により、プロンプトの出所を追跡することは、モデルプロバイダーにとって最優先事項となっています。

プロンプトにステガノグラフィー的なマークを埋め込むことで、Anthropicは自社のCLIツールが許可されていないプロキシサーバーや競合するエンドポイントに転送されたかどうかを検知できました。ウォーターマークはプロンプトのテキスト自体に直接埋め込まれているため、リクエストが複数の仲介サーバーを経由したり、HTTPヘッダーが削除されたりした場合でも維持されます。システムは、リクエストを生成したローカルCLIクライアントの具体的なバージョンまで追跡し、転売行為や蒸留パイプラインを特定することができました。

しかし、この防御策の導入は、オープンソースコミュニティや開発者コミュニティの間で大きな信頼問題を引き起こしました。たとえ知的財産保護が目的であったとしても、この手法はユーザーが送信したテキストに対して未開示の、目に見えない変更を加えるものでした。プロのソフトウェア開発において、動作の予測可能性は必須要件です。開発者は、ターミナルで動作するツールがデータペイロードを密かに変更しないことを期待しています。

開示がなく、オプトアウト設定も提供されなかったことが、反発を招きました。多くの開発者は、プロンプトをマーキングするためにUnicode文字を密かに変更できるツールであれば、理論的にはコードファイルやコマンド引数に対しても他の変更を加えることが可能であると主張しました。この問題は、AI企業が自社モデルを悪用から守ろうとする一方で、ローカルに導入するセキュリティ対策がテレメトリー追跡やスパイウェアのような挙動に近づいてしまうという、深刻なジレンマを浮き彫りにしています。


Alibabaによる職場での使用禁止と企業のセキュリティリスク

この発見に対する企業の反応は迅速でした。プロンプトのステガノグラフィーコードの検証を経て、Reutersは、Alibabaが社内ネットワーク全体でClaude Codeの使用を全面的に禁止したと報じました。同社は、潜在的なバックドアの脆弱性と、意図しないローカルコード変更のリスクを理由に挙げています。

大企業にとって、コマンドライン型のエージェントツールは特有のセキュリティ上の課題をもたらします。ブラウザベースのチャット画面とは異なり、ターミナルツールは開発者のローカル環境との深い統合が必要です。ターミナルエージェントは、ファイル構造を読み取り、ソースコードファイルを変更し、シェルコマンドを実行します。もしそのようなエージェントが、ネットワーク接続やタイムゾーンに応じて挙動を変えるような、難読化された隠しロジックを含んでいる場合、開発パイプラインに検証不可能なリスクをもたらすことになります。

企業のセキュリティチームは、厳格な予測可能性を求めます。Claude Codeが環境変数 ANTHROPIC_BASE_URL の値に基づいてシステムプロンプトの出力を動的に書き換えられるという事実は、警戒感を抱かせました。もしCLIツールが環境変数をスキャンし、プロンプト出力をステガノグラフィー的に調整できるのであれば、セキュリティチームは、他のどのような環境入力が文書化されていない挙動を引き起こす可能性があるかを考慮しなければなりません。

Alibabaによる禁止措置は、エージェント型コーディングツールに対する企業側の慎重な姿勢を象徴しています。バイブコーディングの普及による生産性の向上は、安全な開発ネットワーク内でソースコードが非公開のバイナリに実行権限を与えるリスクと隣り合わせです。ツールに隠された追跡機能が含まれていることが判明した場合、企業のセキュリティチームのリスク評価は、使用禁止の方向へと傾くことになります。

なお、これらの技術的発見はコミュニティによって広く検証されていますが、独立したセキュリティ専門企業によるClaude Codeのテレメトリーに関する正式なセキュリティ監査レポートはまだ公開されていません。一連の詳細な挙動は、一人の開発者によるリバースエンジニアリング報告に基づき、RedditやHacker Newsの検証を経て、Anthropicのエンジニアによって一部事実確認されたものです。セキュリティを重視する組織にとって、第三者による透明な認証が存在しないこと自体が、導入にあたって慎重な判断を求める材料となっています。


信頼とクライアント側エージェントの権限限界

プロンプトのウォーターマークを巡る議論は、AIエージェントの権限限界に関する本質的な懸念を浮き彫りにしています。Claude Codeのようなターミナルベースのツールは、受動的なアシスタントから能動的なエージェントへの移行を示しています。これらのツールは単にコードを提案するだけでなく、計画を立て、書き、テストを実行し、gitリポジトリに変更をコミットします。これらはローカル環境において高い権限を持って動作します。

この権限は、完全に信頼関係の上に成り立っています。開発者がこれらのエージェントにローカルターミナルへのアクセスを許可するのは、ツールが指示通りの予測可能な実行者として動作すると信じているからです。しかし、エージェントが(プロキシ検知などのためにプロンプトをマーキングするような)開発者の意図しない副次的な隠し命令を持っていることが明らかになったとき、その信頼は損なわれます。

ステガノグラフィーの存在は、クライアント側のエージェントであっても、モデル提供企業の商業的利益と切り離されていないことを示しています。ローカルユーティリティはユーザーにサービスを提供するだけでなく、企業のプラットフォームのセンサーとしても機能しています。この二重の役割は利益相反を生み出します。コードがコンパイルされ難読化されているために、バイナリが内部で何を行っているかをユーザーが検証できない場合、そのツールはセキュリティ上の懸念事項となります。

この懸念は、エージェント分野におけるオープンソースの代替ツールへの関心を再燃させています。ソースコードが非公開のモデルは推論能力でリードしていることが多いですが、オープンソースのCLI環境であれば、ローカルで実行されるすべてのコード行を監査できます。セキュリティが極めて重要な環境では、ローカルエージェントのコードベースを完全に検査できる能力が、ベンチマークスコアのわずかな差よりも重要視され始めています。


開発方針と透明なテレメトリーの要求

ステガノグラフィーを巡る問題の解決には、ユーザーテレメトリーとセキュリティ保護策の明確な分離が必要です。テレメトリーは現代のソフトウェアにおいて一般的な機能ですが、通常はオプトインの同意確認、明示的な設定ファイル、および明確なドキュメントによって管理されます。ユーザーのプロンプトを密かに変更する手法は、これらの基準を満たしていません。

信頼を回復するために、開発者はテレメトリーを管理するための透明なオプションを求めています。業界の共通認識として、ローカルでのデータ追跡は完全に文書化され、明確な無効化設定(disable-telemetry のような設定値)が提供されるべきです。さらに、蒸留防止のためのウォーターマークは、クライアント側でテキストを改ざんするのではなく、サーバー側で処理されるべきだと主張されています。

Anthropicは、この機能の開示後にテレメトリープログラムの存在と目的を一部認めました。AnthropicのClaude Code開発エンジニアであるThariq Shihipar氏は、Xにおいて、プロンプトマーキングシステムが「非許可の転売業者によるアカウントの不正利用を防ぎ、蒸留から保護するために3月に導入した実験的機能である」とし、「開発チームも以前からこの機能を取り除きたいと考えていた」と説明しました。この発言は、バイナリに対するコミュニティの技術的解析が正しかったことを裏付けると同時に、開発者がAIツール提供企業に対して強い影響力を持っていることを示しました。代替ツールが容易に入手できる開発エコシステムにおいて、企業が未開示の追跡手法によって開発者コミュニティの信頼を失うことは致命的です。

この一連の議論から得られた教訓は、次世代の開発者向けAIエージェントの設計に影響を与えるでしょう。AIシステムが自律性を強め、ローカル環境と深く統合されるようになるにつれ、透明性は単なる倫理的な好みの問題ではなく、技術的な必須要件となります。それが満たされない限り、ターミナルベースのAIツールは安全な企業環境から排除され続け、重要度の低い開発作業にのみ使用が限定されることになるでしょう。


開発ツールのセキュリティにおける今後の展望

プロンプトステガノグラフィーの問題は、ターミナルエージェントに対するより厳格なサンドボックス化(隔離環境での実行)の導入を促すと考えられます。将来的には、開発環境はAI CLIツールを、環境変数やシステムネットワーク設定へのアクセスが制限された隔離されたコンテナ内で実行するようになるかもしれません。このアプローチにより、開発者はシステム全体をテレメトリーの危険にさらすことなく、安全にAIエージェントを活用できるようになります。

最終的に、この問題は、ソフトウェアを書くために私たちが使用するツール自体もまたソフトウェアであり、私たちが作成するアプリケーションと同じセキュリティ、プライバシー、および開発ポリシーの基準に従う必要があることを思い出させます。AIに多くの処理を委ねるようになるにつれ、ツールの監査はソフトウェアサプライチェーンにおける重要な一環となります。


Ether Exterは、5年間にわたりさまざまなAIモデルのテストや実証検証を行い、本当に実用的な技術情報を発信しているAIエンジニアです。X(旧Twitter)でのフォローはこちら:@EtherExperiment


情報元

記事の続き

おすすめ記事