近日,某互联网公司运维部核心人员因个人精神、生活等原因对生产环境和数据进行严重破坏。收到系统报警后经过36小时的生产环境和数据修复恢复让新用户恢复了服务可用性,但老用户仍然需要时间来恢复。由于该公司是做微店平台的,这次事件不仅给该公司自身造成了损失还给在这个平台上的商家造成了严重的损失。这个惨痛的教训原本还是可以通过一些手段和措施极大的避免的。
这件事情造成了这么大的影响,想必身为运维管理人员或是公司高管人员都充满了很多的疑惑:
第一,为什么只有系统监控,没有运维操作危险指令的监控?
第二,核心运维人员为什么有这么多的权限,而且权限都这么大?
第三,为什么没有冷备?
第四,为什么没有及时熔断机制,至少VPN可以迅速切断?
第五,为什么没有故障快速恢复措施?
第六,核心员工有如此大的心理问题是否是对公司各方面不满的一个累积?
对于这些问题可以采取如下措施来避免悲剧的再次发生:
第一,为什么只有系统监控,没有运维操作危险指令的监控?
很多公司在做监控时往往只做系统和业务层面的监控,而把安全方面的监控給忽略了,其实无论是对外还是对内的安全都要比系统和业务层面的监控来的更重要,因为一旦出现了安全信息破坏,往往是灾难性的。比较简单的做法是:
- root账号禁用,如果有人使用root账号,会立即发送报警給CTO及其它需要知道的高管。非要用root账号起的应用使用chmod u+s运行,且执行文件所属用户要设置成root,避免被篡改;
- 所有非生产非运维的,且shell是/bin/bash的用户一旦有登陆要报警;
- 生产和运维用户在主机上操作的history文件实时监控,一旦发现类似rm -rf危险命令要报警。
第二,核心运维人员为什么有这么多的权限,而且权限都这么大?
中小型公司运维人员可能没有这么多,权限往往会集中在1到2个核心人员手上,且权限都是最大权限。其实哪怕是核心运维人员也很少需要所有的权限,往往这些核心人员手上都给了过大过高的权限,可以通过如下方式来将运维人员的权限最小化:
- 云账号按部门或组分配子账号,权限根据日常操作需求最小化;
- 如需新的个人权限需要走审批流程,云平台的操作要有审计日志。如果审计日志可获取必须设置监控报警;
- 拥有运维人员和DBA的公司将权限分开,DBA负责数据库权限,运维负责主机和应用权限;
- 只有运维人员没有DBA的公司不给删除数据库的权限包括物理文件及备份文件;
- 云主机的登陆操作一律使用堡垒机平台登陆,不仅可以做到命令和脚本的执行审计还能设置禁止某些危险命令的执行;
- 所有的服务配置必须加密,运维人员无法通过查看配置文件获取数据库等权限。
第三,为什么没有冷备?
很多公司备份往往只做1个,没有异地灾备和冷备。且备份是否完整都不做验证,这个隐患是非常大的。我们可以这么做:
- 在公有云文件存储上做备份,运维只有查看权限,根据文件的大小和数量做完整性验证,一旦发现缺少文件或文件大小和服务器上不一致则报警;
- 在其它知名公有云厂商的文件存储上做冷备,账号由CTO或其他高管负责。备份如果是通过脚本执行则涉及到的服务器或账号同样是由CTO或其他高管负责;
- 数据库尽可能的使用知名云厂商公有云数据库服务,不仅是因为公有云数据库更稳定,还因为大部分公有云数据库服务的备份有限制,无法删除7天内的数据库备份。
第四,为什么没有及时熔断机制,至少VPN可以迅速切断?
VPN在很多公司当中的使用率越来越多,这个其实是好事,说明对安全有一定的要求。但是要进一步把控好VPN的权限,并设置熔断机制才行。
- 当监控到业务出现故障并且有运维危险命令执行时,迅速自动切断VPN连接,避免产生进一步的事故;
- VPN申请要走流程,且VPN申请放在IT这里,小公司可放在高管这里;
- VPN权限设备支持的话限制可访问的IP,如需更大权限需走审批流程。且更大权限要设置使用时效性;
- VPN权限设备若不支持限制可访问的IP,则需要通过防火墙或云上的安全组限制可访问的IP或只能访问TiOps堡垒机平台。且防火墙的修改权限不能直接给运维拿到。
第五,为什么没有故障快速恢复措施?
很多公司做了备份后,从来不去验证它是否能在出现灾难后能恢复,可以这么做:
- 定期做备份恢复测试;
- 有条件的要搭建灾备环境,并定期做灾备演练。灾备环境的数据库不要给运维登陆权限。
第六,核心员工有如此大的心理问题是否是对公司各方面不满的一个累积?
很多公司出现的问题,最后发现都是内部人为造成的,有时候内部人员的隐患要远远大于外部。这块也最容易被忽视。可以对员工做如下工作:
- 定期的安全培训,告知删库跑路坐牢的案例,让员工知道这个后果有多严重;
- 对运维人员的心理健康要比开发更重视,运维人员除了要完成正常上班的工作往往还要经常处理突发事件,且经常成为开发人员的甩锅对象。所以经常给运维人员的关怀和鼓励以及在表现好时候的经济奖励都是少不了的;
- 条件允许的情况下配备比常规运维人员多一个的配置,给予运维人员弹性的工作时间,安排好值班人员,哪怕最后什么事都没有,也要给值班人员额外的经济补偿;
- 定期做匿名问卷调查查看员工的心理状况和情绪;
- 定期搞团建活动释放运维人员的工作压力。
平台化是解决之道
上面提到的技术手段,还可以通过运维平台来整合,如果日常的运维操作都通过平台完成,不登录服务器,可以极大的规范运维操作,及时有恶意的内部员工,也可以极大的限制破坏范围。
新钛云服出品的TiOps多云运维平台,就具备运维审计,敏感指令拦截,批量运维功能。
所有通过TiOps的操作,都可以录屏,并回放。
TiOps支持敏感指令拦截,并有标记操作、指令提醒、指令中断、中断会话4种策略。
TiOps还在支持自己写脚本,批量运维,让大部分的运维操作都可以基于Web页面完成。
另外,TiOps还支持主流公有云、私有云、物理机、容器纳管,细粒度的权限管理。
TiOps可以让你立马拥有一套运维平台,解决云及数据中心资源纳管、审计、批量运维等运维难题,目前TiOps免费开放下载,可以到新钛云服官网(https://www.tyun.cn/tiops.html,链接也可以点击阅读原文直达)下载试用。
总结
所有的安全事故,背后都有一段伤心的故事。我们无法预测下一次悲剧将何时上演,但我们可以最大限度的避免出现这些悲剧。愿世间不再有删库跑路。
作者:秦鸣