mcpField
U
uta-shield Remote (Barter-enabled)

uta-shield Remote (Barter-enabled)

リモート
wall.utalabs.techその他01 日前に更新
リポジトリ公式サイト

uta-shield Remote (Barter-enabled) について

uta-shield Remote は、MCP サービスを公開する運営者向けのファイアウォール兼 PhishGuard MCP サーバーです。対象サーバーのコードを変更せずに、署名付きの本人確認、アクセス制御、脅威情報の検査、データマスキング、レート制限、計測、監査を追加します。

主な機能

  1. 01HMAC によるエージェント認証とツール別 ACL
  2. 02入出力の脅威情報チェック
  3. 03二段階のレート制限と呼び出し計測
  4. 04DLP マスキングとプロキシ強化
  5. 05JSONL による判定監査ログ
  6. 06PhishGuard の IOC 検索とテキスト検査

活用シーン

  1. 01公開 MCP サービスへのアクセス制限
  2. 02通信中の脅威指標の遮断またはマスキング
  3. 03認証済みエージェントの制限と計測
  4. 04URL やテキストのフィッシング指標検査

MCP 対応

プロキシとして運営者の MCP サービスをラップし、本人確認、認可、通信検査、監査を適用します。PhishGuard MCP サーバーは IOC 検索、URL・テキスト検査、キャンペーン一覧、フィード情報のツールを公開します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://wall.utalabs.tech/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

uta-shield

MCP サーバー向けプロバイダー側ファイアウォール + PhishGuard 脅威インテリジェンス MCP サーバー — 依存関係ゼロのパッケージにまとめました。

ランディングページ/ドキュメント:https://wall.utalabs.tech

MCP セキュリティカテゴリのすべてのゲートウェイ(Lasso、Mintive、Obot、agentgateway、Cequence)が保護するのはコンシューマー、つまり従業員がエージェントをサードパーティーのサーバーに接続する企業です。運営者、つまり MCP サーバーを公開し、インターネット上のあらゆる匿名エージェントにデータベースを公開する SaaS を保護するものはありません。

uta-shield はその反対側を担います。お使いの MCP サーバーをラップするだけで、サーバーのコードに手を加えることなく、検証済みの ID、ツールごとの認可、脅威インテリジェンスによるブロック(受信・送信の両方)、2段階のレート制限、DLP マスキング、プロキシの強化、呼び出しごとの計測、JSONL 監査ログを利用できます。

実際に記録され、詳細が公開されているキャンペーンに基づいています。taikotalent フィッシング事例(オープンソース開発者を狙った偽採用担当者のマルウェア。ドメインは約12時間で停止され、C2 インフラが追跡されました)。同梱フィードには、検証済み IOC が23件含まれています。

クイックスタート

# 1. Screen any indicator offline (exit code 1 on match → scriptable)
npx uta-shield check gaganata.ink          # → MATCH (C2, campaign taikotalent-2026-10)
npx uta-shield check example.com           # → NO_MATCH

# 2. Screen text (email body, web content, tool output)
echo "verify at https://taikotalent.xyz/verify_m" | npx uta-shield screen

# 3. Run the PhishGuard MCP server (agents get lookup_ioc / check_url / screen_text)
npx uta-shield mcp

# 4. THE FIREWALL: wrap your MCP server (fail-closed: keys or explicit opt-out)
cat > keys.json <<'EOF'
{ "recruiter-agent": "generate-a-long-random-secret", "auditor-agent": "another-secret" }
EOF
npx uta-shield wrap --upstream http://localhost:3001 --port 8787 --keys-file keys.json --admin-token "$(openssl rand -hex 24)"
#    → agents now talk to :8787; your server stays at :3001
#    GET /health · GET /pricing (x402-ready) · GET /audit (admin-only: x-uta-admin header)

# 5. See it all live
node demo/run-demo.mjs

検証済み ID(v0.2.0、ACL 厳格モード v0.2.2)

ID は宣言するだけでは不十分になりました。エージェントは3つのヘッダーを送信します。

x-agent-name:      recruiter-agent
x-agent-timestamp: 1761196800000            (ms; ±5 min window)
x-agent-signature: <hex>                    HMAC_SHA256(secret, `${agent}|${ts}|${sha256(rawBody)}`)
  • 有効な署名 → ALLOW_VERIFIED(エージェントごとのレート制限バケット、ACL 適用、計測)。
  • 提示された認証情報が無効 → REJECT_AUTH(401)。常にフェイルクローズです。
  • 認証情報なし → --allow-anonymous を指定しない限り REJECT_ANON(401)。
  • 署名のない宣言名はラベルにすぎず、verified:false となり、エージェントごとのレート制限バケットは割り当てられません。
  • ツールごとの ACL(--acl-file):デフォルトでは、マップに含まれないエージェントに制限はありません。許可リスト方式にするには、--acl-deny-unlisted を追加します。リストにないエージェントは、有効な署名があっても 403 REJECT_FORBIDDEN となります。ACL ファイルなしでの --acl-deny-unlisted の指定は CLI によって拒否されます(マップなしでは、リストにないエージェントを拒否するとすべてのエージェントが拒否されるためです)。/health は identity.acl_deny_unlisted を開示します。

