关于 agent-bom
agent-bom 是面向 AppSec 和平台工程师的开源安全扫描器与可自托管控制平面,用于评估 AI Agent、MCP 服务、软件依赖和云基础设施。它将发现结果与收集到的上下文及证据关联,辅助确定修复优先级。
主要功能
- 01扫描依赖、代码、容器、IaC 和云环境
- 02发现 Agent、MCP 服务、工具与凭据
- 03结合可达性证据关联发现结果
- 04导出 SARIF、CycloneDX、SPDX、JSON 和 HTML
- 05代理或拦截选定的实时 MCP 工具调用
适用场景
- 01发布前检查仓库中的易受攻击依赖
- 02追踪哪些 Agent 和服务可能触达风险项
- 03更新易受攻击的软件包后比较扫描结果
- 04监控选定 MCP 调用中的投毒工具或注入结果
MCP 相关
该服务向 MCP 客户端提供聚焦调查的工具,并可选择图谱、云、运行时或审计配置文件。其代理和网关还可检查或拦截选定的实时 MCP 工具调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| image | any | 否 | 要扫描的 Docker 镜像(例如 'nginx:1.25'、'ghcr.io/org/app:v1')。 |
| limit | integer | 否 | `section` 每页的最大条目数(1-200)。 |
| detail | enum | 否 | 仅输出 JSON。'summary'(默认):数量、主要发现、受影响路径,以及用于分页后续查询的 result_id。'full':完整 AI-BOM 文档;如果超过响应预算,则进行结构化缩短(仍为有效 JSON,并包含 _truncation 元数据)。summary | full |
| enrich | boolean | 否 | 启用 NVD CVSS、EPSS 概率和 CISA KEV 补充信息。 |
| offset | integer | 否 | `section` 中从零开始的条目偏移量。 |
| policy | any | 否 | 与扫描结果一同评估的策略对象,例如 {"rules": [{"id": "no-critical", "severity_gte": "critical", "action": "fail"}]}。 |
| offline | any | 否 | true:仅使用本地漏洞数据库,并跳过 registry、OSV、GHSA 和 NVIDIA 网络查询(需要已通过 `agent-bom db update` 填充的数据库)。false:在线查询这些来源。省略:默认在线查询,除非服务器运营方设置了 AGENT_BOM_OFFLINE 或 AGENT_BOM_VULN_DB_OFFLINE。 |
| package | any | 否 | 要扫描的直接软件包或 MCP 启动命令,例如 'npx @modelcontextprotocol/[email protected]' 或 '@modelcontextprotocol/server-filesystem'。裸的 'name@version' 规格默认视为 npm;其他生态系统请传入 ``ecosystem``。 |
| section | any | 否 | 要分页查看的已存储结果部分,例如 'findings'、'blast_radius'、'packages'、'exposure_paths'。 |
| repo_url | any | 否 | 要克隆并扫描的公开 Git 仓库 URL,例如 'https://github.com/org/repo'。将仓库的依赖项、项目结构、机密信息、IaC 和 AI/MCP 使用情况映射到 AI-BOM。静态且只读:仓库会浅克隆到临时目录,在绝不执行其代码的情况下进行扫描,然后删除。无需本地检出即可将此工具指向目标,这是最快的方式。 |
| ecosystem | any | 否 | 当规格未指定启动器时,``package`` 的生态系统:'npm'、'pypi'、'go'、'cargo'、'maven'、'nuget'、'rubygems'、'composer'、'swift'、'pub'、'hex'、'conda'、'deb'、'apk' 或 'rpm'。省略时,根据规格推断生态系统(例如,PEP 440 规格符,如 'flask==0.12.2',对应 PyPI),并在结果警告中报告任何推断。 |
| result_id | any | 否 | 先前扫描响应中的 result_id。指定后不会运行新扫描:返回该结果的摘要,或 `section` 的一页内容。 |
| sbom_path | any | 否 | 要导入的现有 CycloneDX 或 SPDX JSON SBOM 文件路径。 |
| scorecard | boolean | 否 | 使用 OpenSSF Scorecard 分数丰富软件包信息(需要可解析的 GitHub 仓库)。 |
| db_sources | any | 否 | 扫描前要同步的数据库来源,以逗号分隔(例如 'nvd,ghsa,osv,epss,kev')。 |
| transitive | boolean | 否 | 解析 npx/uvx 软件包的传递依赖。 |
| config_path | any | 否 | 要扫描的本地目录——项目根目录或 MCP 客户端配置目录。若省略,自动发现已安装的 MCP 客户端,除非 no_discover=true。不能与 repo_url 同时使用。 |
| no_discover | boolean | 否 | 禁用对当前主机上 MCP 客户端的自动发现。仍会扫描显式指定的仓库/配置、镜像、SBOM 和软件包目标;CI 中需要确定性扫描时使用此选项。 |
| fail_severity | any | 否 | 漏洞严重级别达到或高于此级别时返回失败状态:critical、high、medium、low。 |
| output_format | string | 否 | 输出格式:'json'(默认)、'sarif'、'cyclonedx'、'spdx'、'junit'、'csv' 或 'markdown'。 |
| warn_severity | any | 否 | 存在达到或高于此严重级别的漏洞时返回警告状态(gate_status=warn,exit 0)。与 fail_severity 配合使用可设置两级 CI 门禁,例如 warn_severity='medium'、fail_severity='critical'。 |
| auto_update_db | boolean | 否 | 扫描前,如果本地漏洞数据库早于每日新鲜度目标,则明确刷新该数据库。 |
| verify_integrity | boolean | 否 | 根据 registry 验证软件包 SHA-256/SRI 哈希和 SLSA 来源证明。 |
详细介绍
发现 AI Agent 背后的易受攻击软件,并追踪暴露证据。
面向 AI、MCP 和云基础设施的开源安全扫描器与可自托管控制平面。 适用于负责 AI Agent 和 MCP 服务的应用安全与平台工程师: 扫描代码仓库,将发现的问题与 Agent 和基础设施上下文关联, 并根据影响范围和可达性证据确定修复优先级。本地扫描无需账户。
快速开始 · 集成 · 示例图 · 自托管 · 产品导览 · 文档
## 快速开始在要检查的代码库中,确保已安装 uv:
uvx agent-bom scan .
阅读发现的 Agent 和 MCP 服务,优先处理严重级别最高的问题,并按照受影响软件包的修复指南操作。请结合判定结果查看覆盖范围缺口:证据不完整并不代表评估结果正常。 此扫描能确认和不能确认的内容。
应用经过审核的修复,更新锁文件,然后在同一代码库中重新运行 uvx agent-bom scan .,以验证问题是否有所变化。
使用 uvx agent-bom scan . -f sarif -o findings.sarif 保存报告,然后上传报告并设置 CI 门禁。
如果设置失败,请运行 uvx agent-bom doctor。有关 pip 安装和现有 checkup 助手工作流,请参阅首次运行指南。
在 GitHub Actions 中,同一扫描会将 SARIF 上传到代码扫描,并在发现高危或严重问题时失败,与 CLI 使用相同的默认门禁:
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- uses: koda-ai-studio/agent-bom@v0
with:
upload-sarif: 'true'
手边没有项目?运行 uvx agent-bom scan --demo --offline,查看捆绑的示例。
预期退出码为 1:该示例会触发安全门禁。非零退出码可能表示触发了安全门禁,也可能表示评估不完整;请检查报告和覆盖范围。
请参阅退出码。

