阿里云 9 月 1 日安骑士升级故障真相

  • 魏星

2015 年 9 月 10 日

话题:安全云计算DevOps语言 & 开发架构文化 & 方法ArchSummit阿里云

2015 年 9 月 1 日,阿里云官方发布公告向用户致歉,称“因云盾安骑士 server 组件的恶意文件查杀功能升级触发了 bug,导致部分服务器的少量可执行文件被误隔离……对于受影响的客户,我们将立即启动百倍时间赔偿”。9 月 3 日,云盾负责人吴瀚清在自己的微信公众号发布了《危机时刻,我只心疼我们的客户》对事故进行总结。InfoQ 针对此次事故采访了云盾负责人吴瀚清。

InfoQ:请您简单介绍一下自己以及在阿里云负责的工作内容。

吴瀚清:我现在阿里云主要是负责云盾这个安全品牌。我们想把云盾建设成为互联网安全的基础设施,中国 IT 的大环境跟国外相比还不够成熟,在云计算安全方面有一些基本的攻防问题需要解决。我们的很多客户对安全并不了解,但是他们的业务有很强的安全需求,所以我们想帮助客户多解决一些这方面的问题,这是云盾诞生的前提。所以我们在云盾里推出了许多产品,比如像 DDoS 防护产品,比如这次出故障的安骑士,这是一款服务器安全产品,主要防止黑客入侵,另外还有一些 Web 应用防火墙,等等。

InfoQ:能描述一下这次事故的具体过程和技术细节吗?

吴瀚清:这次故障发生在 9 月 1 号早上,我们一位安骑士服务端的研发工程师修改了一行代码,由于改动很小所以就绕过了整个测试的流程,直接把代码发布上线了。发布到第一批机器并观察了半小时之后,并没有发现异常问题,于是这位工程师把剩余的机器也发布上线了。到 11 点 40 多的时候,客服开始接到工单,用户反映新启的进程被杀掉、程序文件也被删除。我们在 12 点的时候定位到了问题,同时对这次发布进行了回滚,制止了问题的蔓延。但是之前反馈问题的用户,需要一个文件恢复的过程。我们在系统设计的时候,对于这种异常情况估计不足,尤其是这次情况特殊,并没有批量恢复的机制。因此,我们需要临时写一个程序,下发到受影响的客户服务器上,帮助客户恢复被删除的文件。下午 3 点多的时候我们写完了这个程序,并进行了一些调试,下午 5 点的时候对程序正式下发,下午 7 点多的时候恢复了受影响的客户文件。

在故障发生的时候,很多客户在微博上情绪比较激动,也有一些人借着这个故障在造谣,说阿里云的信息产生了泄漏,这个事情其实是不属实的。阿里云官方也进行了辟谣,这纯粹是一个技术上的故障,跟安全问题没有太大的关系。

InfoQ:刚才您说工程师改了一行代码造成了这次事故,关于这行代码的细节,您能说一下吗?

吴瀚清:安骑士有一个功能是恶意文件查杀,这个功能有一个黑名单机制,这个黑名单是人工运营的,我们会把人工确认过的恶意文件加入到这个黑名单中。这行代码的逻辑有一个条件判断错误——把所有新启动的文件全部判断为了恶意文件,被加进黑名单中的文件进程于是被阻断、文件被删除。

InfoQ:云盾作为一个明星产品,此次安骑士 server 组件上线有没有经过严格的测试并灰度发布?你们的发布流程是怎样的?

吴瀚清:这次是灰度发布的。工程师首先发布了一部分机器,然后观察了半个多小时之后才把剩下的都发布到线上,但是在灰度发布的过程中我们的报警阈值的设置是有缺陷的,没有在第一时间发现这个问题。我们在客户端的发布是有严格的灰度发布流程,整个客户端的发布大概要经过 1~2 个月的时间。但这一次是 Server 端的灰度发布,这个机制还不完善,这也是我们接下来要改进的重点。

InfoQ:在V2EX 论坛上有用户称将卸载云盾,阿里云官方也给出了卸载方案,目前有多少用户卸载了云盾产品?

吴瀚清:这个具体数据不是很方便透露,但是卸载的用户不是很多,大部分用户还是选择相信我们。

InfoQ:很多云平台开放了 API 供第三方开发相关产品,阿里云上第三方安全产品生态如何?

吴瀚清:阿里云上第三方的安全产品已经有一、二十家了,我们现在也在积极联系国内和国外的安全厂商,帮助他们的安全产品上云。但是阿里云深层的 API 和网络架构也在进行调整以及设计的过程中,国内有几家大的安全厂商正在跟我们一起参与设计,一些重量级的虚拟化的安全产品正在入驻我们的云市场。

InfoQ:已经在阿里云上线的这一、二十家安全产品主要是哪些类别?

吴瀚清:主要是一些服务类的产品,比如渗透测试类、主机加固类,也有一些是服务器安全检查的工具。

InfoQ:官方公告“百倍时间赔偿”是否意味着对用户造成的影响十分严重?用户目前对赔偿方案有什么反应?

吴瀚清:“百倍时间赔偿”好像除了阿里云也没有其他家做这样的事情,这是阿里云定下的一个策略。实际上我们跟运营商去谈的时候也很难有这样的处理机制,运营商根本不知道你的业务跑的是什么东西,所以很难对你的业务进行定量的评估。从这一点上来说,阿里云“百倍时间赔偿”还是比较有诚意。在微博上也可以看到用户的一些反馈,我也能理解用户的业务损失可能远远不止这百倍时间的赔偿,但是我们目前也只能做到这一步了。

InfoQ:方便透露一下阿里云对这次事故的内部总结与处置措施吗?

吴瀚清:主要是四个方面。第一是研发流程进一步的夯实,我们会有专门的运营体系和团队来改进我们的研发流程;第二是我们的监控和报警体制会进一步的完善,这一次也暴露出来了这方面的问题;第三是我们的产品架构设计会重新调整,一些强的功能、带有自保护的功能会上线;最后我们会对组织架构进行一些调整,通过管理来保障未来不再发生这样的事情。

从产品策略的角度来说,我们会更明显地告知用户安骑士都做了哪些事情;同时我们会把安骑士变成一个用户可关闭、可卸载的产品,过去我们做的不好的地方我们会一一把它改善。

InfoQ:产品层面我想追问一下,阿里云会不会加大第三方安全产品在阿里云上的扶植力度?

吴瀚清:我们一直都是鼓励的态度,这其实和云盾本身是没有太大关系的。我们只是画了一条线,就是阿里云的安全都是包含了哪些东西——这是我们看到的云计算安全应该要有的功能和服务。但这不是说其他的第三方安全厂商不能来做,我们非常希望——也非常鼓励第三方安全厂商入驻阿里云。

InfoQ:感谢您接受我们的采访,谢谢。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

安全云计算DevOps语言 & 开发架构文化 & 方法ArchSummit阿里云