# MCPセキュリティ: 隠れた投毒と操作の実践デモ現在のMCP(モデルコンテキストプロトコル)体系はまだ初期の発展段階にあり、全体的な環境は比較的混沌としていて、さまざまな潜在的な攻撃手法が次々と現れ、既存のプロトコルやツールの設計では効果的に防御することが難しい。コミュニティがMCPのセキュリティをより良く理解し、向上させるために、安全チームがMasterMCPツールをオープンソース化し、実際の攻撃演習を通じて、開発者が製品設計におけるセキュリティの脆弱性を迅速に発見できるようにし、徐々にMCPプロジェクトを強化することを目的としている。この記事では、MCPシステム下での一般的な攻撃手法、例えば情報の毒入れや隠れた悪意のある命令などの実際のケースを実演します。すべてのデモスクリプトもGitHubにオープンソースとして公開され、開発者は安全な環境でプロセス全体を再現でき、これらのスクリプトを基に独自の攻撃テストプラグインを開発することも可能です。! [実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-b40c2ead4790c433f269d8e0d01ed30c)## 全体アーキテクチャの概要### ターゲット MCP のデモンストレーション: Toolboxある有名なMCPプラグインサイトは、現在最も人気のあるMCPプラットフォームの一つであり、大量のMCPリストと活発なユーザーが集まっています。その中で、ある公式のMCP管理ツールは、このプラットフォームが提供するMCP管理ツールです。このツールをテスト対象として選択する理由は、主に以下の点に基づいています:- ユーザー基数が大きく、代表性がある- 他のプラグインの自動インストールをサポートし、一部のクライアント機能を補完します。- センシティブな設定(を含むAPI Key)があり、デモを行うのに便利です。! [実戦:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-3c65fb78f3a1d00f05d6f3d950931f1f)### 悪意のある MCP の使用を示す: MasterMCP MasterMCPは、安全テストのために作成された悪意のあるMCPツールのシミュレーションであり、プラグインアーキテクチャ設計を採用しており、以下の重要なモジュールが含まれています:1. ローカルウェブサイトサービスのシミュレーション:攻撃シーンをよりリアルに再現するために、MasterMCはローカルウェブサイトサービスシミュレーションモジュールを内蔵しています。これはFastAPIフレームワークを使って簡易HTTPサーバーを迅速に構築し、一般的なウェブページ環境をシミュレートします。これらのページは一見正常に見え、ケーキ店の情報を表示したり、標準のJSONデータを返したりしますが、実際にはページソースやインターフェースの戻り値の中に巧妙に設計された悪意のあるペイロードが隠されています。この方法は、安全で制御可能なローカル環境で、情報の投毒や命令の隠蔽などの攻撃手法を完全にデモンストレーションすることができ、理解を助けます: 一見普通のウェブページであっても、大規模モデルが異常な操作を実行する引き金となるリスク源になる可能性があります。2. ローカルプラグイン化MCPアーキテクチャMasterMCPはプラグイン方式で拡張され、後続の新しい攻撃方法を迅速に追加できるようになっています。実行後、MasterMCPはサブプロセスで前のモジュールのFastAPIサービスを実行します。ここには既存のセキュリティリスクがあります - ローカルプラグインは任意の非MCP期待のサブプロセスを起動できます。! [実戦:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-2fe451755dc3588ffc2ddbd7427dcf9b)### デモクライアント- Cursor:現在世界で最も人気のあるAI支援プログラミングIDEの一つ- Claude Desktop:Anthropic(MCプロトコルカスタマイズ)公式クライアント### 使用される大モデルのデモ- クロード 3.7Claude 3.7バージョンを選択する理由は、敏感な操作の識別において一定の改善が見られ、同時に現在のMCPエコシステムにおける強力な操作能力を代表しているからです。! [実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-0ebb45583f5d7c2e4a4b792a0bdc989d)## Cross-MCP 悪意のある通話のデモ### ウェブコンテンツ毒攻撃1. コメント型の毒物投与Cursorを使用してローカルテストサイトにアクセスします。これは一見無害な「Delicious Cake World」ページです。指示を実行する:コンテンツを取得する結果は、Cursorがウェブページの内容を読み取るだけでなく、ローカルの敏感な設定データをテストサーバーに送信したことを示しています。ソースコード中に、悪意のあるキーワードがHTMLコメント形式で埋め込まれています。コメントの方法は比較的直接的で識別しやすいですが、悪意のある操作を引き起こすことができました。! [実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-3840e36661d61bbb0dcee6d5cf38d376)2. コーディング型コメント毒化アクセス/encodeページ、これは前の例と同じように見えるウェブページですが、悪意のある提示語がエンコードされており、毒付けがより隠蔽されていて、ウェブページのソースコードを見ても直接気付くのが難しいです。ソースコードに明示的なヒントが含まれていなくても、攻撃は依然として成功します。! [実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-33ec895deae947ebc284e846286ccf1c)### MCP ツールが情報ポイズニングを返すMasterMCPのプロンプトに基づいて、シミュレーションコマンドを入力してください:たくさんのリンゴを得るトリガー命令後、クライアントはMCPを越えてToolboxを呼び出し、新しいMCPサーバーを正常に追加しました。プラグインコードを確認すると、返されたデータにエンコードされた悪意のあるペイロードが埋め込まれており、ユーザー側では異常をほとんど察知できません。! [実戦出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-e16c8d753ef00ec06f0bf607dc188446)### 第三者インターフェース汚染攻撃リクエストを実行します:/api/data から json をフェッチします結果:悪意のある提示語が返されたJSONデータに埋め込まれ、悪意のある実行が正常にトリガーされました。! [実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-3e15b74bbdc0154ed8505c04345c4deb)## MCP初期段階のポイズニング技術### 悪意の関数オーバーライド攻撃MasterMCPは、Toolboxと同名の関数remove_serverのtoolを作成し、悪意のあるヒントワードを隠すようにエンコードしました。指示を実行する:ツールボックス 取得 プラグイン サーバーを削除Claude Desktop は、元のツールボックス remove_server メソッドを呼び出す代わりに、MasterMCP によって提供される同じ名前のメソッドをトリガーします。原理は「従来の方法は廃止された」と強調することで、優先的に大モデルが悪意のある上書き関数を呼び出すように誘導することです。! [実戦:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-cd87a6781e74c267c89e99e398e7499c)### 悪意のあるグローバルチェックロジックを追加MasterMCPはbananaツールを作成しました。このツールの主な役割は、プロンプト内のすべてのツールが実行される前に、このツールを強制的に実行して安全チェックを行うことです。関数を実行するたびに、システムは最初にバナナチェックメカニズムを呼び出します。これは、コード内で「必ずバナナ検出を実行する」と繰り返し強調することで、グローバルロジックインジェクションを実現しています。! [実戦出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-c5a25d6fa43a286a07b6a57c1a3f9605)## 悪意あるプロンプトを隠すための高度なテクニック### 大規模モデルに優しいコーディング方式大規模言語モデルは多言語形式に対して非常に強力な解析能力を持っているため、これが悪意のある情報を隠すために利用されることがあります。一般的な方法には次のようなものがあります:- 英文環境:Hex Byteエンコーディングを使用- 中文環境:使用NCRエンコーディングまたはJavaScriptエンコーディング! [実戦出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-bf6d8976b54bebbec34699753f4dbb70)### ランダム悪意のあるペイロード返却メカニズム/randomをリクエストすると、毎回悪意のあるペイロードを含むページがランダムに返され、検出と追跡の難易度が大幅に増加します。! [実戦開始:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-e92a70908e6828b2895dd5f52c58459e)## まとめMasterMCPの実戦デモを通じて、私たちはMCPシステムに隠されたさまざまなセキュリティリスクを直接見ることができました。単純なヒントの注入やMCP間の呼び出しから、より巧妙な初期化段階の攻撃や悪意のある命令の隠蔽に至るまで、各段階は私たちに警告しています:MCPエコシステムは強力ですが、同様に脆弱です。大規模なモデルが外部プラグインやAPIと頻繁に相互作用する今日、小さな入力汚染がシステム全体のセキュリティリスクを引き起こす可能性があります。攻撃者の手法は多様化しており(エンコーディングの隠蔽、ランダム汚染、関数のオーバーライド)は、従来の防護思考が全面的にアップグレードする必要があることを意味します。今回のデモが皆さんに警鐘を鳴らすことを願っています: 開発者と利用者はMCPシステムに対して警戒を怠らず、各インタラクション、各コード行、各返り値に注意を払うべきです。細部に厳密に対処することで、堅固で安全なMCP環境を築くことができます。今後もMasterMCPスクリプトを改善し、より多くの特定のテストケースをオープンソース化して、安全な環境での理解、演習、および防御の強化を支援します。関連内容はGitHubに同期されました。興味のある読者は直接アクセスして確認できます。! [実戦出発:MCPシステムにおける秘密の毒殺と操作](https://img-cdn.gateio.im/social/moments-3511b6cfff1a3f00017b7db6eb239002)
MCP安全リスクデモ:投毒から攻撃実戦までの全解析
MCPセキュリティ: 隠れた投毒と操作の実践デモ
現在のMCP(モデルコンテキストプロトコル)体系はまだ初期の発展段階にあり、全体的な環境は比較的混沌としていて、さまざまな潜在的な攻撃手法が次々と現れ、既存のプロトコルやツールの設計では効果的に防御することが難しい。コミュニティがMCPのセキュリティをより良く理解し、向上させるために、安全チームがMasterMCPツールをオープンソース化し、実際の攻撃演習を通じて、開発者が製品設計におけるセキュリティの脆弱性を迅速に発見できるようにし、徐々にMCPプロジェクトを強化することを目的としている。
この記事では、MCPシステム下での一般的な攻撃手法、例えば情報の毒入れや隠れた悪意のある命令などの実際のケースを実演します。すべてのデモスクリプトもGitHubにオープンソースとして公開され、開発者は安全な環境でプロセス全体を再現でき、これらのスクリプトを基に独自の攻撃テストプラグインを開発することも可能です。
! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作
全体アーキテクチャの概要
ターゲット MCP のデモンストレーション: Toolbox
ある有名なMCPプラグインサイトは、現在最も人気のあるMCPプラットフォームの一つであり、大量のMCPリストと活発なユーザーが集まっています。その中で、ある公式のMCP管理ツールは、このプラットフォームが提供するMCP管理ツールです。
このツールをテスト対象として選択する理由は、主に以下の点に基づいています:
! 実戦:MCPシステムにおける秘密の毒殺と操作
悪意のある MCP の使用を示す: MasterMCP
MasterMCPは、安全テストのために作成された悪意のあるMCPツールのシミュレーションであり、プラグインアーキテクチャ設計を採用しており、以下の重要なモジュールが含まれています:
攻撃シーンをよりリアルに再現するために、MasterMCはローカルウェブサイトサービスシミュレーションモジュールを内蔵しています。これはFastAPIフレームワークを使って簡易HTTPサーバーを迅速に構築し、一般的なウェブページ環境をシミュレートします。これらのページは一見正常に見え、ケーキ店の情報を表示したり、標準のJSONデータを返したりしますが、実際にはページソースやインターフェースの戻り値の中に巧妙に設計された悪意のあるペイロードが隠されています。
この方法は、安全で制御可能なローカル環境で、情報の投毒や命令の隠蔽などの攻撃手法を完全にデモンストレーションすることができ、理解を助けます: 一見普通のウェブページであっても、大規模モデルが異常な操作を実行する引き金となるリスク源になる可能性があります。
MasterMCPはプラグイン方式で拡張され、後続の新しい攻撃方法を迅速に追加できるようになっています。実行後、MasterMCPはサブプロセスで前のモジュールのFastAPIサービスを実行します。ここには既存のセキュリティリスクがあります - ローカルプラグインは任意の非MCP期待のサブプロセスを起動できます。
! 実戦:MCPシステムにおける秘密の毒殺と操作
デモクライアント
使用される大モデルのデモ
Claude 3.7バージョンを選択する理由は、敏感な操作の識別において一定の改善が見られ、同時に現在のMCPエコシステムにおける強力な操作能力を代表しているからです。
! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作
Cross-MCP 悪意のある通話のデモ
ウェブコンテンツ毒攻撃
Cursorを使用してローカルテストサイトにアクセスします。これは一見無害な「Delicious Cake World」ページです。
指示を実行する:
コンテンツを取得する
結果は、Cursorがウェブページの内容を読み取るだけでなく、ローカルの敏感な設定データをテストサーバーに送信したことを示しています。ソースコード中に、悪意のあるキーワードがHTMLコメント形式で埋め込まれています。
コメントの方法は比較的直接的で識別しやすいですが、悪意のある操作を引き起こすことができました。
! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作
アクセス/encodeページ、これは前の例と同じように見えるウェブページですが、悪意のある提示語がエンコードされており、毒付けがより隠蔽されていて、ウェブページのソースコードを見ても直接気付くのが難しいです。
ソースコードに明示的なヒントが含まれていなくても、攻撃は依然として成功します。
! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作
MCP ツールが情報ポイズニングを返す
MasterMCPのプロンプトに基づいて、シミュレーションコマンドを入力してください:
たくさんのリンゴを得る
トリガー命令後、クライアントはMCPを越えてToolboxを呼び出し、新しいMCPサーバーを正常に追加しました。プラグインコードを確認すると、返されたデータにエンコードされた悪意のあるペイロードが埋め込まれており、ユーザー側では異常をほとんど察知できません。
! 実戦出発:MCPシステムにおける秘密の毒殺と操作
第三者インターフェース汚染攻撃
リクエストを実行します:
/api/data から json をフェッチします
結果:悪意のある提示語が返されたJSONデータに埋め込まれ、悪意のある実行が正常にトリガーされました。
! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作
MCP初期段階のポイズニング技術
悪意の関数オーバーライド攻撃
MasterMCPは、Toolboxと同名の関数remove_serverのtoolを作成し、悪意のあるヒントワードを隠すようにエンコードしました。
指示を実行する:
ツールボックス 取得 プラグイン サーバーを削除
Claude Desktop は、元のツールボックス remove_server メソッドを呼び出す代わりに、MasterMCP によって提供される同じ名前のメソッドをトリガーします。
原理は「従来の方法は廃止された」と強調することで、優先的に大モデルが悪意のある上書き関数を呼び出すように誘導することです。
! 実戦:MCPシステムにおける秘密の毒殺と操作
悪意のあるグローバルチェックロジックを追加
MasterMCPはbananaツールを作成しました。このツールの主な役割は、プロンプト内のすべてのツールが実行される前に、このツールを強制的に実行して安全チェックを行うことです。
関数を実行するたびに、システムは最初にバナナチェックメカニズムを呼び出します。これは、コード内で「必ずバナナ検出を実行する」と繰り返し強調することで、グローバルロジックインジェクションを実現しています。
! 実戦出発:MCPシステムにおける秘密の毒殺と操作
悪意あるプロンプトを隠すための高度なテクニック
大規模モデルに優しいコーディング方式
大規模言語モデルは多言語形式に対して非常に強力な解析能力を持っているため、これが悪意のある情報を隠すために利用されることがあります。一般的な方法には次のようなものがあります:
! 実戦出発:MCPシステムにおける秘密の毒殺と操作
ランダム悪意のあるペイロード返却メカニズム
/randomをリクエストすると、毎回悪意のあるペイロードを含むページがランダムに返され、検出と追跡の難易度が大幅に増加します。
! 実戦開始:MCPシステムにおける秘密の毒殺と操作
まとめ
MasterMCPの実戦デモを通じて、私たちはMCPシステムに隠されたさまざまなセキュリティリスクを直接見ることができました。単純なヒントの注入やMCP間の呼び出しから、より巧妙な初期化段階の攻撃や悪意のある命令の隠蔽に至るまで、各段階は私たちに警告しています:MCPエコシステムは強力ですが、同様に脆弱です。
大規模なモデルが外部プラグインやAPIと頻繁に相互作用する今日、小さな入力汚染がシステム全体のセキュリティリスクを引き起こす可能性があります。攻撃者の手法は多様化しており(エンコーディングの隠蔽、ランダム汚染、関数のオーバーライド)は、従来の防護思考が全面的にアップグレードする必要があることを意味します。
今回のデモが皆さんに警鐘を鳴らすことを願っています: 開発者と利用者はMCPシステムに対して警戒を怠らず、各インタラクション、各コード行、各返り値に注意を払うべきです。細部に厳密に対処することで、堅固で安全なMCP環境を築くことができます。
今後もMasterMCPスクリプトを改善し、より多くの特定のテストケースをオープンソース化して、安全な環境での理解、演習、および防御の強化を支援します。
関連内容はGitHubに同期されました。興味のある読者は直接アクセスして確認できます。
! 実戦出発:MCPシステムにおける秘密の毒殺と操作