使用说明
Open security scanner for AI supply chain — agents, MCP servers, packages, containers, cloud, GPU, and runtime.
Every CVE in your AI stack is a credential leak waiting to happen. agent-bom follows the chain end-to-end and tells you exactly which fix collapses it.
CVE-2025-1234 (CRITICAL · CVSS 9.8 · CISA KEV)
|── better-sqlite3@9.0.0 (npm)
|── sqlite-mcp (MCP Server · unverified · root)
|── Cursor IDE (Agent · 4 servers · 12 tools)
|── ANTHROPIC_KEY, DB_URL, AWS_SECRET (Credentials exposed)
|── query_db, read_file, write_file, run_shell (Tools at risk)
Fix: upgrade better-sqlite3 → 11.7.0
爆炸半径是核心思想: CVE -> package -> MCP server -> agent -> credentials -> tools.CWE感知影响可防止DoS像凭据泄露一样被报告。
尝试演示
agent-bom agents --demo --offline
演示使用了一个精心策划的示例,因此输出在不同版本之间保持可重复性。显示的每个CVE都是与真正易受攻击的软件包版本的真实OSV/GHSA匹配——没有捏造的发现(由锁定 tests/test_demo_inventory_accuracy.py).要进行真正的扫描,请运行 agent-bom agents,或添加 -p . 将项目清单和锁定文件折叠到同一结果中。
选择您的入口点
| 目标 | 跑 | 跑在哪里 | 它触及了什么 |
|---|---|---|---|
| 发现此计算机或存储库上安装了什么 | agent-bom agents -p . |
本地CLI、CI运行器或扫描作业 | 本地代理配置、MCP服务器、项目清单、锁文件、爆炸半径 |
| 将发现转化为修复计划 | agent-bom agents -p . --remediate remediation.md |
与扫描相同的位置 | 优先升级,并提供可访问的影响和补救提示 |
| 安装前检查一个软件包 | agent-bom check flask@2.2.0 --ecosystem pypi |
本地CLI或CI门 | 仅包元数据和漏洞判断 |
| 扫描容器图像 | agent-bom image nginx:latest |
本地CLI、CI运行器或扫描作业 | 映像层、操作系统包、语言包、可修复性 |
| 审核IaC或云状态 | agent-bom iac Dockerfile k8s/ infra/main.tf |
本地CLI、CI运行器或计划作业 | Terraform、Kubernetes、Helm、Dockerfiles、可选的实时集群姿态 |
| 在本地运行控制平面 | agent-bom serve |
一个工作站或服务器 | API+捆绑的本地UI+同一台计算机上的持久化作业/图形 |
| 检查本地MCP实时流量 | agent-bom proxy "<server command>" |
MCP客户端或工作负载旁边 | 内联stdio/运行时检查、策略评估、审计推送 |
| 运行共享远程MCP业务平面 | agent-bom gateway serve |
集群或服务器 | 共享HTTP/SSE远程MCP流量、租户策略、审计、速率限制 |
快速启动
pip install agent-bom # CLI
# pipx install agent-bom # isolated global install
# uvx agent-bom --help # ephemeral run
agent-bom agents # discover + scan local AI agents and MCP servers
agent-bom agents -p . # add project lockfiles + manifests
agent-bom check flask@2.0.0 --ecosystem pypi # pre-install CVE gate
agent-bom image nginx:latest # container image scan
agent-bom iac Dockerfile k8s/ infra/main.tf # IaC scan, optionally `--k8s-live`
建议在一个工作站上使用飞行员:
curl -fsSL https://raw.githubusercontent.com/msaad00/agent-bom/main/deploy/docker-compose.pilot.yml -o docker-compose.pilot.yml
docker compose -f docker-compose.pilot.yml up -d
# Dashboard -> http://localhost:3000
建议在您自己的AWS/EKS中使用完整的自托管路径:
scripts/deploy/install-eks-reference.sh \
--cluster-name corp-ai \
--region us-east-1 \
--hostname agent-bom.internal.example.com \
--enable-gateway
来自已签出仓库的高级/手动路径:
helm upgrade --install agent-bom deploy/helm/agent-bom \
--namespace agent-bom --create-namespace \
-f deploy/helm/agent-bom/examples/eks-production-values.yaml
第一次扫描后:
agent-bom agents -p . --remediate remediation.md # fix-first plan
agent-bom agents -p . --compliance-export fedramp -o evidence.zip # tamper-evident evidence bundle
pip install 'agent-bom[ui]' && agent-bom serve # API + bundled local UI
Product views — dashboard, remediation, and graph surfaces
产品视图
这些来自实时产品路径,使用通过API推送的内置演示数据。看 docs/CAPTURE.md 对于规范捕获协议。
仪表板——风险概述
登录页面是 风险概述:一个字母等级表,四个标题计数器(被积极利用·证书暴露·可访问工具·顶级攻击路径风险),带有子分数的安全态势等级(策略+控制、开放证据、包+CVE、可达+暴露、MCP配置),以及每个驱动程序的分数细分。
仪表板——攻击路径和暴露
第二个仪表板框架侧重于修复第一路径列表及其下方的覆盖率/积压KPI,因此攻击路径的深入分析保持可读,而无需高高的拼接屏幕截图。
修复第一次修复
风险、覆盖范围、修复版本和框架上下文在一个审查表中——操作员在页面之间不会跳转。
代理网
以代理为中心的共享基础架构图——选定的代理、其共享的MCP服务器、工具、包和发现。
How a scan moves through the system — five stages, no source code or credentials leave your machine
引擎内部:解析器、污点、调用图、爆炸半径评分。
外部调用仅限于包元数据、版本查找和CVE丰富。
企业自托管部署
agent-bom 在您的基础设施中运行:您的VPC、EKS集群、Postgres、SSO、KMS。没有托管控制平面。没有强制性的供应商后端。无强制遥测。
了解产品的最简单方法是:
- 从库存开始 使用扫描和车队同步
- 稍后添加运行时 使用代理或网关,您实际上需要执行
这就是产品背后的采用楔子:
- 清单优先团队可以看到哪些MCP服务器正在运行,它们公开了哪些工具,以及哪些凭据支持它们
- 以运行时为中心的团队可以在不改变控制平面的情况下在代理或网关中分层
部署模式
| 模式 | 部署 | 使用时 | 添加 |
|---|---|---|---|
| 本地扫描 | 仅限CLI或CI | 您需要发现、CVE、IaC、映像和MCP配置分析 | 没有持久控制平面 |
| 库存优先自托管 | API+UI+Postgres+扫描作业+震源组同步 | 您需要端点和MCP库存,而不首先推出运行时强制 | /fleet, /agents、调查结果、图表、补救措施、审计 |
| 选择性运行时强制 | 库存优先,加 proxy 在选定的工作负载上 |
您需要在stdio或工作负载本地MCP附近进行内联MCP检查 | 策略执行、运行时审计、本地阻止 |
| 共享远程MCP控制 | 库存优先,加 gateway |
您需要一个用于共享远程MCP的中央HTTP流量平面 | 中央中继、共享速率限制、远程MCP策略/审计 |
| 完全自托管平台 | 控制平面+扫描+车队+选定代理+选定网关 | 您希望在库存、调查结果、运行时间和证据方面有一个操作员平面 | 您自己的基础设施中有完整的产品堆栈 |
运行期模型
proxy 和 gateway 是 对等运行时表面,不是必需的串行链。
| Surface | 部署时 | 处理 | 不替换 |
|---|---|---|---|
agent-bom proxy |
您需要工作负载本地或端点本地MCP执行 | stdio MCP、sidecar、本地审计、本地策略决策 | 库存、车队同步或共享远程中继 |
agent-bom gateway serve |
您需要一个共享的远程MCP平面 | HTTP/SSE远程MCP流量、租户速率限制、共享策略、审计 | 本地stdio强制或每个运行时路径 |
产品如何连接
| 路径 | 起点 | 终点 | 存在原因 |
|---|---|---|---|
| 库存路径 | agent-bom agents,扫描作业、CI、机队同步 |
API+UI+Postgres | 发现已安装、已配置、有风险和可访问的内容 |
| 代理路径 | 本地编辑器、端点或sidecar工作负载 | 本地MCP+控制平面审计/策略 | 工作负载附近的内联运行时检查 |
| 网关路径 | 共享远程MCP客户端 | 远程MCP+控制平面审计/策略 | 中央策略和共享远程MCP流量 |
| 控制平面路径 | 浏览器UI或API客户端 | API+UI+Postgress | 查看结果、图形、修正、审核、车队和策略 |
部署真相:
- 这 浏览器UI驱动工作流
- 这 API拥有状态、身份验证、RBAC、图形、审核和策略
- 工作人员进行扫描和摄入
- 舰队在没有代理的情况下提供库存
- 代理和网关是部署在适当位置的核心功能
在代理推出之前可见的内容
仅通过扫描和车队同步,团队就可以看到:
- 哪些端点具有MCP客户端或收集器
- 配置了哪些MCP服务器
- 运输:
stdio,sse,或http - 申报工具
- 命令或URL
- 凭证支持的环境变量
- 最后一次看到和最后一次同步状态
- 包、图像、IaC和相关查找上下文
这就是为什么库存故事很重要:采用不应该要求团队 从运行时推出开始。
一张表中的自托管形状
| 层 | 通常先部署 | 备注 |
|---|---|---|
| 入口+身份验证 | 是 | 控制平面前面的OIDC或SAML |
| API+用户界面 | 是的 | 一个运营商飞机,同源浏览器应用程序 |
| 工人/扫描作业 | 是 | 发现、扫描、导入、计划作业 |
| 舰队同步 | 端点可见性为yes | 提供无代理的MCP清单 |
| 代理 | 可选 | 仅在需要内联本地强制的地方添加 |
| 网关 | 可选 | 仅在共享远程MCP流量需要中心平面时添加 |
| Postgres | 是 | 主交易存储 |
| ClickHouse/S3 | 可选 | 分析和备份/导出规模 |
一个产品,两个可部署映像
agentbom/agent-bom=CLI、API、作业、网关、代理、MCP服务器模式agentbom/agent-bom-ui=浏览器控制平面UI
用户不应该直接考虑这种分割:
- 飞行员:一个撰写文件
- 完全自托管:一个参考安装程序
- 高级/手动:一个Helm图表
官方部署入口点:
- 飞行员在一台机器上: deploy/docker-composite.pilot.yml
- 完全自托管在您自己的AWS/EKS中: scripts/deploy/install-eks-reference.sh
其他撰写文件 deploy/ 是高级或特定组件的示例,
不是推荐的主要部署路径。
本地vs自托管
| 如果你跑。.. | 它可以扫描或管理 | 它不能直接到达 |
|---|---|---|
agent-bom agents -p . 在您的笔记本电脑上 |
本地仓库、本地MCP配置、本地清单、本地端点上下文 | 仅集群资源,除非您传递凭据或从该环境运行 |
agent-bom serve 在一台机器上 |
扫描和UI工作流,查找机器可以访问的路径 | 另一台开发人员笔记本电脑的本地文件或它无法访问的集群内部服务 |
| 基础设施中的Helm/脚本控制平面 | 扫描作业、震源组同步、图形、审核、修复、API/UI工作流 | endpoint-local stdio流量,除非在其中部署了代理 |
agent-bom proxy 在端点或sidecar上 |
该工作负载的实时MCP流量 | 共享从未通过该代理的远程MCP流量 |
agent-bom gateway serve 集群内 |
通过它路由的共享远程MCP流量 | 留在端点上的本地stdio MCP会话 |
从场景开始
| 需求 | 从这里开始 |
|---|---|
| 最快的本地飞行员 | 部署概述 |
| AWS/EKS中的自主机 | 在您自己的AWS/EKS基础架构中部署 |
| 从集群创建开始参考AWS部署 | AWS公司推出 |
| 端点库存和笔记本电脑推出 | 端点车队 |
| 代理和网关运行时操作 | 运行时操作 |
| 信任模型、身份验证、租户隔离 | 企业_课程_ PLAYBOOK.md |
Deep deployment notes
每个表面拥有什么
| Surface | 拥有 | 不拥有 |
|---|---|---|
| 用户界面 | 立即运行操作、审核、导出、策略工作流 | 直接收集 |
| API/控制平面 | auth、RBAC、租户范围、编排、持久性、图、审计、策略 | 内联MCP执行 |
| 工人 | 扫描、摄取、规范化、导入 | 浏览器会话 |
| 舰队 | 端点和收集器清单 | 运行时阻塞 |
| 代理 | 本地内联MCP检查和审计中继 | 中央策略存储 |
| 网关 | 共享远程MCP流量和共享运行时策略评估 | 完全控制平面持久性 |
后端选择
| 后端 | 最适合 |
|---|---|
| SQLite | 笔记本电脑和单节点本地使用 |
| Postgres/supabase | 默认自托管控制平面 |
| ClickHouse | 更大规模的审计/事件分析 |
| 雪花 | 发布的后端奇偶校验适合的仓库本机治理工作流 |
交付的Helm示例
| 文件 | 使用时 |
|---|---|
eks-mcp-pilot-values.yaml |
专注的MCP和机队飞行员 |
eks-production-values.yaml |
生产推广 |
eks-istio-kyverno-values.yaml |
零信任/受监管的推出 |
eks-snowflake-values.yaml |
雪花支持部署 |
信任与透明度
代理bom是 只读扫描器。它从不写入配置,从不执行MCP服务器,从不存储凭据值。没有遥测。没有分析。发布内容如下 Sigstore已签名 SLSA来源和自行出版的SBOM。
| 何时 | 发送内容 | 发送地点 | 选择退出 |
|---|---|---|---|
| 默认CVE查找 | 包名称+版本 | OSV API | --offline |
| 浮动版本解析 | 名称+请求版本 | npm/PyPI/Go代理 | --offline |
--enrich |
CVE ID | NVD、EPSS、CISA KEV | 省略 --enrich |
--deps-dev |
包名称+版本 | deps.dev | 省略 --deps-dev |
verify |
包+版本 | PyPI/NMP完整性端点 | 不运行 verify |
| 可选集成 | 查找摘要 | Slack/Jira/Vanta/Drata | 不要传递这些标志 |
完全信任模型: 安全_建筑.md · 许可.md · 供应_ HAIN.md · 发布_验证.md.
合规
FedRAMP、CMMC、NIST AI RMF、ISO 27001、SOC 2、OWASP LLM Top-10、MITRE ATLAS和欧盟AI法案的捆绑映射。在一个命令中导出防篡改证据包。
agent-bom agents -p . --compliance-export fedramp -o fedramp-evidence.zip
agent-bom agents -p . --compliance-export nist-ai-rmf -o evidence.zip
审计日志本身是HMAC链式的,可以作为签名的JSON/JSONL包导出到 GET /v1/audit/export.
安装和部署
pip install agent-bom # CLI
docker run --rm agentbom/agent-bom agents # Docker
对于已发布的容器,包装模型为:
- 一个产品,两个可部署映像
agentbom/agent-bom=CLI、API、作业、网关的主运行时映像, 代理相关入口点和MCP服务器模式agentbom/agent-bom-ui=相同的浏览器仪表板图像 自主控制平面
| 模式 | 最适合 |
|---|---|
CLI(agent-bom agents) |
本地审计+项目扫描 |
端点车队(--push-url …/v1/fleet/sync) |
员工笔记本电脑进入自助式机队 |
GitHub行动(uses: msaad00/agent-bom@v0.81.1(CI/CD + SARIF) |
|
Docker(agentbom/agent-bom) |
隔离扫描、API作业和非浏览器自托管入口点 |
浏览器UI图像(agentbom/agent-bom-ui) |
仪表板图像与同一自托管控制平面配对 |
Kubernetes/Helm(helm install agent-bom deploy/helm/agent-bom) |
自托管API+仪表板,计划发现 |
REST API(agent-bom api) |
平台集成,自托管控制平面 |
MCP服务器(agent-bom mcp server) |
克劳德桌面、克劳德代码、光标、Codex、Windsurf、Cortex |
运行时代理(agent-bom proxy) |
MCP交通执法 |
Shield SDK(from agent_bom.shield import Shield) |
进程内保护 |
后端选择保持明确和可选:
SQLite用于本地和单节点使用Postgres/Supabase对于主事务控制平面ClickHouse用于分析和事件规模持久性Snowflake用于仓库本地治理和选定的后端路径
本地运行,在CI中,在Docker中,在Kubernetes中,作为自托管API+仪表板,或作为MCP服务器运行-没有强制托管的控制平面,没有强制的云供应商。
参考文献 产品中心_ RIEF.md · PRODUCT_METRICS.md · 企业.md · 代理bom的工作原理.
CI/CD in 60 seconds
- uses: msaad00/agent-bom@v0.81.1
with:
scan-type: scan
severity-threshold: high
upload-sarif: true
enrich: true
fail-on-kev: true
容器图像门、IaC门、气隙CI、MCP扫描和SARIF/SBOM示例记录在 站点文档/入门/quickstart.md.
MCP服务器
任何兼容MCP的AI助手内都有36个安全工具:
{
"mcpServers": {
"agent-bom": {
"command": "uvx",
"args": ["agent-bom", "mcp", "server"]
}
}
}
Install extras + output formats
| 额外 | 命令 |
|---|---|
| 云提供商 | pip install 'agent-bom[cloud]' |
| MCP服务器 | pip install 'agent-bom[mcp-server]' |
| REST API | pip install 'agent-bom[api]' |
| 仪表板 | pip install 'agent-bom[ui]' |
| 萨姆·索 | pip install 'agent-bom[saml]' |
JSON·SARIF·CycloneDX 1.6(带ML BOM)·SPDX 3.0·HTML·JSON图形·HTML图形·GraphML·Neo4j Cypher·JUnit XML·CSV·Markdown·Mermaid·SVG·Prometheus·Badge·Attack Flow·纯文本。OCSF用于运行时/SIEM事件传递,而不是作为通用报告格式。
贡献
git clone https://github.com/msaad00/agent-bom.git && cd agent-bom
pip install -e ".[dev-all]"
pytest && ruff check src/
贡献.md · docs/CLI_DEBUG_GUIDE.md · 安全.md · 代码_OF_CONDUCT.md
Apache 2.0-- 许可证
