关于 Docker Compose Audit
Docker Compose Audit 是用于静态检查 docker-compose.yml 安全问题的 MCP 服务。它为开发者和 Agent 提供带严重级别的发现项、修复说明及 YAML 修复片段,便于审查 Compose 配置。
主要功能
- 01审计 Compose YAML 或 HTTPS URL
- 02检查权限与网络风险
- 03检查密钥、卷和资源限制
- 04审查镜像与运行周期设置
- 05按严重级别过滤并分类检查
- 06发现项附修复说明和 YAML 片段
适用场景
- 01部署前审查 Compose 文件
- 02查找暴露端口或高风险挂载
- 03识别硬编码密钥和缺失的限制
MCP 相关
向 MCP 客户端提供完整审计及按类别检查工具,可处理提交的 Compose YAML 或公开 HTTPS URL。发现项包含严重级别、修复说明和 YAML 修复片段。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://unbearable-dev--docker-compose-audit.apify.actor/mcpclaude mcp add --transport http unbearabledev-docker-compose-audit https://unbearable-dev--docker-compose-audit.apify.actor/mcp{"mcpServers":{"unbearabledev-docker-compose-audit":{"type":"http","url":"https://unbearable-dev--docker-compose-audit.apify.actor/mcp"}}}在 Cursor 中打开{"servers":{"unbearabledev-docker-compose-audit":{"type":"http","url":"https://unbearable-dev--docker-compose-audit.apify.actor/mcp"}}}在 VS Code 中打开{"mcpServers":{"unbearabledev-docker-compose-audit":{"type":"http","url":"https://unbearable-dev--docker-compose-audit.apify.actor/mcp"}}}{"mcpServers":{"unbearabledev-docker-compose-audit":{"serverUrl":"https://unbearable-dev--docker-compose-audit.apify.actor/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://unbearable-dev--docker-compose-audit.apify.actor/mcp需要授权工具
详细介绍
Docker Compose 安全审计
用于审计
docker-compose.yml文件安全配置错误的 MCP 服务。提供 Trivy 级别的检查目录,专为 AI Agent 设计——每条发现都包含严重性评级、完整的修复说明,以及可直接粘贴的 YAML 修复片段。
由 Unbearable Labs 开发。按事件付费——仅在运行审计时付费。
可用平台
- Apify Actor Store — 主要平台,按量计费(PPE)
- MCPize — 等待提交
- MCP.so — 等待提交
- PulseMCP — 等待提交
- Smithery — 等待提交
- Glama — 等待提交
新闻简报: Unbearable TechTips Weekly · 所有 Actor: github.com/UnbearableDev
功能
让任何支持 MCP 的客户端(Claude Desktop、Cursor、n8n、Make、Zapier、自定义 Agent)连接到此服务,将 docker-compose.yml 的内容交给它,即可获得包含以下内容的结构化报告:
- 严重性 — 高 / 中 / 低 / 信息
- 服务 — 受该问题影响的 compose 服务
- 说明 — 存在的问题及其重要性
- 修复建议 — 应对措施
- 修复片段 — 可直接粘贴到文件中的 YAML
工具
| 工具 | 用途 |
|---|---|
audit_compose(compose_yaml? | compose_url?, min_severity='low') | 运行所有检查并返回完整报告 |
check_privilege(...) | 仅检查容器权限和 capability 问题 |
check_network(...) | 仅检查网络暴露问题 |
check_filesystem(...) | 仅检查卷挂载和文件系统问题 |
check_secrets(...) | 仅检查密钥管理问题 |
check_resources(...) | 仅检查资源限制问题 |
check_image_hygiene(...) | 仅检查镜像标签 / 注册表 / 固定版本问题 |
check_runtime_lifecycle(...) | 仅检查健康检查 / 重启 / 初始化问题 |
check_logging(...) | 仅检查日志驱动 / 轮转问题 |
check_compose_hygiene(...) | 仅检查弃用字段 / Compose 规范问题 |
list_checks(category?) | 浏览完整检查目录 |
所有运行审计的工具都接受相同的输入:
compose_yaml(字符串)— 直接粘贴 YAML 内容,或compose_url(字符串)— 用于获取文件的公开 HTTPS URL(例如 GitHub raw URL)
请提供其中一项,且只能提供一项。min_severity 默认为 low(过滤掉 info 级别的发现);设为 medium 或 high 可进一步筛选。
响应示例(已截断)
{
"summary": {
"total_findings": 14,
"by_severity": {"high": 3, "medium": 6, "low": 5, "info": 0},
"by_category": {"privilege": 4, "network": 3, "secrets": 2, "...": 5}
},
"findings": [
{
"id": "DCS-002",
"category": "privilege",
"severity": "high",
"service": "web",
"title": "Privileged mode enabled",
"description": "Service 'web' has `privileged: true`...",
"remediation": "Remove `privileged: true`. If you need specific capabilities...",
"fix_yaml_snippet": " # remove `privileged: true`; if needed, use cap_add or devices selectively",
"references": ["CIS-Docker-5.4", "NIST-800-190"]
},
...
]
}
定价
| 事件 | USD |
|---|---|
| 任意审计 / check_* 工具调用 | $0.02 |
list_checks 发现调用 | $0.005 |
仅在调用工具时付费。无订阅费,也无月度最低消费。
检查目录(v1 中有 25 项,目标增至 54 项)
| 类别 | 当前检查项 |
|---|---|
| 权限 | Root 用户(DCS-001)、特权模式(DCS-002)、危险 capability(DCS-003)、cap_add: ALL(DCS-004)、缺少 cap_drop: ALL(DCS-005)、缺少 no-new-privileges(DCS-006) |
| 网络 | network_mode: host(DCS-010)、端口绑定到 0.0.0.0(DCS-011)、暴露 SSH 端口(DCS-013)、暴露数据库端口(DCS-014) |
| 文件系统 | 挂载 /var/run/docker.sock(DCS-018)、挂载主机根目录(DCS-019)、敏感主机路径(DCS-020) |
| 密钥 | 在 env 中硬编码密钥(DCS-026)、未使用 Docker secrets 的密钥模式 env(DCS-027) |
| 资源 | 未设置内存限制(DCS-032)、未设置 CPU 限制(DCS-033)、未设置 PID 限制(DCS-034) |
| 镜像管理 | 未固定版本 / :latest 镜像(DCS-037) |
| 运行时生命周期 | 未设置健康检查(DCS-043)、未设置重启策略(DCS-044) |
| 日志 | 未设置日志驱动(DCS-048)、未设置日志轮转(DCS-049) |
| Compose 规范 | 已弃用的 version: 字段(DCS-051)、depends_on 未设置健康检查条件(DCS-052) |
使用 list_checks 获取包含 ID、严重性和标题的权威最新目录。
从 Claude Desktop 连接
添加到 MCP 配置中:
{
"mcpServers": {
"compose-audit": {
"transport": "streamable-http",
"url": "https://YOUR-ACTOR-URL.apify.actor/mcp"
}
}
}
(启动 Actor 后,请将 YOUR-ACTOR-URL 替换为 Apify Store 页面上显示的 Standby URL。)
限制
- YAML 大小: 每次审计调用上限为 1 MB
- URL 获取: 超时时间为 5 秒,最多重定向 3 次,仅支持 HTTPS
- 会话超时: 闲置 5 分钟后超时
暂不涵盖的内容
仅对 compose 文件进行静态分析。本版本不涵盖以下内容:
- 镜像漏洞扫描(请使用 Trivy / Grype)
- 实时容器检查
- Kubernetes / Helm 清单(涉及不同的范围)
- Dockerfile 专项 lint(请使用 Hadolint)
v1.x → v2 路线图中的下 29 项检查包括构建上下文安全、额外的功能检查、构建参数中的密钥模式检测,以及注册表信任验证。
来源 / 联系方式
如需反馈问题、想法或误报,请在 GitHub 仓库中提交问题,或发送邮件至 [email protected]。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。