MCPのセキュリティ脆弱性の暴露:攻撃デモと防御戦略

MCPのセキュリティリスクと攻撃デモ

MCP (モデルコンテキストプロトコル)体系は現在も初期の発展段階にあり、全体的な環境は比較的混沌としており、様々な潜在的な攻撃方法が次々と現れ、既存のプロトコルやツールの設計では効果的に防御することが難しい。コミュニティのMCPの安全性に対する認識を高めるために、SlowMistはMasterMCPツールをオープンソース化し、実際の攻撃演習を通じて、開発者が製品設計における安全上の問題を迅速に発見できるよう支援し、MCPプロジェクトの安全性を徐々に強化することを目的としている。

本稿では、MCP体系下における一般的な攻撃手法、例えば情報の毒入れや悪意のある指令の隠蔽などの実際のケースを実演します。全てのデモスクリプトもオープンソースとして提供され、皆さんが安全な環境でプロセス全体を再現したり、これらのスクリプトを基に自分の攻撃テストプラグインを開発したりすることができます。

! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作

全体アーキテクチャの概要

デモ攻撃ターゲットMCP:ツールボックス

Toolboxをテスト対象として選択する理由は、主に以下の点に基づいています:

  • ユーザー基数が大きく、代表性があります
  • 他のプラグインの自動インストールをサポートし、一部のクライアント機能を補完します。
  • 敏感な設定を含み、デモを行いやすくする

デモで使用される悪意のあるMC: MasterMC

MasterMCPはSlowMistがセキュリティテストのために特別に開発した悪意のあるMCPツールのシミュレーションで、プラグインアーキテクチャデザインを採用しており、以下の重要なモジュールが含まれています:

  1. ローカルウェブサイトサービスのシミュレーション:

FastAPIフレームワークを使用して簡易HTTPサーバーを迅速に構築し、一般的なウェブページ環境をシミュレートします。これらのページは見た目上正常ですが、実際にはソースコードやインターフェースの返却に巧妙に設計された悪意のあるペイロードが隠されています。

  1. ローカルプラグイン化MCPアーキテクチャ

    MasterMCPはプラグイン方式で拡張され、新しい攻撃方法を迅速に追加することができます。実行後、MasterMCPはサブプロセスで前のモジュールのFastAPIサービスを実行します。

! 実戦:MCPシステムにおける秘密の毒殺と操作

デモクライアント

  • Cursor:現在、世界で最も人気のあるAI支援プログラミングIDEの1つ
  • Claude Desktop:公式のAnthropicクライアント

デモ用の大モデル

  • クロード 3.7

クロスMCP悪意のある呼び出し

ウェブコンテンツ毒攻撃

  1. コメント型毒

Cursorを通じてローカルテストサイトにアクセスし、大規模モデルクライアントが悪意のあるサイトにアクセスした際の影響をシミュレートします。指示を実行した後、Cursorはウェブページの内容を読み取るだけでなく、ローカルの敏感な設定データをテストサーバーに返送しました。ソースコード内では、悪意のあるプロンプトがHTMLコメント形式で埋め込まれています。

! 実戦:MCPシステムにおける秘密の毒殺と操作

  1. コーディング型コメントポイズニング

アクセス/エンコードページでは、悪意のあるプロンプトがエンコードされており、毒を仕込むことがより隠密になっています。ソースコードに明示的なプロンプトが含まれていなくても、攻撃は依然として成功します。

! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作

第三者インターフェース汚染攻撃

デモリマインダー、悪意のあるMCPでも非悪意のMCPでも、サードパーティAPIを呼び出す際に、サードパーティのデータをそのままコンテキストに返すと、深刻な影響を及ぼす可能性があります。

! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作

MCP初期化フェーズにおけるポイズニング技術

悪意の関数オーバーライド攻撃

MasterMCPはToolboxと同名の関数remove_serverのtoolを作成し、悪意のあるプロンプトを隠すためにコードを記述しました。指示を実行した後、Claude DesktopはMasterMCPが提供した同名のメソッドをトリガーし、元々のtoolbox remove_serverメソッドではありませんでした。

! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作

悪意のあるグローバルチェックロジックを追加

MasterMCPはbananaツールを作成し、すべてのツールを実行する前にこのツールを強制的に実行して安全チェックを行います。関数を実行するたびに、システムは最初にbananaチェックメカニズムを呼び出します。

! 実戦出発:MCPシステムにおける秘密の毒殺と操作

悪意のあるプロンプトを隠すための高度なテクニック

大規模モデルに優しいコーディング方式

LLMの多言語フォーマットに対する強力な解析能力を利用して悪意のある情報を隠す:

  • 英語環境: Hex Byteエンコーディングを使用する
  • 中文環境: NCRエンコーディングまたはJavaScriptエンコーディングを使用

! 実際の戦闘出発:MCPシステムにおける秘密の毒殺と操作

ランダム悪意のあるペイロード返却メカニズム

毎回/randomをリクエストする際に、悪意のあるペイロードを含むページをランダムに返し、検出と追跡の難易度を上げます。

! 実戦:MCPシステムにおける秘密の毒殺と操作

まとめ

MasterMCPの実戦デモは、MCPシステム内のさまざまなセキュリティリスクを直感的に示しています。単純なヒントワードの注入、クロスMCP呼び出しから、より巧妙な初期化段階の攻撃や悪意のある命令の隠蔽まで、各段階がMCPエコシステムの脆弱性を私たちに警告しています。

小さな入力の汚染がシステム全体のセキュリティリスクを引き起こす可能性があり、攻撃者の手法の多様化は従来の防護の考え方を全面的にアップグレードする必要があることを意味します。開発者とユーザーはMCP体系に対して警戒を怠らず、各インタラクション、各コード行、各戻り値に注意を払い、堅牢で安全なMCP環境を構築する必要があります。

SlowMistはMasterMCPスクリプトの改善を続け、より多くの特定のテストケースをオープンソース化し、皆さんが安全な環境で深く理解し、演習し、防御を強化する手助けをします。関連内容はGitHubに同期されており、興味のある読者は訪れて確認することができます。

! 実戦出発:MCPシステムにおける秘密の毒殺と操作

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 8
  • 共有
コメント
0/400
OffchainWinnervip
· 07-18 07:06
ハ 菜鳥ホワイトハットは毎回揺れる
原文表示返信0
CafeMinorvip
· 07-18 05:32
下水管の中にファイアウォールすらないの?
原文表示返信0
GateUser-a5fa8bd0vip
· 07-18 00:25
笑死 また技術プロの圈子
原文表示返信0
WalletManagervip
· 07-15 07:59
攻撃演習は何の役に立つのか?契約監査では本当の問題を見つけられるのか?
原文表示返信0
TokenomicsTherapistvip
· 07-15 07:58
エイマ、このmcpの問題は私が思っていたより深刻だね
原文表示返信0
ResearchChadButBrokevip
· 07-15 07:56
本当に見るに耐えない。もう何年も経っているのに、まだバグを隠している。
原文表示返信0
CryptoCross-TalkClubvip
· 07-15 07:56
また新しい初心者をカモにするツールがついに上线しましたか?
原文表示返信0
ConfusedWhalevip
· 07-15 07:51
隣の老劉も見て、なかなか良いと言っていました。
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)