关于 Dockerfile Security Audit
面向容器开发与安全审查的 MCP 服务,可解析 Dockerfile 结构并检查常见安全隐患。它会针对最终构建阶段给出风险、位置、原因和修复建议。
主要功能
- 01解析多阶段及续行语法
- 02检查最终阶段的 USER
- 03识别可能烘焙进镜像的密钥
- 04检测 curl 或 wget 管道执行脚本
- 05检查未固定标签的基础镜像
- 06检测带远程 URL 的 ADD
适用场景
- 01发布镜像前检查 Dockerfile
- 02排查容器以 root 身份运行的风险
- 03发现 Dockerfile 中的密钥泄露隐患
MCP 相关
提供 audit_dockerfile 工具,向 MCP 客户端返回风险级别、问题位置、影响说明和具体修复方法。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://dockerfile-audit-mcp.mcpize.run/mcpclaude mcp add --transport http tylerscomic-lab-dockerfile-audit https://dockerfile-audit-mcp.mcpize.run/mcp{"mcpServers":{"tylerscomic-lab-dockerfile-audit":{"type":"http","url":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}在 Cursor 中打开{"servers":{"tylerscomic-lab-dockerfile-audit":{"type":"http","url":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}在 VS Code 中打开{"mcpServers":{"tylerscomic-lab-dockerfile-audit":{"type":"http","url":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}{"mcpServers":{"tylerscomic-lab-dockerfile-audit":{"serverUrl":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
dockerfile-audit-mcp
一款用于审计 Dockerfile 中实际容器安全反模式的 MCP 服务。它通过手写解析器解析 Dockerfile 的实际结构(指令、反斜杠续行、多阶段构建),而非对原始文本使用正则表达式。
可检测的问题
缺少 USER。 如果最终实际发布的阶段没有 USER 指令(或明确设置了 USER root),运行容器中的所有进程默认都拥有 root 权限。它只会正确检查最终阶段,与实际的 Linter 惯例(hadolint 的 DL3002)一致,因为多阶段构建的目的正是确保较早的、仅用于构建的阶段中的 root 操作不会被发布。
硬编码的机密。 赋值给机密类名称(API_KEY、PASSWORD、*_TOKEN、STRIPE_*_KEY 等)的 ENV/ARG 值会永久保留在镜像的层历史记录中。任何拉取镜像的人都能通过 docker history --no-trunc 查看这些值,即使后续层取消了该变量也一样。它不会误报看似占位符的值(<your-key>、changeme)以及没有默认值的裸 ARG 声明。
curl | sh / wget | bash。 构建时将远程脚本直接传入 Shell,且不进行完整性检查;如果主机遭到入侵或脚本发生变化,之后的每次构建都会悄无声息地拉取该脚本当前提供的内容。
基础镜像未固定版本。 使用 :latest 或完全不指定标签,意味着镜像所基于的内容可能在不同构建之间发生变化,而 Dockerfile 中没有任何说明其原因的信息。
ADD 使用远程 URL。 通过另一种指令引入了与 curl | sh 相同的未经验证的拉取问题。
工具
audit_dockerfile
完整审计。返回风险级别,以及每项发现的准确位置、重要原因和具体修复方法。
使用方法
托管服务(推荐): MCPize — 免费套餐,Pro 每月 $7。
自托管:
npm install
node server.js
属于一个小型套件
github-actions-audit-mcp、 regex-safety-audit-mcp、 secrets-leak-audit-mcp、 mcp-trust-audit-mcp。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。