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