Agent Skills
返回列表
🔒

Jenkins Groovy 共享库审计器

IT 运维与安全 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/jenkins-groovy-shared-library-auditor 到 AI 助手中。

技能介绍

要解决的问题

Jenkins 共享库是 CI/CD 流水线复用代码的主要方式,其中的 Groovy 脚本一旦进入生产环境,就等于拿到了流水线的执行权。问题在于:脚本安全插件(Script Security Plugin)虽然提供了沙箱和审批机制,但共享库代码往往未经人工审查就直接被流水线调用,审批列表里可能还躺着早已过期的放行记录。常见风险包括:

  • 未授权的方法签名:脚本调用了沙箱未放行的 API,例如 Runtime.getRuntime().exec() 或未经批准的文件操作;
  • 沙箱逃逸:利用 Groovy 的动态特性(如反射、元编程)绕过沙箱限制;
  • 凭证泄露:在流水线代码中硬编码凭据,或通过日志输出泄露 credentials 绑定的内容。

核心能力

这个技能基于 Script Security Plugin 的 API,把共享库 Groovy 脚本作为审计对象,逐脚本检查上述三类反模式:

  1. 解析 Groovy 脚本,识别对未批准 API 的调用,输出未放行的方法签名清单;
  2. 检测沙箱逃逸模式,标记可疑的动态代码执行路径;
  3. 扫描流水线代码中的凭证绑定与日志输出,发现可能泄露的凭据内容。

审计结果面向 CI/CD 维护者,可以直接对应到共享库的目录结构,方便定位到 vars/ 或 src/ 下的具体脚本。

适用边界与注意点

  • 该技能依赖 Script Security Plugin 的现有能力,不能替代 Jenkins 本身的版本升级与补丁管理;
  • 审计覆盖的是共享库源码层面的反模式,运行时动态生成的 Groovy 代码不在范围内;
  • 已有的历史放行签名(approval signatures)需要人工清理,工具只能发现,不能自动撤销。

使用场景

  • Jenkins 共享库新增 Groovy 脚本后,需要审查其中是否调用了沙箱未放行的系统命令或文件操作 API。
  • 流水线代码接入凭据绑定后,要排查脚本日志输出中是否存在凭证内容泄露的风险。
  • 共享库历史审批签名长期未清理,需要定位过期放行记录并评估残留风险。
  • 多人协作的 Jenkins 共享库提交合并前,要扫描是否存在绕过沙箱限制的动态代码执行路径。

适合人员

  • 维护 Jenkins 共享库的 DevOps 工程师,需要在脚本合入前完成安全审查,防止未授权 API 调用进入生产流水线。
  • 负责 CI/CD 安全的平台工程师,需要定期排查共享库中硬编码凭据和凭证泄露的代码。
  • 管理 Jenkins 流水线的团队负责人,需要在共享库发生代码变更后评估沙箱逃逸风险。
  • 为多个团队提供共享库的构建平台开发者,需要在发布前确认审批签名清单的有效性。