mcpField
D
Dockerfile Security Audit

Dockerfile Security Audit

远程服务
github.com/tylerscomic-lab安全04 周前更新
代码仓库

关于 Dockerfile Security Audit

面向容器开发与安全审查的 MCP 服务,可解析 Dockerfile 结构并检查常见安全隐患。它会针对最终构建阶段给出风险、位置、原因和修复建议。

主要功能

  1. 01解析多阶段及续行语法
  2. 02检查最终阶段的 USER
  3. 03识别可能烘焙进镜像的密钥
  4. 04检测 curl 或 wget 管道执行脚本
  5. 05检查未固定标签的基础镜像
  6. 06检测带远程 URL 的 ADD

适用场景

  1. 01发布镜像前检查 Dockerfile
  2. 02排查容器以 root 身份运行的风险
  3. 03发现 Dockerfile 中的密钥泄露隐患

MCP 相关

提供 audit_dockerfile 工具,向 MCP 客户端返回风险级别、问题位置、影响说明和具体修复方法。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://dockerfile-audit-mcp.mcpize.run/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

dockerfile-audit-mcp

License: MIT Live on MCPize

一款用于审计 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。