Jenkins安全基线
访问控制
1.高危-启用Jenkins安全性设置
描述:
默认情况下,匿名用户没有权限,而登录的用户具有完全的控制权。用户可以使用用户名和密码登录,以执行匿名用户不可用的操作。哪些操作要求用户登录取决于所选择的授权策略及其配置。对于任何非本地(测试)Jenkins环境,应始终启用此复选框。
加固建议:
打开jenkins控制台,依次选择 系统管理->全局安全配置,勾选启用安全性设置
2.中危-配置NLP TCP端口
描述:
Jenkins使用TCP端口与通过JNLP协议启动的代理(如基于Windows的代理)进行通信。截止Jenkins 2.0,默认情况下此端口被禁用。 对于希望使用基于JNLP代理的管理员,以下两种类型的端口可供选用: 随机:随机选择JNLP端口,避免Jenkins主机发生冲突 。该方式的缺点是在Jenkins主引导期间,难以管理允许JNLP流量的防火墙规则。 固定:由Jenkins管理员选择JNLP端口,端口在Jenkins主控器的重新启动之间是一致的。这使得管理防火墙规则更容易,允许基于JNLP的代理连接到主服务器。
加固建议:
打开jenkins控制台,依次选择系统管理
->全局安全配置
,在代理配置中选择禁用,或者指定端口并配置端口
入侵防范
3.高危-Jenkins插件版本存在安全漏洞
描述:
Jenkins插件以下版本存在漏洞,容易被入侵 :
- Jenkins GitHub插件小于1.29.1
- Script Security插件小于1.55
- Pipeline: Groovy插件小于2.61
加固建议:
升级插件至最新版,完成漏洞修复
4.高危-Jenkins版本存在安全漏洞
描述:
Jenkins以下版本存在漏洞,容易被入侵 :
- Jenkins weekly 2.132 以及更早的版本。Jenkins LTS 2.121.1 以及更早的版本存在任意文件读取漏洞
- Jenkins weekly2.32之前和Jenkins LTS2.19.3的版本中存在代码执行漏洞
- Jenkins weekly1.638之前和Jenkins LTS 1.625.2之前版本中的Jenkins CLI子系统 存在反序列化远程代码执行漏洞
- Jenkins weekly 2.56之前和Jenkins LTS 2.46.1 之前存在远程代码执行漏洞
- Jenkins weekly 1.650之前和Jenkins LTS 1.642.2 存在低权限用户命令执行漏洞
- Jenkins weekly 1.650之前和Jenkins LTS 1.642.2 存在远程代码执行漏洞
加固建议:
更新服务至最新版本,完成漏洞的修复
5.高危-Jenkins未授权访问
描述:
jenkins不当配置可导致未授权访问管理控制台,可以通过脚本命令行执行系统命令。通过该漏洞,可以后台管理服务,通过脚本命令行功能执行系统命令,如反弹shell,wget写webshell文件。
加固建议:
打开jenkins页面,点击左侧的系统管理—>Configure Global Security,进入权限配置界面,确保允许账户注册和任何用户可以做任何事两个选项没有同时勾选。若使用了安全矩阵,确保anonymous用户不能具有read之外的权限
6.中危-启用CSRF保护
描述:
跨站点请求伪造(或CSRF/XSRF)是一种漏洞,它允许未经授权的第三方通过模仿另一个经过身份验证的用户对Web应用程序执行请求。在Jenkins环境的上下文中,CSRF攻击可能允许恶意actor删除项目,更改构建或修改Jenkins的系统配置。
加固建议
打开jenkins控制台,依次选择系统管理
->全局安全配置
,在CSRF Protection
中勾选防止跨站点请求伪造
复选框
身份鉴别
7.高危-选择合理的授权方式
描述
默认情况下,Jenkins支持以下的授权选项: 所有人都可以控制Jenkins。每个人都可以完全控制Jenkins,包括尚未登录的匿名用户。请勿将本设置用于本地测试Jenkins管理以外的任何其他设置。 传统模式。如果用户具有“admin”角色,他们将被授予对系统的完全控制权,否则该用户(包括匿名用户)将仅具有读访问权限。不要将本设置用于本地测试Jenkins管理以外的任何设置。 登录用户可以做任何事情。在这种模式下,每个登录的用户都可以完全控制Jenkins。根据高级选项,还可以允许或拒绝匿名用户读取Jenkins的访问权限。此模式有助于强制用户在执行操作之前登录,以便有用户操作的审计跟踪。 基于矩阵的安全性。该授权方案可以精确控制哪些用户和组能够在Jenkins环境中执行哪些操作。
加固建议:
打开jenkins控制台,依次选择系统管理
->全局安全配置
,在授权策略中选择安全矩阵
或 项目矩阵授权
进行管理,并根据实际项目需求配置授权策略.
8.高危-Jekins登录弱口令
描述:
若系统使用弱口令,存在极大的被恶意猜解入侵风险,需立即修复。
加固建议
- 浏览器输入Jenkins地址,打开Jenkins控制台
- 登录Jenkins服务web控制台,点击用户,选择要修改的用户
- 点击设置,进入设置界面
- 在密码处输入新的用户名密码,新密码应符合以下要求: 新口令应符合复杂性要求:
①长度8位以上
②包含以下四类字符中的三类字符:
- 英文大写字母(A 到 Z)
- 英文小写字母(a 到 z)
- 10 个基本数字(0 到 9)
- 非字母字符(例如 !、$、#、%、@、^、&)
③避免使用已公开的弱口令,如:abcd.1234 、admin@123等