录屏使用带标签的示例数据和捆绑的安全公告。凭据引用是名称,而非机密值。录制中展示的关系不能证明发生了利用攻击或成功访问数据。
覆盖范围
| 领域 | 可获取的内容 |
|---|---|
| 依赖项 | 检查 Python、JavaScript、Go、Java、.NET、Rust 等语言的锁文件和清单,并与 OSV、GitHub 安全公告和 NVD 进行匹配,同时纳入 KEV 和 EPSS。可针对所有已存储的扫描结果询问“我是否受到 CVE-X 的影响”。 |
| 代码 | Semgrep 或任何 SARIF 工具发现的问题,以及对 AI 代码的原生分析(提示词注入接收点、防护措施、工具暴露情况),并判断你的代码是否会调用易受攻击的函数。 |
| 容器和 IaC | 在受限的内存和时间范围内扫描映像;检测 Dockerfile、Terraform、Kubernetes、Helm 和 compose 风险,并在 SARIF 中标注确切行号。 |
| AI Agent 和 MCP | 从本地配置和 Agent 框架中发现 Agent、MCP 服务、工具和凭据,并关联它们可访问的内容。 |
| 云 | 以只读方式从 AWS、Azure、GCP、Databricks、Snowflake 等平台收集信息,并在同一张图中执行 CIS 和最佳实践检查。 |
| 运行时 | 提供 MCP 代理和网关,用于对被污染的工具和注入的结果发出警报,或使用 --injection-mode enforce 阻止它们。 |
支持的来源
目前,发现和扫描会读取以下来源;最后一行列出可发送证据的位置。该列表由代码支持的清单生成(docs/images/integrations-manifest.json);如果清单列出的项目没有实现,测试就会失败。
| 类别 | 集成 |
|---|---|
| AI 客户端 + IDE | Claude、Codex、Cursor、GitHub Copilot、Windsurf、Cortex Code、Gemini CLI、JetBrains AI、Junie、Amazon Q、Cline、Roo Code、Continue、Zed、Goose、Snowflake CLI、Docker MCP Toolkit、Tabnine、Sourcegraph Cody、Aider、Void、Aide、Trae、Pieces、OpenClaw、mcp-cli |
| AI 平台 + 模型中心 | OpenAI、Hugging Face、Ollama、MLflow、W&B、Langfuse、LangSmith |
| GPU + 新兴云服务商 | CoreWeave、Nebius、Lambda、RunPod、Vast.ai、Crusoe、GPU 容器 + K8s GPU 节点 |
| 超大规模云服务商 + Kubernetes | AWS、Azure、GCP、Kubernetes |
| 数据 + 向量存储 | Snowflake、Databricks、Supabase、Pinecone、Qdrant、Weaviate、Chroma、Milvus |
| 身份 + SaaS + 开发 | Okta、GitHub Actions、Vercel、Microsoft Entra ID、Jira、ServiceNow、Slack、Jamf |
| 证据输出 | ClickHouse、BigQuery、S3、GCS、Azure Blob、Jira 工单、Slack 警报、Vanta、Drata、OCSF syslog |
产品名称和徽标是其所有者的商标,仅用于标识受支持的证据来源。使用这些名称和徽标并不意味着获得背书或建立合作关系。
调查上下文和暴露面
哪个 Agent 使用了易受攻击的组件?它能访问什么?有哪些证据支持这条路径? 按精确且限定租户范围的身份关联保留的扫描结果;追踪每个 Agent 的记录影响范围,查看其 MCP 服务、软件包、发现项、凭据和数据存储。检查每种关系的来源和证据类型,然后重新扫描相同范围以确认变化。
虚构的示例环境。虚线表示使用、凭据和访问关系,这些关系是已配置或建模的,并非运行时观测结果;路径分析仅涵盖已收集的快照。 打开完整尺寸的环境关系图。
**从 Agent 到已验证的修复:**选择 Document Intake Agent → 检查 CVE-2023-4863(高危,列入 KEV)以及每条箭头上的证据 → 采用建议的修复方案 → 重新扫描已更改的固定版本,并比较快照。该比较验证的是更改后的输入,而不是正在运行的部署。
**支持证据:一个软件包,三个已解析输入。**仓库固定版本、镜像 SBOM 和建模的 Kubernetes 工作负载都解析为同一个 [email protected]。镜像清单和部署实例仍是独立节点;公告回执处于打开状态。
使用真实解析器和建模基础设施;图中的路径不能证明发生了漏洞利用。 打开完整尺寸的关系图。 探索上下文、关联关系和可达性 · 运行参考实验 · 重现这些截图
向团队说明一项发现:创建影响简报, 其中包含受影响的资产、来源凭据、证据缺口和待审核的后续行动。
我是否会受到新 CVE 的影响?响应新 CVE: 将其与已存储的扫描结果进行匹配,包括仅由 NVD 发布的 CVE,并获取 受影响资产及其修复目标、可能受影响且需验证的发行版软件包,以及影响范围。
打开示例图谱
在浏览器中试用演示:在带标签的示例数据上运行的只读 UI 副本,无需安装,也不需要后端。扫描、设置和登录功能均已关闭。如需在本地打开相同的图谱:
pip install 'agent-bom[ui]==0.110.0'
agent-bom quickstart --run --offline
运行它输出的服务命令,然后打开图谱 URL。离线快速入门会跳过软件包 CVE 查询,因此 CVE 数量为零并不代表没有问题;如需查看有公告支持的发现,请使用内置演示,或填充公告数据库。
在你的环境中自托管
你的基础设施、身份、数据库和审计边界。 从已发布版本的检出内容启动本地试点:
git clone --depth 1 --branch v0.110.0 https://github.com/koda-ai-studio/agent-bom.git && cd agent-bom
AGENT_BOM_IMAGE_TAG=0.110.0 docker compose up -d
打开 **http://localhost:3000**,然后进入 Connections 或 New Scan。试点服务绑定到回环地址,并将状态保留在 Docker 卷中。对于云账户,添加范围受限的只读连接,验证访问权限,然后开始扫描。使用经过身份验证的部署。
- 使用 CLI 或 CI 扫描;导出发现结果、SBOM 和报告。
- 在你自己的控制平面中集中管理清单、图谱证据、修复和合规性。
- 通过代理或网关,对选定的实时 MCP 工具调用执行策略。
Docker 试点指南 · 使用 PostgreSQL 的 Compose · 选择部署方式 · 企业控制 · 连接云账户
配合你现有的工具使用
使用 CLI 或 GitHub Action、REST API 或 MCP;导出 SARIF、CycloneDX、 SPDX、JSON 和 HTML。云连接器和机群同步会收集清单; 代理和网关部署会补充运行时证据。
对于其他 MCP 客户端,请运行 agent-bom mcp server。
从默认配置文件中的八个专用工具开始。
针对图谱、云、运行时或审计工作,选择一个 MCP 配置文件。
尝试三种调查:受影响的 Agent、暴露凭据回执以及扫描前后对比。
导入现有扫描器报告,无需替换其来源证据。
安装前,使用
uvx agent-bom check [email protected] --ecosystem pypi 检查依赖项。添加
pre-commit 和 CI 设置,以便重复检查。
集成
Claude Code 和 Codex 插件:直接询问你的编码 Agent,而不是阅读报告
直接询问你的编码 Agent,而不是阅读报告。在 Claude Code 中:
/plugin marketplace add koda-ai-studio/agent-bom
/plugin install agent-bom@agent-bom
在 Codex 中,运行 codex plugin marketplace add koda-ai-studio/agent-bom,然后
从 Plugins Directory 安装 agent-bom-local。两个插件都会在本地运行固定版本的 agent-bom,不会向 agent-bom 服务发送任何内容。
| 询问 | 技能 |
|---|---|
| “这个项目可以安全发布吗?” | checkup:给出一个结论,以及最重要的三项修复建议 |
| “我是否受到 CVE-2025-29927 的影响?” | affected:说明在已扫描内容中是否受影响或未发现,绝不会称其为“安全” |
| “我的 Agent 都做过什么?” | activity:从本地会话历史记录中查看 MCP 使用情况、未使用的服务和高风险命令 |
| “我的 Agent 设置权限是否过于宽松?” | audit-mcp 和 audit-skills |
| “给我一份 AI-BOM。” | bom:为这台机器、一个项目、一个映像或一个云账户生成 CycloneDX 或 SPDX 格式的清单 |
添加 /plugin install agent-bom-guard@agent-bom,即可在 Claude 执行恶意软件包和仿冒名称的软件包安装前将其拦截。
所有技能及其权限 ·
Guard 详情
默认情况下,发现过程使用只读访问权限。显式磁盘侧扫描会创建临时云资源;缺失的证据仍不可用或不完整,控制项映射不等同于审计认证。
持久化的运行时、代理和网关活动会在图中保留来源凭据和有界时间窗口。精确的清单引用可以绑定记录;未解析的身份和采集缺口会明确标示。记录的活动不能证明执行情况,也不会授予访问权限。请参阅运行时证据边界。
MITRE 技术关联提供调查背景,而非攻击证据。ATLAS 映射凭据保留弱点关联和源目录哈希;建模的图路径不能证明观察到的执行或有效访问。
已测量的匹配器证明 · 产品边界 · 权限 · 威胁模型 · 发布验证 · 图数据模型
贡献与支持
刚加入?30 分钟完成第一个 PR指南和预先配置好的 Codespace,无需本地设置,就能带你从零开始通过测试。可以从good first issue或贡献者路线图开始,并在 Discord 的 #contributors 频道提问。
agent-bom 欢迎更多维护者:GOVERNANCE.md介绍了从贡献者到问题分诊者、审阅者和维护者的成长路径,MAINTAINERS.md列出了各项内容的审阅负责人。如果 agent-bom 提供了有用的证据,欢迎点星或在反馈中留下简短说明,帮助其他安全团队发现并信任它。
贡献 · 功能与路线图 · 支持 · 报告不准确的发现 · Apache-2.0
源代码版本:v0.111.0 · 最新发布版本:v0.110.0 · 更新日志
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。



