MCPサーバーのテスト
Aikido PentestはModel Context Protocol(MCP)サーバーをテストできます。評価をMCPエンドポイントに向け、Aikidoに認証方法を伝えれば、あとはエージェントが処理します。
Aikidoはサーバーが公開するツール、リソース、プロンプトを調査します。主な対象領域は以下のとおりです。
- ツールの検出 – サーバーが公開しているツール、リソース、プロンプトが何か、そしてアクセス可能であってはならないものがないか
- 認可 – 未認証または低権限の呼び出し元が、アクセスすべきでないツールを呼び出したりリソースを読み取ったりできないか
- 安全でないツール利用 – パラメータインジェクション、SSRF的な挙動、コマンド実行、ツール呼び出しを通じたデータ漏えい
- 機微なデータの露出 – ツールやリソースが返すシークレット、トークン、テナント間のデータ
- 統合リスク – MCPサーバーと、そのツールが到達するダウンストリームシステムとの間の信頼境界の弱さ
エージェントおよびツール固有のリスクに関する背景については、OWASP Top 10 for Agentic Applicationsを参照してください。
- MCPサーバーのリモートエンドポイント(例:
https://mcp.staging.example.com/mcp)。 - サーバーが要求する認証情報。通常はヘッダーとして送信されるトークンまたはAPIキーです。
- ドメインの所有権(検証できること)。
- エージェントがエンドポイントに到達できるように、ファイアウォール、WAF、またはAPIゲートウェイの許可リストに追加されたAikidoのペンテストIPアドレス。
ペンテストの設定
Section titled “ペンテストの設定”エンドポイントをスコープに追加する
Section titled “エンドポイントをスコープに追加する”評価を作成し、ScopeステップでMCPサーバーのエンドポイントをターゲットとして入力します。https://mcp.staging.example.com/mcp のように、クライアントが接続する正確なURLとパスを使用してください。
エンドポイントを提供するホストに対してドメイン検証を完了させてください。サーバーが社内ネットワークからのみアクセス可能な場合は、Aikido Brokerを使用します。内部MCPのURLをブローカーリソースとして追加し、そのブローカーURLをスコープで選択してください。
認証情報を提供する
Section titled “認証情報を提供する”Test Usersステップで、MCPへの接続方法に関する指示を提供します。これには主に2つの方法があります。
- MCPサーバーへ直接認証する方法:
- ベアラートークン(最も一般的)。 MCPの認可標準はOAuth 2.1であるため、ほとんどのサーバーはアクセストークンを要求します。テスト用アイデンティティのトークンを発行し、
Authorization: Bearer <token>として追加します。 - APIキー。 サーバーによっては、代わりに
X-API-Key: <key>のようなキーヘッダーを使用します。 - マルチテナントルーティング。 サーバーが必要とするテナントやワークスペースのヘッダーがあれば、トークンと合わせて追加します。
- ベアラートークン(最も一般的)。 MCPの認可標準はOAuth 2.1であるため、ほとんどのサーバーはアクセストークンを要求します。テスト用アイデンティティのトークンを発行し、
- 対話的なユーザーログインフローによる認証: ユーザーがブラウザでログインし、セッショントークンにアクセスできるようになるまでの手順を段階的に説明します。
コンテキストを追加してから実行する
Section titled “コンテキストを追加してから実行する”最良の結果を得るには、Code & DocumentationステップでMCPサーバーのコードリポジトリをリンクしてください。これにより実行がホワイトボックスペンテストに格上げされ、エージェントはより深いロジックフローの脆弱性を発見するための最大限のコンテキストを得られます。Aikidoはソースコードを読み取り、ツール、その呼び出し元、そして到達するダウンストリームシステムをマッピングします。
リポジトリをリンクできない場合は、Additional contextを使用して、サーバーが公開するアクション、それぞれにアクセスすべき呼び出し元やロール、そしてアクセスするダウンストリームシステム(データベース、内部API、ファイルストレージ)を記述してください。
残りのSafety Check、Pricing、Summaryの各ステップを完了させてから実行を開始します。サーバーが高いリクエスト量に敏感な場合は、Safety CheckステップでMaximum Requests Per Secondを下げて負荷を軽減してください。
- 本番以外のデータを使う専用のテストインスタンスを用意し、可能な場合は破壊的なアクションをモック化または無効化してください。
- 検証したい権限を持つテスト用トークンを発行し、評価後にローテーションしてください。
- 本番環境に合わせる。 スコープに設定するエンドポイント、パス、認証は、実際のクライアントが使用しているものにしてください。
サポートが必要な場合
Section titled “サポートが必要な場合”エージェントがエンドポイントに到達できない、または認証に失敗する場合は、右下のIntercomチャットを開いてください。私たちのチームがサポートいたします。