Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mcp-doorman — CVE(CVE-2025-54136)のポイズニング、プロンプトインジェクションによる研究者の Claude Code/Copilot/Gemini 乗っ取り、そして認証なしで露出した数百もの MCP サーバーを防ぐ軽量 mcp。この mcp は、ほとんどの MCP サーバーが実際に実行される個人開発者のラップトップを保護します。 | Kitploit
ツール/GitHubGitHub/sushank05/mcp-doorman
防御ツール脆弱性スキャナーシークレット検出脅威インテリジェンス設定ミス学習と教育APIセキュリティAIセキュリティ
GitHubsushank05/mcp-doorman

mcp-doorman

CVE(CVE-2025-54136)のポイズニング、プロンプトインジェクションによる研究者の Claude Code/Copilot/Gemini 乗っ取り、そして認証なしで露出した数百もの MCP サーバーを防ぐ軽量 mcp。この mcp は、ほとんどの MCP サーバーが実際に実行される個人開発者のラップトップを保護します。

リポジトリを見る
8日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

mcp-doorman

MCPサーバーのセキュリティゲートウェイ — すべてのツール呼び出しはドアで検査されます。

CI npm ライセンス: Apache-2.0 PR歓迎

mcp-doorman は、AIエージェント(Claude Desktop、Claude Code、Cursor、VS Code、任意のMCPクライアント)と、それが利用するMCPサーバーの間に配置するドロップインプロキシです。ワンコマンド、インフラ不要で、すべての tools/list と tools/call はガードパイプラインを通過します:

  • 🛂 ポリシーエンジン — ツールごとの allow / deny / require-approval ルールをグロブマッチで適用
  • 🕵️ シークレット編集 — AWSキー、GitHub/Slack/Stripe/OpenAI/Anthropicトークン、秘密鍵、JWT、カード番号(Luhnチェック済み)… モデルに届く前にツール結果から除去
  • 💉 プロンプトインジェクション検査 — モデルに指示しようとするツール結果(およびツール説明 = ツールポイズニング)をフラグ付けまたはブロック
  • 📌 ラグプル検出 — ツール定義は初回利用時にハッシュピン留めされる。サーバーが説明を静かにすり替えた場合、人間が再ピン留めするまでツールはブロックされる
  • 🚦 レート制限 — ツールごとのトークンバケットで暴走エージェントループの影響範囲を制限
  • 🙋 人間の承認ゲート — 機密性の高いツールは MCP elicitation を介して、クライアント内で対話型の承認プロンプトをトリガー
  • 🧾 監査ログ — すべての呼び出し、拒否、編集、フラグは追記専用JSONLファイルに記録

なぜこれが存在するのか

誰もが npx some-random-mcp-server を実行するだけで、未検証のプロセスにAPIキーと、モデルのコンテキストウィンドウへの直接経路を渡してしまいます。ここに挙げる攻撃クラスは仮説ではなく、実際に文書化された脅威です:

エンタープライズ向けMCPゲートウェイは、Kubernetesクラスターを持つプラットフォームチーム向けに存在します。個人開発者のラップトップ — 実際に99%のMCPサーバーが実行されている場所 — を守る軽量なものは何もありません。 このプロジェクトは、まさにそのギャップを埋めるものです。

クイックスタート(60秒)

root@kitploit:~
# 1. Create a config
npx -y mcp-doorman init

# 2. Edit doorman.config.json — put your real servers in it

# 3. Pin the current tool definitions (trust on first use)
npx -y mcp-doorman pin --config doorman.config.json

次に、クライアントをサーバーの代わりにゲートウェイへ向けます。Claude Desktop / Claude Code / Cursor:

root@kitploit:~
// BEFORE — every server talks straight to the model
{
  "mcpServers": {
    "github":     { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
    "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/repos"] }
  }
}

// AFTER — one doorman guards them all
{
  "mcpServers": {
    "doorman": {
      "command": "npx",
      "args": ["-y", "mcp-doorman", "run", "--config", "/absolute/path/to/doorman.config.json"]
    }
  }
}

ツールは github__create_issue、filesystem__read_file などの名前空間付きで表示され、さらに2つの組み込みツール doorman__status と doorman__recent_events が追加されます(エージェントに 「doorman は最近何をブロックしましたか?」 と聞いてみてください)。

Windowsに関する注意: サーバーエントリが npx を直接使う場合は、cmd経由で起動してください: "command": "cmd", "args": ["/c", "npx", "-y", "..."]。

動作を確認する

root@kitploit:~
git clone https://github.com/Sushank05/mcp-doorman && cd mcp-doorman
npm install
npm run demo

デモでは、ゲートウェイを意図的に不正動作するサーバー(examples/demo-server.mjs)に接続します。このサーバーは偽の資格情報を漏えいし、プロンプトインジェクションのペイロードを配信し、破壊的なツールを提供します — そして各ガードがそれを検知する様子を示します。

仕組み

root@kitploit:~
flowchart LR
    A["MCP client\n(Claude Desktop, Cursor, ...)"] -- stdio --> D
    subgraph D [mcp-doorman]
        direction TB
        P[policy] --> R[rate limit] --> AP[approval] --> RD[redaction] --> I[injection scan] --> AU[(audit log)]
    end
    D -- stdio --> S1[github server]
    D -- stdio --> S2[filesystem server]
    D -- streamable HTTP --> S3[remote server]

