Agent Skills
返回列表
🔒

Hadolint Dockerfile 风险扫描

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/review-dockerfiles-for-risky-patterns-and-bad-defaults-with-hadolint。

技能介绍

解决什么问题

Dockerfile 往往同时承担镜像构建、依赖安装和运行环境声明的职责。一个看似简单的 RUN 指令,可能包含 apt-get update 与安装混写、忽略 --no-install-recommends、下载后未校验、用 curl 执行远端脚本、在容器里使用 sudo、以 root 运行最终进程,或顺手写死 latest 这类脆弱默认值。这些问题不一定让构建立刻失败,却可能把临时补丁固化进镜像,等到安全评审、回归测试或生产扩缩容时才暴露。

技能如何工作

这个技能把 Dockerfile 交给 hadolint 做静态检查,核心不是执行镜像,而是审阅构建脚本本身:

  • 读取目标:定位需要检查的 Dockerfile,关注构建阶段、依赖安装、用户切换、网络下载和环境变量默认值。
  • 执行检查:调用 hadolint 解析指令与 shell 片段,识别高风险写法、容易破裂的安装习惯和常见 shell 陷阱。
  • 解释命中:按规则和行号整理结果,说明哪类默认设置或写法容易引入不稳定、不安全或不可复现的镜像。
  • 给出修正方向:提示更明确的安装参数、固定版本、最小权限、分层缓存和可复现构建替代方案,但不替代人工判断。

关键步骤可以概括为:先确定要审查的 Dockerfile,再运行静态 lint,随后按命中项回看上下文,判断是必须修掉的风险,还是团队当前可接受的折中。

适用边界与注意点

它适合作为镜像发布前的静态门禁,尤其适合检查构建脚本中的默认值和危险模式;但它不会完整证明镜像运行时安全,也不能替代漏洞扫描、依赖来源验证或渗透测试。对于高度定制的构建流程,某些规则可能误报;反过来,规则未命中也不等于 Dockerfile 正确。建议把结果当作工程证据:高风险项应修复,低风险项需结合基础镜像、构建环境、运行时用户和交付节奏判断。

使用场景

  • 修改 Dockerfile 前运行检查,确认没有遗留的危险默认写法或易碎安装步骤。
  • 镜像发布前做静态审查,把高风险规则命中转成可处理的修复项。
  • 新增基础镜像或依赖安装步骤时,核对参数和下载方式是否符合最佳实践。
  • 评审他人提交的 Dockerfile,用规则命中快速定位需要讨论的构建决策。

适合人员

  • 维护容器镜像并需要发布前拦截高风险 Dockerfile 写法的开发工程师。
  • 负责 CI/CD 流水线,想把 Dockerfile 静态检查加入构建门禁的平台工程师。
  • 审核容器构建脚本,需要明确规则命中原因与修复方向的安全工程师。
  • 编写内部基础镜像,需要统一安装参数和可复现构建习惯的 DevOps 工程师。