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