这两天开源配置管理工具 saltstack 爆出了CVSS得分为10分的漏洞。如果你对CVSS的评分没有概念,那么前几年震惊互联网的 openssl心脏滴血漏洞,CVSS base评分是5.0,由此可知这次爆出来的 saltsatck 漏洞是多么严重。
![Saltstack极高危漏洞: 可获取master权限](https://wpfile.debian.cn/uploads/2020/05/saltstack_800x251.png)
漏洞信息:
该漏洞是 F-secure 研究人员在3月份发现的,目前该漏洞已经在最新版本中修复。本次极高危漏洞,是由两个不同的漏洞引起的,一个是身份验证绕过漏洞 CVE-2020-11651,一个是目录遍历漏洞没有过滤掉不受信任的输入 CVE-2020-11652,从而导致攻击者可以不受限制的访问 salt-master 的整个文件系统。
攻击者获取salt-master的权限后,便可以控制整个被salt-master管理的数据中心的各主机节点。
修复方案:
- 将 saltstack 版本更新至最新版本
- 添加ACL控制,禁止其他用户访问salt-master的4505、4506端口。
- 将 saltstack 部署在内网中,目前saltstack的对于身份验证和鉴权还不足以安全的将其暴露在公网
漏洞爆出后,saltstack催促用户尽快应用 saltstack 官方推荐的加固方案 。如果你不想看英文,可参考以下要点:
系统的安全设置
1. 限制可以登录到salt-master的人员
2. 登录salt-master通过ssh密钥登录,并在密钥中添加密码验证
3. 妥善保管好你的ssh私钥
4. 通过堡垒机或者VPN来登录salt-master
5. 限制对外暴露的端口的数量
6. 保持系统补丁更新
7. 将安全提高到高优先级列表中
Salt的安全设置
1. 订阅salt官方的通告,以便接收最新的通知
2. 使用salt acl系统来限制salt-minion的root权限
3. 使用salt acl系统来限制salt-minion可以执行哪些命令
4. 使用外部的pillar管理工具来替代登录到系统中修改文件的方式
5. 将sls文件通过版本控制工具管理起来,并经过评审后在生产环境中执行
6. 如果要将salt-master暴露给外部服务,要用salt-api\ssl并通过验证
7. salt-minion通过event系统和reactor来向master通信,而不是直接访问salt-master
8. salt-master运行在非root用户下
9. 禁用部分模块加载到minion上,例如cmd模块
10. 阅读完所有的master和minion的注释,其中有大量关于安全防护的说明
11. 特别敏感的minion可以运行在无主环境,通过salt-ssh或者modules.sudo模块来进一步控制
12. 监控salt的日志
总结
对于运维人员来说,安全是非常重要的一个环节,维护生产环境必须遵守权限最小化的思想,即使这可能给你添了一些麻烦,但相比于数据泄密、数据丢失,提前预防的代价还是要小很多。
本次漏洞级别虽然比较高,但是在日常运维工作中已经控制了端口的访问权限,那么本次漏洞你只需要排期更新salt版本即可。