背景:2月23日19点,我们收到系统监控报警,服务出现故障,随后我们立刻召集相关技术人员进行定位,发现大面积服务集群无法响应,生产环境及数据遭受严重破坏。我们立刻启动紧急响应机制,并与腾讯云技术团队一起研究制定生产环境和数据修复方案。
截止到2月25日7点,我们的生产环境和数据修复都在有序的进行,我们预计2月25日晚上24点前我们的生产环境将修复完成,微盟所有新用户将可恢复服务,老用户由于数据修复时间问题,我们将提供临时过渡方案,我们预计老用户数据修复将可在2月28日晚上24点前完成。
我们事后对恶意破坏生产环境的犯罪嫌疑人进行追踪分析,成功定位到犯罪嫌疑人登录账号及IP地址,并于2月24日向宝山区公安局报案,目前犯罪嫌疑人已经被宝山区公安局进行刑事拘留,犯罪嫌疑人承认了犯罪的事实。犯罪嫌疑人乃微盟研发中心运维部核心运维人员贺某,贺某于2月23日晚18点56分通过个人VPN登入公司内网跳板机,因个人精神、生活等原因对微盟线上生产环境进行了恶意的破坏。——微盟集团
在正文开始之前,我们来重温下有名的阿西莫夫.机器人三定律,定律一:机器人不得伤害人类,或因不作为而使人类受到伤害;定律二:除非违背第一定律,机器人必须服从人类的命令。由此引申出本文一个重要的观点,人类是系统可靠性和信息安全最大的敌人。
就在前天晚上的晚餐时间,微盟出了一件大事,一个心情剧烈波动的运维同学删除了数据库,哗然一片,幸运的是,在微盟和腾讯云的努力下,相关的数据都在有条不紊的恢复当中。回溯这两年的删库事件,可以说层出不穷,有误删的,有介质损坏的,有人为的,单从这件事来说,非常严重,始作俑者被拘留,企业受到很大的损失。所以怎么吸取教训,怎么避免,下面通过微盟事件的一些细节,我们来剖析,企业的信息安全的伪壁垒。
观点一:需要什么样的权限来约束运维?
很多人纠结于当今远程办公场景下的VPN的权限,此权限不是彼权限,今天我们谈的是有关危险行为限制方面的权限,而不是运维职位所需要的履职权限。
其实人的行为比预想中的更加危险,尤其对于要害职位更甚,而这个危险一般来自于:(1)不知道这个行为有多么危险;(2)会故意的执行这个明明知道非常危险的一个行为,所以对于权限的控制首先要从对危险行为限制开始。
一直以来,笔者始终觉得在产线环境下通过命令的方式是一种非常不好的习惯,在领导前面炫技的除外。在我看来,一个公司的运维的技术能力强弱、安全管控体系是否完善完全可以通过运维人员的具体操作和权限控制来看出一二,完全人肉的敲命令显得运维能力和安全管控体系越弱,自动化平台化进行运维能力的输出,则运维能力和安全管控体系越强。
1、rm、mv、alias等危险命令应受到严格的制约;应使用尽量细化的权限认证;禁止直接使用root用户,这些耳熟能详的其实都是运维的门规,在日常运维中属于必备的checklist。可事实真的如此吗?如何通过这些有效的手段来限制这些危险的行为?
2、一个良好的运维输出能力应该是这样的,人管代码,代码管机器,而不是人管机器。大家可能还记得DevOps的宗旨,提高组织级的效率和质量,放在这里,何尝不是一种很好的解决办法,危险的行为通过机器来执行。从信息审计的角度来看,每一次的现网环境的改动,也是一点变更,也是一次环境的发布,你可以追踪,可以回溯,可以记录,可以审计。
3、我们又回到阿西莫夫.机器人三定律,定律三:除非违背第一及第二定律,机器人必须保护自己。当一些危险的行为发生时,作为系统的使用者和管理者理应进行防范,除了checklist以外,还有更好的方式吗?那就是分而治之,操作人发起操作请求,审核人审核操作请求,机器来执行请求。
4、过于放大权限的控制,其实也是不对的,这属于一种开倒车,并不是所有的动作都是具备危险行为的动作。因为故障和灾难不同,除了人为的,老天有时候也会跟你作对,介质损坏,设备故障,病毒感染都会让你的权限管控失去作用,该发生的故障都会不请自来,你的checklist、运维流程和权限系统将会毫无作用,所以需要什么样的权限来约束运维,又不会增加太多的人力物力财力,无非三点。(一)框定极具危险行为的动作;(二)平台化自动化的运维方式;(三)线上复核的流程。
观点二:备份该怎么做?
对于观点一中提到的,当你的checklist和权限控制都无法hold住的时候,你需要的是一个具备实操的备份和恢复的手段。通常来说,在没有热备份的情况下执行危险操作,不亚于开着200迈的跑车不系安全带,活着是你幸运。而在此次事故中,我们发现恢复时间是最亮的电,不亚于顺丰删库事件中的恢复时间,十分的漫长。经过仔细分析,除了始作俑者同时删除了主备两套库,只保留了冷备份,这也是不幸中的万幸,备份大家都有,那备份到底行不行?
1、备份时间的问题,全量和增量时间会影响你备份数据的数据失真,打个比方,你备份数据恢复到现网环境,在这时间段内,你对数据有一些增删改,那么你备份的数据就存在失真,所以你需要热备份,且还需要备份所有DDL和DML语句的记录。
2、恢复的验证,很多公司执行备份策略数年中,从没进行过恢复测试,其实真正有重大故障或灾难来临时,你会发现,各种问题让你恢复失败,比如介质问题、数据问题,还有操作问题。
观点三:云厂商的选择
云计算引爆了互联网的发展,越来越多的企业选择了上云,同样可以预见,云计算的明天就像今天的电力一样,完全成为了信息经济社会的基础资源。因此,云厂商的选择格外重要。对于微盟来说,事故发生后,腾讯云技术团队就第一时间与微盟对齐,研究制定修复方案,协助微盟将损失降到最低。删库事件是不幸的,但选择腾讯云又是幸运的,不难想象,如果没有腾讯云的协助,后果可以想象。
观点四:工程师的操守
在谈工程师操守前,理一下道德、制度、法律的关系,准确说靠道德和职业素养约束自身,靠制度规避风险,靠法律惩罚违规。其实所有风险完全靠技术来解决,成本将会非常的高昂,只有通过制度、技术,企业文化,价值观各个方面来预防和警戒。
对于管理者来说,要使员工有所成就,意味着要把人看成是一种有着特殊的生理与心理特点、能力、缺陷以及拥有不同行为模式的有机样本,还意味着要把人力资源看成是活生生的人而不是物。
对于工程师来说,需要的不仅仅的操守,更需要的是对法律的敬畏。
观点五:请给予更多理解
在安全管理方面,微盟确实做了很多工作,对服务和数据库的权限都有非常严格的限制。但是,在特殊情况下的远程办公期间,遇到这样的意外,实在是令人同情。据我了解,腾讯云目前正在全力以赴帮助微盟及其客户,希望在他们的一起努力下可以早日恢复。