リクエストへの署名(クライアント側、言語は問いません):

import { createHmac, createHash } from "node:crypto";
const ts = Date.now();
const bodyHash = createHash("sha256").update(rawBody).digest("hex");
const sig = createHmac("sha256", secret).update(`${agent}|${ts}|${bodyHash}`).digest("hex");

8つのレイヤー

#レイヤーv0.2.2 の状況
1エージェント ID:HMAC-SHA256 検証済み(--keys-file、リプレイ防止ウィンドウ、フェイルクローズ)+ ツールごとの ACL(--acl-file)+宣言/匿名のフォールバック提供済み
2エージェントごとのレピュテーションスコアフック(ID 判定を記録。スコアリングはロードマップ)
3受信/送信の脅威インテリジェンス:受信引数はブロック、送信レスポンスは明示的なポリシーに従います(--outbound-policy block|redact|log、デフォルトは redact)提供済み
4レート制限:2段階 — IP ごとのバケット(常時)+エージェントごとのバケット(検証済みの場合のみ)。無料/有料プラン提供済み
5課金:呼び出しごとの計測+x402 対応の価格マニフェスト(決済処理は運営者の決済レイヤーに委任)提供済み(計測)
6DLP:メールアドレス(通常形式と難読化形式)、JWT、AWS/GCP キー、GitHub PAT、Stripe キー、ベアラートークン、PEM ブロック、16進数のシークレット、クレジットカード番号(Luhn 検証済み)、オプションの Base64 ブロブ提供済み
7逆方向のドリフトアラート(スキーマ変更時にクライアントへ通知)ロードマップ
8監査:判定ごとの JSONL(トリアージ用のインジケーターとキャンペーンを記録。引数やシークレットの生データは記録しません)提供済み

誠実性の方針:この README では、実際に提供されている機能を正確に示しています。レイヤー2と7は設計上のフックであり、誇張した主張はありません。

プロキシの強化(v0.2.1)

制御項目デフォルトフラグ
起動時のフェイルクローズ--keys-file または --allow-anonymous がない場合、実行を拒否します—
/audit の認証トークンがない場合は無効(404)です。トークンがある場合は x-uta-admin が必要です(タイミングセーフ比較)。監査証跡には IOC とエージェント名が含まれるため、運用者向けテレメトリであり、公開されることはありません--admin-token SECRET / UTA_SHIELD_ADMIN(16文字以上)
リクエスト本文の上限1 MiB(宣言値とストリーミングの両方を制限するため、ヘッダーの偽装では回避できません)--max-body-bytes N
上流タイムアウト30 秒 → 504、固定メッセージ--upstream-timeout-ms N
MCP メソッドの許可リストinitialize、notifications/initialized、ping、tools/list、tools/call。それ以外はすべて 403 METHOD_DENIED--allow-methods "a,b" | "*"
安全なエラー上流でエラーが発生した場合は固定メッセージを返します。詳細は監査ログに記録し、クライアントには返しません—
正確な送信判定x-uta-shield レスポンスフラグが中核となる判定です(OUT_OK/OUT_MASKED/OUT_REDACTED/OUTBOUND_INTEL)。再計算は行いません。policy=log は OUTBOUND_INTEL を報告し、問題がないように見える OUT_OK を返すことはありません—
生の本文の転送上流へバイト列をそのまま転送します(署名の整合性を保ちます)—
IP ごとのレート上限120 リクエスト/分、バースト 60API 経由で -- を設定
ヘッダーのタイムアウトヘッダーは 10 秒、リクエストのタイムアウトは上流タイムアウト + 5 秒自動

既知の制限事項(適用範囲を正直に説明)

  • ID の検証には、HMAC 共有シークレット(運用者が発行するキー)を使用します。エージェントから運用者への認証には使えますが、フェデレーション PKI ではありません。/.well-known/agent.json のオリジン検証は、引き続き補助的なフックとして機能します。
  • policy=log は送信 IOC を記録しますが、そのまま通過させます。明示的に選択する運用者向けの設定です。安全な選択肢は redact(デフォルト)または block です。
  • 難読化されたメールアドレスと 16 進数のシークレットを検出する DLP パターンはヒューリスティックであり、誤検出が発生する可能性があります(dlp オプションで調整してください)。
  • TLS 終端には対応していません。既存のリバースプロキシ(Caddy/nginx/certbot)の背後で実行してください。
  • 同梱フィードには、ドキュメント化されたキャンペーンが 1 件含まれます(IOC は 23 件)。フィードデータは CC-BY-4.0 です。独自のキャンペーンを追加して拡張してください。

依存関係ゼロの理由

推移的依存関係が 47 個あるセキュリティ製品は、防御ではなく攻撃対象領域です。uta-shield は、手書きの MCP stdio 実装(改行区切りの JSON-RPC 2.0)を含む、監査可能な約 1,600 行の Node.js ≥18(ESM)で構成されています。npm pack のサイズは、展開後で約 108 kB、tarball で 54 kB です。

