Skip to main content
Glama
evidiq

EVIDIQ Bastion

Official
by evidiq

Infrastructure 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_configscan_dockerfile / scan_workflowattest_deploymentappend_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

公開エンドポイント:

エンドポイント

目的

https://mcp.evidiq.dev/bastion/mcp

リモートStreamable HTTP MCPトランスポート

https://mcp.evidiq.dev/bastion/skill.md

エージェントが読める使用方法と安全ガイド

https://mcp.evidiq.dev/bastion/x402

x402 v2の価格と支払い検出

https://mcp.evidiq.dev/bastion/health

サービス健全性と支払いゲートの状態

https://evidiq.dev/docs/bastion

技術ドキュメント

MCPツール

有料分析と証明

ツール

費用

アトミック

説明

scan_dockerfile

0.005 USDT0

5000

Dockerfileを監査:rootユーザー、未ピンのベースイメージ、ビルドステージのシークレット、ADD URL

scan_workflow

0.01 USDT0

10000

GitHub ActionsワークフローYAMLを監査:未ピンのアクション、pull_request_targetのリスク、スクリプトインジェクション

scan_manifest

0.015 USDT0

15000

Kubernetesマニフェストを監査:特権モード、hostPath/hostNetwork、リソース制限の欠落

scan_iac

0.02 USDT0

20000

Terraform HCLとDocker Composeを監査:0.0.0.0/0イングレス、公開ストレージバケット、平文シークレット

attest_deployment

0.03 USDT0

30000

デプロイ構成ダイジェストと判定をEIP-191署名付きアテステーションに結び付け、0Gストレージにアンカーする

無料のプリフライトと検証

ツール

費用

説明

bastion_capabilities

無料

重大度、対応設定種別、制限、完全な価格、ツール一覧を含むルールカタログ

validate_config

無料

無料のプリフライト構文チェック:設定種別を自動検出し、SHA-256ダイジェストを計算し、入力シークレットをチェックして重大度カウントを報告します

estimate_cost

無料

価格見積もり照会ツール。引数なしの場合は完全な価格表を表示します

verify_bastion_report

無料

オフラインのSHA-256コンテンツダイジェストおよびEIP-191署名検証ツール

get_artifact

無料

artifactIdで保存済みレポートまたはアテステーションを取得します(10分TTL)

テスト検証と自動ハーネス出力

EVIDIQ Bastionのすべてのルールと支払いゲートは、VPS上の自動テストハーネス(tester/harness.mjs)によって検証されます。

1. 自動ハーネスフィクスチャマトリックス(14/14 PASS)

フィクスチャ

ツール

期待される判定

実際の判定

集合等価一致

dockerfile/root-user.Dockerfile

scan_dockerfile

BLOCK

BLOCK

true (BASTION_ROOT_USER)

dockerfile/latest-tag.Dockerfile

scan_dockerfile

REVIEW

REVIEW

true (BASTION_UNPINNED_BASE)

dockerfile/secret-in-arg.Dockerfile

scan_dockerfile

BLOCK

BLOCK

true (BASTION_SECRET_IN_BUILD_ARG)

dockerfile/clean.Dockerfile

scan_dockerfile

PASS

PASS

true (クリーン)

workflow/pr-target-checkout.yml

scan_workflow

BLOCK

BLOCK

true (BASTION_PR_TARGET_UNTRUSTED)

workflow/unpinned-action.yml

scan_workflow

REVIEW

REVIEW

true (BASTION_ACTION_NOT_PINNED)

workflow/script-injection.yml

scan_workflow

BLOCK

BLOCK

true (BASTION_EXPR_INJECTION)

workflow/clean.yml

scan_workflow

PASS

PASS

true (クリーン)

manifest/privileged.yaml

scan_manifest

BLOCK

BLOCK

true (BASTION_PRIVILEGED)

manifest/no-limits.yaml

scan_manifest

REVIEW

REVIEW

true (BASTION_NO_RESOURCE_LIMITS)

manifest/helm-templated.yaml

scan_manifest

REVIEW

REVIEW

true (クリーンテンプレート)

iac/open-ingress.tf

scan_iac

BLOCK

BLOCK

true (BASTION_WORLD_INGRESS)

iac/plaintext-secret.tf

scan_iac

BLOCK

BLOCK

true (BASTION_PLAINTEXT_SECRET)

iac/clean.tf

scan_iac

PASS

PASS

true (クリーン)

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

推奨ワークフロー

支払いは有料ツールの実行に行われるため、不正な引数であっても有料呼び出しになります。まず無料でプリフライトを実行してください:

  1. bastion_capabilities — ルールセットカタログ、対応設定種別、制限、価格。

  2. validate_config — 設定種別を確認し、入力シークレットを検出し、課金なしで重大度カウントを返します。

  3. estimate_cost — 実行予定の操作の正確な価格。

  4. リクエストごとに有料呼び出しを1回行います(scan_dockerfilescan_workflowscan_manifestscan_iac、またはattest_deployment)。

  5. 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 ルールのいずれかに違反 → BLOCK

  • high ルールのいずれかに違反(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 にそれぞれのオープンソースライセンスを保持します。

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    B
    maintenance
    Security 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.
    10
    63
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Predeploy 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.
    136
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Security 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.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local-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

View all related MCP servers

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

View all MCP Connectors

Latest Blog Posts

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