EVIDIQ Bastion
OfficialInfrastructure as Codeとデプロイ設定は、自律エージェントサービスのセキュリティ境界を定義します。コンテナワークロードをrootとして実行する、0.0.0.0/0のイングレスルールを公開する、ピン留めされていないGitHub Actionsを使用する、またはホストのネットワークパスをマウントするように設定されたエージェントサービスは、コードが実行される前に即座にクラスタ侵害リスクをもたらします。
EVIDIQ Bastionは、インフラ構成のデプロイ前セキュリティゲートです。
Dockerfile、GitHub Actions CIワークフロー、Kubernetesマニフェスト、Terraform HCL / Composeファイルを渡します。非root実行、クレデンシャルの隔離、サプライチェーン整合性、リソース境界、署名付きアテステーションを強制する14の決定論的セキュリティルールを評価します。
Bastionはインフラをデプロイせず、入力マニフェストを実行せず、秘密鍵を受け付けることもありません。
機能
非root実行の強制 — コンテナビルドでrootユーザーによる実行(
USER rootまたは非rootのUSERディレクティブの欠落)を検出します。サプライチェーンアクションのピン留め — GitHub Actionsに40文字のコミットSHA完全ピン留めを強制し(可変の
@v3/@mainタグをブロック)、Dockerベースイメージには不変のSHA-256ダイジェストを強制します。クレデンシャルの隔離 — ビルドのARG/ENVディレクティブ、IaC変数の平文デフォルト値、Kubernetesシークレットの環境変数におけるハードコードされたシークレット、APIキー、秘密鍵を検出します。
Kubernetesワークロードの堅牢化 — 特権コンテナ(
privileged: true)、hostPathボリュームマウント、hostNetworkの露出、CPU/メモリリソース境界の欠落を特定します。IaC露出監査 — Terraform HCLとDocker Composeを監査し、オープンなワールドイングレス(
0.0.0.0/0)、公開S3バケット、無制限のコンテナケーパビリティを検出します。CI/CDパイプライン攻撃ベクトル —
pull_request_targetトリガーでの信頼できないコードチェックアウトのリスク、runステップでのエスケープされていないgithub.event式インジェクション、過度に広いpermissions: write-allを検出します。署名付きアテステーション —
attest_deploymentは、構成ダイジェスト、評価結果、判定をEIP-191署名付きアテステーションに結び付け、0Gストレージにアンカーします。決定論的判定 —
blockerが1つでも失敗するとBLOCKになります。そうでなければhighの失敗でREVIEW、クリーンな評価ではPASSになります。チェックごとの支払い — 5つの有料分析ツールは
0.005–0.03 USDT0。5つのプリフライトおよび検証ツールは無料です。
Related MCP server: supership-scan
どのようなときにBastionを利用するか
Bastionは、インフラコードを適用またはデプロイする前に使用します。コンテナイメージをビルドする前、CI/CDワークフローのプルリクエストをマージする前、Kubernetesマニフェストを適用する前(kubectl apply)、またはTerraformを実行する前(terraform apply)に。
秘密鍵は絶対に送信しないでください。スマートコントラクトのcalldataをここにルーティングしないでください(それはAssayです)。ソースコードはWarden、エンドポイント到達性はSentinel、依存関係マニフェストはLineage、永続的なアクションログはVaultです。
自然なチェーン: validate_config → scan_dockerfile / scan_workflow → attest_deployment → append_record (Vault)。
任意のエージェントから使用
# Read the public Skill document
curl -s https://mcp.evidiq.dev/bastion/skill.md
# Inspect current x402 pricing discovery
curl -s https://mcp.evidiq.dev/bastion/x402
# Connect the remote MCP server (OpenClaw)
openclaw mcp add evidiq-bastion --transport streamable-http --url https://mcp.evidiq.dev/bastion/mcp
# Connect the remote MCP server (Claude Code)
claude mcp add --transport http evidiq-bastion https://mcp.evidiq.dev/bastion/mcp公開エンドポイント:
エンドポイント | 目的 |
| リモートStreamable HTTP MCPトランスポート |
| エージェントが読める使用方法と安全ガイド |
| x402 v2の価格と支払い検出 |
| サービス健全性と支払いゲートの状態 |
| 技術ドキュメント |
MCPツール
有料分析と証明
ツール | 費用 | アトミック | 説明 |
|
|
| Dockerfileを監査:rootユーザー、未ピンのベースイメージ、ビルドステージのシークレット、ADD URL |
|
|
| GitHub ActionsワークフローYAMLを監査:未ピンのアクション、 |
|
|
| Kubernetesマニフェストを監査:特権モード、 |
|
|
| Terraform HCLとDocker Composeを監査: |
|
|
| デプロイ構成ダイジェストと判定をEIP-191署名付きアテステーションに結び付け、0Gストレージにアンカーする |
無料のプリフライトと検証
ツール | 費用 | 説明 |
| 無料 | 重大度、対応設定種別、制限、完全な価格、ツール一覧を含むルールカタログ |
| 無料 | 無料のプリフライト構文チェック:設定種別を自動検出し、SHA-256ダイジェストを計算し、入力シークレットをチェックして重大度カウントを報告します |
| 無料 | 価格見積もり照会ツール。引数なしの場合は完全な価格表を表示します |
| 無料 | オフラインのSHA-256コンテンツダイジェストおよびEIP-191署名検証ツール |
| 無料 | artifactIdで保存済みレポートまたはアテステーションを取得します(10分TTL) |
テスト検証と自動ハーネス出力
EVIDIQ Bastionのすべてのルールと支払いゲートは、VPS上の自動テストハーネス(tester/harness.mjs)によって検証されます。
1. 自動ハーネスフィクスチャマトリックス(14/14 PASS)
フィクスチャ | ツール | 期待される判定 | 実際の判定 | 集合等価一致 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. 検証ハーネスログ(node tester/harness.mjs)
=== Starting EVIDIQ Bastion MCP Test Harness ===
Test Container Endpoint: http://127.0.0.1:4012/mcp
Production Endpoint: http://127.0.0.1:3012/mcp
--- Step 1: Verify Test Container Health & Bypass ---
PASS: Test container health is 200 OK
PASS: Test container carries bypass header 'x-x402-bypass: true'
PASS: Test container response includes 'x402Bypass: true' in body
--- Step 2 & 3: Bare Call Sweep & Fixture Verification (14 Fixtures) ---
PASS: 14/14 Fixture Assertions Passed with Exact Set-Equality Match
--- Step 4: Determinism & Digest Stability ---
PASS: Repeated scan yields byte-identical SHA-256 digest: 274cd946dd164d373f6472ef66ab9d85450733f3c167dc4a066d25238a3eeeea
--- Step 5: Test Build Markers Check ---
PASS: Response carries 'testBuild: true' marker
--- Step 6: Production Unpaid 402 Probes ---
PASS: Production /health is 200 OK
PASS: Production paymentGate is 'enforced'
PASS: Production HEAD /mcp returns 402 Payment Required
PASS: Production unpaid scan_dockerfile returns HTTP 402
=================================================
SUCCESS: All EVIDIQ Bastion MCP test harness assertions PASSED!3. OpenClaw自律エージェント実行トレース
エージェント実行1 — Dockerfile監査(scan_dockerfile):
openclaw@evidiq-vps:~$ openclaw agent --session-id bastion-dockerfile-audit \
--message "Use tool scan_dockerfile from evidiq-bastion MCP to audit: 'FROM node:22-alpine\nCMD [\"node\"]'" --local
[provider-transport-fetch] start provider=zerog model=glm-5.2 method=POST url=https://router-api.0g.ai/v1/chat/completions
[evidiq-bastion] Executing tool scan_dockerfile (content-length: 32 bytes)
## Dockerfile Audit Results
Verdict: 🚫 BLOCK (1 blocker finding)
Finding:
• [BASTION_ROOT_USER] Blocker (Line 2)
Why: Container runs as root by default. A container escape gives root access on the host node.
Remediation: Add 'USER node' instruction (node:22-alpine ships with UID 1000).
Report Integrity:
Digest: 86e0124f52a23e277f9864190fcbff9
Signer: 0x131E4A54aB221929834815c99195dAec316aC270
Artifact ID: art_86e0124f52a23e27エージェント実行2 — GitHub Actionsワークフロー監査(scan_workflow):
openclaw@evidiq-vps:~$ openclaw agent --session-id bastion-workflow-audit \
--message "Use tool scan_workflow from evidiq-bastion MCP to audit GitHub Actions workflow" --local
[provider-transport-fetch] start provider=zerog model=glm-5.2 method=POST url=https://router-api.0g.ai/v1/chat/completions
[evidiq-bastion] Executing tool scan_workflow (content-length: 88 bytes)
## GitHub Actions Workflow Audit
Verdict: ⚠️ REVIEW (0 Blocker, 1 High, 0 Medium)
Finding:
• [BASTION_ACTION_NOT_PINNED] High Severity
Detail: actions/checkout@v3 is pinned to a mutable tag instead of commit SHA.
Why: Mutable tags can be hijacked. Pinning to a SHA prevents untrusted action code updates.
Remediation: Pin action to immutable 40-character commit SHA (e.g., actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11).
Integrity:
Signature: EIP-191 signed by 0x131E4A54aB221929834815c99195dAec316aC270
Artifact ID: art_960389b236d8cb9f推奨ワークフロー
支払いは有料ツールの実行前に行われるため、不正な引数であっても有料呼び出しになります。まず無料でプリフライトを実行してください:
bastion_capabilities— ルールセットカタログ、対応設定種別、制限、価格。validate_config— 設定種別を確認し、入力シークレットを検出し、課金なしで重大度カウントを返します。estimate_cost— 実行予定の操作の正確な価格。リクエストごとに有料呼び出しを1回行います(
scan_dockerfile、scan_workflow、scan_manifest、scan_iac、またはattest_deployment)。verify_bastion_report— 署名とレポートダイジェストの無料オフライン検証。
ルールファミリーと判定エンジン
Bastionは6つのファミリーにわたる14の決定論的セキュリティルールを適用します:
特権:
BASTION_ROOT_USER,BASTION_PRIVILEGED露出:
BASTION_WORLD_INGRESS,BASTION_PUBLIC_STORAGE,BASTION_HOST_NETWORK機密情報:
BASTION_SECRET_IN_BUILD_ARG,BASTION_PLAINTEXT_SECRET,BASTION_SECRET_ENVサプライチェーン:
BASTION_UNPINNED_BASE,BASTION_ACTION_NOT_PINNED,BASTION_PR_TARGET_UNTRUSTED,BASTION_EXPR_INJECTIONリソース:
BASTION_NO_RESOURCE_LIMITS衛生:
BASTION_ADD_URL,BASTION_UNPINNED_PKG_INSTALL
判定ロジック:
blockerルールのいずれかに違反 →BLOCKhighルールのいずれかに違反(blocker が 0 の場合)→REVIEWクリーンな評価(blocker 0、high 検出 0)→
PASS
レポートが証明すること、証明しないこと
この正確なデプロイ構成が、決定的な14ルールエンジンバージョンで評価され、このコンテンツダイジェスト、検出結果セット、および判定結果を生成したことを証明します。
Bastion の信頼されたキーによって署名された EIP-191 署名を生成し、0G ストレージにアンカーできます。
静的構成を超えたランタイムアプリケーションのセキュリティを保証するものではありません。IaC 定義の外にある動的なアプリケーションバグやライブネットワーク攻撃は、静的解析の対象外です。
アーキテクチャ
flowchart TB
agent["<b>AI agent</b><br/>MCP client"]
request{"Tool call<br/>free or paid?"}
agent -->|POST /bastion/mcp| request
free["Free preflight<br/>capabilities · validate_config<br/>estimate · verify · get_artifact"]
gate["x402 v2 gate<br/>EIP-3009 exact · pay per config scan"]
xlayer[("X Layer<br/>USD₮0 · eip155:196")]
request -->|free helper| free
request -->|paid config scan| gate
gate -. verify and settle .-> xlayer
subgraph bastion["EVIDIQ Bastion trust boundary"]
direction TB
parse["1. Config parser<br/>Dockerfile · YAML · HCL · manifest"]
rules["2. 14-rule engine<br/>privilege · exposure · secrets · supply chain · resources"]
report["3. Canonical report<br/>SHA-256 digest · EIP-191 signature"]
artifacts["4. Content-addressed artifacts<br/>scan reports & attestations"]
parse --> rules --> report --> artifacts
end
free --> parse
gate --> parse
response["<b>MCP response</b><br/>verdict + findings + attestation"]
artifacts --> response
classDef client fill:#312e81,stroke:#a78bfa,color:#ffffff,stroke-width:2px;
classDef payment fill:#052e16,stroke:#4ade80,color:#ffffff,stroke-width:2px;
classDef core fill:#0f172a,stroke:#38bdf8,color:#ffffff,stroke-width:2px;
classDef output fill:#4c1d95,stroke:#c4b5fd,color:#ffffff,stroke-width:2px;
class agent,request client;
class free,gate,xlayer payment;
class parse,rules,report,artifacts core;
class response output;
style bastion fill:#0f172a,stroke:#38bdf8,color:#e0f2fe,stroke-width:2px;TypeScript SDK
ライブエンドポイント用の型付きクライアントは sdk/index.ts — 10 個のツール(無料 5、有料 5)。無料ツールは素の呼び出しに応答します。有料ツールは x402 フローを自動的に実行します(402 チャレンジ → pay フック → x-payment ヘッダーでリプレイ)。ファイル内にキーは存在しません。
import { BastionClient } from "./sdk/index.js";
const client = new BastionClient(); // endpoint defaults to https://mcp.evidiq.dev/bastion/mcp
// free
const caps = await client.callTool("bastion_capabilities", {});
// paid — settle the 402 challenge via the constructor's pay hook, or omit it
// to receive a PaymentRequiredError carrying the full x402 v2 challenge
const result = await client.callTool("some_paid_tool", { arg: "value" });pay フックは、デコードされた x402 v2 チャレンジ({ x402Version, resource, accepts[] } — payTo、asset、amount)を受け取り、x-payment ヘッダーの値を返します。例:公式 OKX SDK を介して決済される EIP-3009 の transferWithAuthorization。フックがない場合、有料の呼び出しは PaymentRequiredError をスローするため、呼び出し側は任意の方法で決済できます。
ライセンス
EVIDIQ は、そのオリジナルの Bastion コードを MIT ライセンスで所有・ライセンス供与しています。サードパーティの依存関係は、THIRD_PARTY_NOTICES.md にそれぞれのオープンソースライセンスを保持します。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceSecurity co-pilot for AI agents. Scans for vulnerabilities like prompt injection, infinite loops, and token bombing in AI Agents, audits MCP servers, verifies AGENTS.md governance, and generates EU AI Act compliance reports.10633Apache 2.0
- AlicenseNot gradedqualityBmaintenancePredeploy security scanner for AI-generated code. 80+ vulnerability patterns across secrets, auth, injection, config, Supabase, and logging. Runs locally, code never leaves your machine. Optional x402 witnessed attestation.136Apache 2.0
- AlicenseAqualityCmaintenanceSecurity auditor for CI ecosystems that detects supply-chain and injection flaws in CI/CD configuration files across seven CI platforms, providing taint analysis, remediation, and compliance scoring.2MIT
- AlicenseNot gradedqualityBmaintenanceLocal-first security check for AI coding agents — finds hardcoded secrets, exposed .env files, git-history leaks and vulnerable dependencies (OSV), entirely on your machine. Ask your agent "is this safe to ship?" and get a Launch Readiness score with a fix for every finding.MIT
Related MCP Connectors
Four IaC audits in one call: Compose, Dockerfile, GitHub Actions, Kubernetes. 131 checks.
Hadolint-grade Dockerfile audit — 19 checks: secrets, privileges, supply chain, hygiene.
Multi-CI security scanner with a live threat-intel feed of compromised CI components
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/evidiq/evidiq-bastion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server