CI/CD | 面对复杂的系统与众多的插件,如何确保Jenkins项目的安全性?
CloudBees在Jenkins/CBCI生态系统上建立了一个专门的安全团队。关于该团队的公开信息可以在从此链接中找到:https://www.jenkins.io/security/。由于所涉及的系统复杂且插件数量众多(见下文),许多扫描提供的信息缺少有价值的上下文,除非使用者有相应的工具经验。所以,专门的安全团队很有必要。
安全团队主要行动和责任
以下是该团队所采取的关键行动的大纲,并在适当的地方提供了链接。如需进一步信息,请发送邮件至support@cloudbees.com,或联系CloudBees授权合作伙伴——龙智(customer@shdsd.com)。
审计新插件代码的托管请求(想要进入生态系统的插件);
审计CAP中是否包含插件(希望进入CloudBees保证计划的插件);
根据插件的流行程度(基于安装数量判断),对随机插件进行主动审核;
当CloudBees发现危险模式时,进行大规模分析/调查;
由于需要涵盖2000多个插件,这对CI生态系统来说是特殊的。
Jenkins专用工具开发(jenkins-codeql和usage-in-plugins);
Jenkins插件生态系统的CodeQL自定义规则;
这些规则检测到安全专家多年来发现的常见缺陷,利用CloudBees团队的专业知识为上下文提供一些有意义的东西。
工具开发,以防止缺陷被引入。
https://github.com/jenkins-infra/jenkins-codeql
多种模式(Classes, Methods 和Fields等)的自定义代码搜索引擎。
https://github.com/jenkins-infra/usage-in-plugins
外部安全研究人员和插件维护者之间的协作/协调;
确保报告清晰,包含足够的细节;
复现不同的漏洞;
为维护人员提供建议;
审查纠正,协调发布版本。
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都测试过兼容性了,所以下载后直接可用,方便省心。
如需了解企业版Jenkins——CloudBees的详细信息,请立即联系CloudBees授权合作伙伴——龙智:
官网:www.shdsd.com
电话:400-666-7732
邮箱:marketing@shdsd.com