はじめに
mcp-is-dangerousは、Shaojie JiangがGitHubで開発したオープンソースツールです。シンプルなPythonコードを通じて、AIツールの使用におけるMCP(Model Context Protocol)サービスのセキュリティリスクを検出するのに役立つ。このツールは、外部ツールが環境変数やファイルにアクセスする可能性のある潜在的な脅威を示し、ユーザーにセキュリティ上の問題を警告することを目的としている。作者の 拡張可能エージェント プロジェクトに関連し、ツールの共有が容易であることと同時にリスクもあることを強調する。プロジェクトは教育およびテストのみを目的としており、悪意のある使用をサポートするものではありません。
機能一覧
- 感知 エムシーピー サービスが悪意のある目的に悪用される可能性があるかどうか。
- ツール機能の提供
get_environment_variables
環境変数へのアクセスを示す。 - MCPサービスのセキュリティの脆弱性をコード例で明らかにする。
- カスタムMCPクライアントの接続をサポートし、サービスのセキュリティをテスト。
- リスクを検証するため、隔離された環境で実行するようユーザーに注意を促す。
ヘルプの使用
インストールと実行方法
このツールには基本的なPython環境が必要です。以下はその詳細な手順である:
- Python環境のチェック
Python 3.8以降がインストールされていることを確認する。ターミナルで
python --version
インストールされていない場合は、Pythonのウェブサイトからダウンロードできる。
- ダウンロードツール
ターミナルで以下のコマンドを実行し、ローカルにクローンする:
git clone https://github.com/ShaojieJiang/mcp-is-dangerous.git
そしてカタログを見る:
cd mcp-is-dangerous
- 依存関係のインストール
必要fastmcp
ライブラリを使用してMCPサービスを実行します。インストール方法
pip install fastmcp
セキュリティ上の理由から、仮想環境が利用できる:
python -m venv venv
source venv/bin/activate # Windows 用 venv\Scripts\activate
次に実行する pip install fastmcp
.
- スターターキット
ディレクトリで実行する:
python main.py
ターミナルに "Server running... "と表示されたらツール起動。ターミナルに「Server running...」と表示されるとツールが起動します。
- テスト機能
コマンドラインで検出する:
uvx mcp-is-dangerous
出力例:
Here are what I could find:
PATH /usr/***
HOME /home/***
主な機能
- 環境変数アクセスの検出
コア機能は以下の通りである。get_environment_variables
このコードは、MCPサービスが環境変数を取得できるかどうかをチェックするために使用します。コードは以下の通り:
@server.tool()
async def get_environment_variables() -> str:
result = ["Here are what I could find:"]
for key, value in os.environ.items():
result.append(f"{key:<30} {value[:5]}***")
return "\n".join(result)
出力は、変数名と値の一部(最初の5文字、それ以降は "***"として非表示)を表示します。完全なデータを表示するには、コードを変更できますが、安全な環境で操作する必要があります。
- エクステンダブル・エージェント検出との組み合わせ
を使用する場合 拡張可能エージェントセレクションPoliceAgent
モードでこのツールを接続する。実行後、出力を観察し、潜在的なリスクを検出することができる。 - カスタムクライアントテスト
独自のMCPクライアントで検出する場合は、以下のように設定してください:{ "mcpServers": { "dangerous-mcp": { "command": "python", "args": ["main.py"] } } }
それをJSONファイルとして保存し、クライアントを起動して検出する。
セキュリティ・テストに関する推奨事項
- 隔離された環境での動作
Dockerコンテナのテストを推奨する:docker run -it --rm python:3.8 bash
ローカルシステムへの影響を避けるため、コンテナ内にインストールして実行する。
- 機密データのクリーンアップ
例えば、実行前に環境変数から機密情報を削除する:unset OPENAI_API_KEY
- ソースコードのレビュー
使用前点検main.py
コードは短く、MCPサービスの安全性を確認するのに適している。
補注
このツールは、MCPサービスの環境変数へのアクセスをシミュレートすることで、潜在的な脆弱性を検出するのに役立つ。関係者は、このツールはあくまでも検出ツールであり、コードの見直しや隔離して実行するなどのセキュリティ対策と併用して使用する必要があることを強調している。
アプリケーションシナリオ
- MCPサービスのセキュリティ検出
開発者はこれを使用して、MCPサービスの漏洩リスクをテストできる。 - ツールのセキュリティ検証
セキュリティ・チームは、アクセス動作のシミュレーションや保護措置の検証に利用している。 - ティーチング・デモンストレーション
教育機関は、MCPサービスの危険性を示し、安全意識を促進するために使用している。
品質保証
- このツールは何をするのか?
MCPサービスを悪用して環境変数にアクセスできるかどうかを検出し、ユーザーがセキュリティリスクを特定できるようにします。 - 走っても大丈夫なのか?
このツール自体はテスト用であり、悪意のあるものではない。しかし、実際の環境で実行するとデータが漏洩する可能性があるため、隔離された環境を推奨する。 - セキュリティーを向上させるために、どのように活用できますか?
ソースコードのチェック、実行の分離、機密データのクリーニング、ツールの動作検証。