プログラミング入門

670個のMCPサーバーをスキャンしたら78%にセキュリティ問題が見つかった話

「MCPサーバーって便利そうだけど、セキュリティは大丈夫なの?」

そんな疑問を持ったことはありませんか?実は最近、670個のMCPサーバーをスキャンしたところ、78%に重大なセキュリティ問題が見つかったというレポートが話題になっています。これ、他人事じゃないんですよね。🔍

そもそもMCPって何?

MCP(Model Context Protocol)とは、AIアシスタント(ClaudeやChatGPTなど)が外部のツールやサービスと連携するための「橋渡し役」となるプロトコルです。

イメージとしては「AIへの命令を受け取って、実際のAPIや操作に変換してくれる翻訳機」みたいなものです。メール送信・ファイル操作・データベースアクセスなど、AIができることを爆発的に広げてくれる仕組みですね。だからこそ、セキュリティが甘いと被害も大きくなるというわけです。

スキャン結果が衝撃的だった

670個のMCPサーバーを調査した結果、こんな数字が出てきました。😱

  • 📊 平均スコア:53点(100点満点)
  • 🔓 85個:認証なしで動いている
  • 本番環境で安全と言えるのは、たったの9個

9個ですよ、9個。670個スキャンして9個。これはかなり厳しい現実です。

きっかけになった「Postmark事件」

このスキャンを始めるきっかけになったのが、週間1,500ダウンロードを誇る人気のPostmark向けMCPサーバーに見つかった脆弱性です。

なんと、このサーバーは送信するすべてのメールを攻撃者のアドレスにBCC(隠しコピー)していたというんです。ユーザーは気づかないまま、メールの内容が丸ごと漏れていたわけです。怖いですよね…。

これが「プロンプトインジェクション」と呼ばれる攻撃の一種で、AIへの指示に悪意ある命令を紛れ込ませてしまう手法です。

スキャナーが確認する4つのポイント

このレポートで使われたスキャナーは、以下の4点をチェックしています。

  1. 認証の有無:誰でもアクセスできる状態になっていないか
  2. 入力バリデーション:外部からの不正な入力を受け付けてしまわないか
  3. プロンプトインジェクション耐性:悪意ある命令を無視できるか
  4. 過剰な権限付与:必要以上の操作権限を持っていないか

特に「認証なし」は論外なんですが、85個ものサーバーが認証ゼロで動いているという現実は見逃せません。

自分でMCPサーバーを作るときに気をつけること

MCPサーバーを自作したり、既存のものを使う場合は、最低限これだけは確認しておきましょう。✅

# 例:FastAPIベースのMCPサーバーに認証を追加する最低限の実装例

from fastapi import FastAPI, Header, HTTPException

app = FastAPI()

# 環境変数からAPIキーを読み込む(ハードコードは絶対NG)
import os
VALID_API_KEY = os.getenv(

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

もしも

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

FastAPIでWebAPI開発を実践的に学ぶ

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です