同梱フィード

feed/iocs.json(スキーマ pg/1)には、キャンペーン taikotalent-2026-10 が含まれています。9 種類の IOC が 23 件あり、フィッシングドメイン(レジストラの clientHold により停止済み)、Cloudflare の背後にある稼働中の C2 ドメイン、送信者 IP、偽の採用担当者メールアドレス、ステージャー URL、ペイロードの sha256、第 2 段階で使われるワイルドカードパス(/var/tmp/.kdm.*)、ミューテックス名が含まれます。MITRE ATT&CK マッピング(T1566.002、T1656、T1204.002、T1059.004、T1027、T1071.001、T1070.004、T1583.001)と IOC ごとのコンテキストも含まれます。すべての判定にはこの証拠が付随するため、下流のエージェントはブロックされた理由を推論できます。

フィードデータは、公開されている事例リポジトリの CC-BY-4.0 に基づいています。キャンペーンオブジェクトを追加して更新・拡張できます。スキーマは uta-shield verify-feed によって検証されます。

MCP サーバーとして(運用者だけでなく、エージェント向けにも)

エージェントは、ツールとしてインテリジェンスを利用できます。lookup_ioc(value)、check_url(url)(フィード + アドバイザリーヒューリスティック)、screen_text(text)、list_campaigns()、feed_info() が用意されています。すべてのレスポンスはデータです。サーバーが何かを取得したり実行したりすることはありません。

商用プラン

プラン内容価格
セルフホスト(このパッケージ、使用ライセンス付き)同梱されているすべてのレイヤーとフィードを自社インフラで実行できます。商用利用も可能です無料
S7 — フィードのマネージドサブスクリプション更新されたキャンペーンフィード + webhook アラート + YARA ルール$50/mes(ATC 保有エージェントは最初の 100 件まで無料)
S6 — Shield 評価 + パイロット導入MCP サーバーの監査 + パイロット導入(identity+intel+audit)+ レポート$1,000 の初期費用 + $100/mes/server

お問い合わせ:AliceLabs LLC — [email protected]

テスト(再現可能)

node --test test/*.test.mjs   # 85 tests: identity/HMAC, strict-ACL, outbound policies, DLP formats,
                             # authenticated /audit, exact verdict propagation, streamed overflow,
                             # MCP client lifecycle e2e, proxy limits,
                              # two-tier rate limits, hardened proxy e2e (413/502/504/403/429),
                              # feed matching, MCP protocol
npm run verify-feed           # feed schema validation
npm run demo                  # end-to-end with signed traffic

独立した実行: .github/workflows/tests.yml は、すべてのプッシュ時に GitHub 独自のランナー(Node 20/22/24)でテストスイート全体を実行します。結果は公開されており、このファイルの記述には依存しません。

v0.2.2 のテスト結果については、EVIDENCE.md をご覧ください(コマンド、Node バージョン、ランナーの完全な概要)。

v0.1.0 → v0.2.0 への移行(破壊的変更)

  • --keys-file/UTA_SHIELD_KEYS/--allow-anonymous を指定せずに wrap を実行すると、起動を拒否します(フェイルクローズがデフォルトです)。
  • 未検証の呼び出し元に対するレート制限は IP をキーとします。宣言されたエージェント名ごとのバケットは作成されなくなりました。
  • gateOut のデフォルト動作がパススルーから redact に変更されました。v0.1.0 の動作にするには、outboundPolicy:"log" を設定してください。
  • 監査ストリームに新しい判定が追加されました:ALLOW_VERIFIED、REJECT_AUTH、REJECT_FORBIDDEN、OUT_REDACTED、OUT_BLOCKED、UPSTREAM_ERROR。

v0.2.0 → v0.2.1 への移行(破壊的変更)

  • GET /audit は認証情報なしでは機能しなくなりました。 --admin-token(または UTA_SHIELD_ADMIN)がない場合は 404 を返し、トークンがある場合は x-uta-admin ヘッダーが必要です。これまで匿名で /audit を取得していたダッシュボードは、オペレータートークンを提示する必要があります。レスポンスの x-uta-shield フラグは、正確なコア判定を示すようになりました。policy=log の利用者には、以前誤って表示されていたフラグではなく、OUTBOUND_INTEL が表示されます。

v0.2.1 → v0.2.2 への移行

  • 追加のみの変更です。--acl-deny-unlisted を指定すると、オプトインの厳格な ACL(許可リスト方式)が有効になります。このフラグを指定し、--acl-file を指定しない場合、CLI は起動を拒否します(フェイルクローズ)。新しい監査判定:BODY_TOO_LARGE(両方の 413 パス。v0.2.1 では AUDIT_DISABLED/AUDIT_DENIED が追加されました)。パブリック CI が追加されました。既存のオペレーターに対するその他の変更はありません。

ライセンスについては LICENSE をご覧ください(使用許諾/ライセンス)。© 2026 AliceLabs LLC. 商用利用の例外(ホワイトラベル、OEM、再配布、マネージドサービス):[email protected]

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。