面对复杂的系统与众多的插件,如何确保 Jenkins 项目的安全性?
CloudBees 在 Jenkins/CBCI 生态系统上建立了一个专门的安全团队。关于该团队的公开信息可以在从此链接中找到:https://www.jenkins.io/security/。由于所涉及的系统复杂且插件数量众多(见下文),许多扫描提供的信息缺少有价值的上下文,除非使用者有相应的工具经验。所以,专门的安全团队很有必要。
安全团队主要行动和责任
以下是该团队所采取的关键行动的大纲,并在适当的地方提供了链接。如需进一步信息,请发送邮件至 support@cloudbees.com,或联系CloudBees授权合作伙伴——龙智(customer@shdsd.com)。
审计新插件代码的托管请求(想要进入生态系统的插件);
https://github.com/jenkins-infra/repository-permissions-updater/labels/hosting-request
审计 CAP 中是否包含插件(希望进入 CloudBees 保证计划的插件);
根据插件的流行程度(基于安装数量判断),对随机插件进行主动审核;
当 CloudBees 发现危险模式时,进行大规模分析/调查;
由于需要涵盖 2000 多个插件,这对 CI 生态系统来说是特殊的。
Jenkins 专用工具开发(jenkins-codeql 和 usage-in-plugins);
Jenkins 插件生态系统的 CodeQL 自定义规则;
这些规则检测到安全专家多年来发现的常见缺陷,利用 CloudBees 团队的专业知识为上下文提供一些有意义的东西。
工具开发,以防止缺陷被引入。
多种模式(Classes, Methods 和 Fields 等)的自定义代码搜索引擎。
外部安全研究人员和插件维护者之间的协作/协调;
确保报告清晰,包含足够的细节;
复现不同的漏洞;
为维护人员提供建议;
审查纠正,协调发布版本。
CloudBees安全警告页面网址为:https://www.cloudbees.com/security-advisories
Jenkins 安全警告页面的网址为:https://www.jenkins.io/security/advisories/
在 CloudBees 流水线中完成扫描报告分析;
对分析进行 CVE(Common Vulnerabilities & Exposures,通用漏洞披露)评估和论证。
客户扫描报告分析;
对分析进行 CVE 评估和论证。
通过共享的 Slack 渠道、Confluence和学习发展训练,进行教育和指导,提升内部和外部的安全意识;
遵循产品开发团队执行的内部 OLA(操作级别协议)政策;
Jenkins CERT 是一个 CNA(CVE 编号的分发机构),允许生成 CVE。
疑难问题解答
以下是关于 Jenkins 安全话题的两个问题,龙智 CloudBees 的技术专家进行了解答,希望能为您提供参考。
问题 1:
在 Jenkins 的安全警告里,最后会提示哪些插件漏洞还没有修复,但是 CloudBees 里的安全警告最后都是让升级版本,这意思是升级版本可以解决/避免插件漏洞吗?
解答:
是的,CI 在升级版本的时候,已经包含了新版本的 Plugin,而这些新版本的 Plugin 会会包含这些安全漏洞的修复。
问题 2:
对于插件漏洞,Jenkins 也可以升级 Plugin 版本来解决?
解答:
开源的 Jenkins 不会帮助你去测试新版本的 Plugin 和其他 Plugin 的兼容性,结果就是必须自己去解决兼容性问题,这也是开源 Jenkins 升级最让人头疼的问题之一。
但是CloudBees所提供的升级版本,新的 Plugin 已经和其他的新旧版本的 Plugin 都测试过兼容性了,所以下载后直接可用,方便省心。
评论