ゲートウェイは、クライアントに対してはMCP サーバー、各アップストリーム(stdio子プロセスまたはstreamable-HTTPエンドポイント)に対してはMCP クライアントとして動作し、それらを1つの接続の背後に集約します。公式の TypeScript SDK 上に構築されています。

設定

すべては1つのJSONファイルにまとめられます。すべてのオプションを含む完全な例:

root@kitploit:~
{
  "servers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" }   // ${VAR} = read from gateway env
    },
    "remote": { "url": "https://mcp.example.com/mcp", "headers": { "Authorization": "Bearer ${MCP_TOKEN}" } }
  },

  "policy": {
    "defaultAction": "allow",                    // "allow" | "deny" | "approve"
    "rules": [                                   // first match wins, evaluated top-down
      { "match": "*__delete*",  "action": "deny",    "reason": "no destructive tools" },
      { "match": ["github__create_*", "*__send_*"], "action": "approve" },
      { "match": "filesystem__*", "action": "allow" }
    ]
  },

  "redaction": {
    "enabled": true,
    "disable": [],                               // built-in rule names to turn off
    "enableOptIn": ["email"],                    // opt-ins: "email", "us-ssn", "ipv4"
    "custom": [{ "name": "acme-id", "pattern": "ACME-[0-9]{6}" }],
    "redactArguments": false                     // also scrub model-supplied arguments
  },

  "injection": {
    "action": "flag",                            // "flag" (warn the model) | "block" | "off"
    "scanToolDescriptions": true,                // tool-poisoning check on tools/list
    "custom": []
  },

  "pinning": {
    "enabled": true,
    "onNewTool": "pin",                          // "pin" (TOFU) | "block" (until `mcp-doorman pin`)
    "onChangedTool": "block"                     // "block" | "warn"
  },

  "rateLimit": { "perMinute": 120, "perTool": { "*__send_*": 5 } },

  "approval": { "fallback": "deny", "timeoutMs": 120000 },  // fallback when client lacks elicitation

  "audit": { "enabled": true, "includeArguments": true, "includeResults": false },

  "logLevel": "info"
}

ピン状態と監査ログは、デフォルトで設定ファイルの隣の <config-name>.pins.json / <config-name>.audit.jsonl に保存されます。

CLI

CommandWhat it does
mcp-doorman run --config <path>stdio上でゲートウェイを起動する(デフォルトコマンド)
mcp-doorman pin --config <path>すべてのアップストリームに接続し、現在のツール定義をピン留め(信頼)する
mcp-doorman init適切なデフォルト値を備えたスターター設定を書き出す

正直な制限事項

過大評価されたセキュリティツールは、何もないより悪いものです。この部分は読んでください。

  • ヒューリスティックは回避可能です。 インジェクションパターンは、文書化された一般的な攻撃形状を検出します。動機のある攻撃者はあらゆる正規表現を言い換えて回避できます。ハードな境界としては deny/approve ポリシーを使用してください。スクリーニングは多層防御です。
  • 秘匿化はベストエフォートです。 既知のトークン形式は確実に検出されますが、文脈のないランダムなhexシークレットは検出されません。エージェントを資格情報ストアに向けないでください。
  • これはサンドボックスではありません。 アップストリームサーバーは依然としてあなたのユーザー権限で子プロセスとして実行されます。Doormanが守るのはプロトコルです。プロセスを守るにはコンテナ(ToolHive スタイル)と組み合わせてください。
  • TOFUは最初に見たものを信頼します。 ピン留めが検出するのは変更であり、初日から悪意のあるツールではありません。それを担うのは説明スキャナーとあなた自身のレビューです。
  • 承認ゲートにはelicitationが必要です。 elicitationをサポートしていないクライアントは approval.fallback(デフォルトではdeny)にフォールバックします。

ロードマップ — ヘルプ歓迎 🙌

  • resources/* と prompts/* のプロキシ(現在はツールのみ)
  • サンプリングとルートのパススルー
  • コミュニティルールパック(doorman-rules-finance, doorman-rules-healthcare…)
  • ラーニングモード: 1週間観察して最小権限ポリシーを提案
  • OPA / Cedar ポリシーバックエンド
  • mcp-doorman audit サブコマンド: JSONLログの整形表示とクエリ
  • 監査可視化のWebダッシュボード
  • エントロピーベースの汎用シークレット検出

上記のいずれかに取り組むか、[good first issue](https://github.com/YOUR_GITHUB_USERNAME/mcp-doorman/labels/good%20first%20issue) から始めてください。新しい検出ルールは最も簡単な貢献です: 正規表現1つ + テスト2つ。CONTRIBUTING.md と docs/detection-rules.md を参照してください。

開発

root@kitploit:~
npm install
npm test          # 69 tests: unit + full stdio e2e
npm run build
npm run demo      # watch the guards fire live

ライセンス

Apache-2.0 — あらゆる用途に無料で、明示的な特許許諾付き。

ツールをダウンロード
AttackHow it works
ツールポイズニングツールの説明に隠された悪意ある指示。ほとんどのクライアントUIでは見えない
ラグプルサーバーは初日に無害なツールを提示し、承認後に定義をすり替える
間接プロンプトインジェクション正規のツールが取得したWebページ/Issue/メールに、モデルを標的にした指示が含まれる
シークレット漏えい1つのツール結果に漏れた資格情報 + 1つの注入指示 = あなたのキーが他人のサーバーに渡る
暴走ループ混乱または乗っ取られたエージェントが一括削除・一括送信・一括スクレイピングを行う