容灾漏洞致互联网企业事故频发 支付宝携程中枪
5月27日、28日,支付宝和携程双双出现用户无法正常使用的问题,尽管事故原因并不相同,却也为互联网企业的运行安全敲响了警钟。之前并不怎么被人提起的容灾能力建设,也重新回到人们的视野。
连续两天两起事故
“说起来也真是够寸的,平时很少发生的事故这回一下就是两起,而且连续两天发生,应该是很小概率的情况。”一位互联网业内人士感慨道,他所说的小概率事件,就是上周支付宝和携程连续发生的严重事故。
5月27日下午,支付宝出现大规模瘫痪,国内很多支付宝用户在PC端和移动端均无法转账付款,这一事故持续了差不多两小时。支付宝方面对外表示,造成此次事故的原因,是由于市政施工使得杭州市萧山区某地光缆被挖断,进而导致支付宝一个主要机房受影响。
无独有偶,第二天,携程又出事了。从当天中午开始,携程官方网站及APP出现了无法正常使用的情况,更为严重的是,这一事故持续了12个小时才被修复,这也引发了外界对携程的种种猜测。最终携程方面给出的解释是,由于员工错误操作,删除了生产服务器上的执行代码。
中国领先的CDN服务提供商蓝汛通信的技术专家表示,像支付宝和携程这么严重的事故确实很少见,连续两天发生更是罕见。该专家介绍,互联网企业发生事故,可以分为机器级和机房级两类,前者主要原因是系统架构不是很好,遇到访问量过多会带来“宕机”;后者则主要是外部攻击造成的,会造成机房的瘫痪。“机器级的故障主要是实力较弱的互联网企业会遇到,像支付宝、携程这样的大企业,这一类问题应该不会发生在他们身上了。能够给这样的企业带来威胁的,一般就是机房级的故障了。”
机房级事故之前也是偶有发生。例如,2013年7月,由于上海一条光缆被挖断,就导致微信在很多地区无法正常使用,时间长达7小时;2014年10月,也是因为上海机房出现故障,导致微信全国大面积故障2小时。
容灾建设不容忽视
“虽然这一次的两起事故看似很偶然,可也能反映出互联网企业在容灾能力上的漏洞,而漏洞的存在,又使得事故迟早会发生。”蓝汛方面表示。容灾是指企业对于可能发生的系统故障的防范性准备,比较准确的解释是“建立两套或多套功能相同的IT系统,当一处系统停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。”
据业内人士向记者介绍,根据容灾系统对灾难的抵抗程度,可分为数据容灾和应用容灾。数据容灾是指建立一个异地的数据系统,对关键的数据进行备份存储,当故障造成本地数据丢失时,可以通过备份找回;应用容灾层次更高,即在异地建立一套完整的、与本地数据系统相当的备份应用系统,在灾难出现后,远程应用系统迅速接管或承担本地应用系统的业务运行。业内人士称,现在对于数据安全的重要性,多数互联网企业都有清楚的认识,数据的备份都做得比较完备,这方面出问题的可能性不大,可能会出现问题的,还主要是在应用容灾上。
蓝汛技术专家介绍,容灾企业建设主要有三种方式,一种是冷备份,也就是备份服务器平时并不运行,只有发生事故后才开机启动,这种备份方式由于需要启动,系统恢复的时间会比较长;一种是热备份,备份站点也和主站一样处于运行状态,但只备份数据,不承担业务,只有当出现意外情况时,备份站点才接替主站点的业务,这种备份方式也会存在一定的时延;另外一种就是异地双活的容灾方式,也就是在相隔较远的地方分别建立两个机房,且都处于工作状态,共同承担日常运行工作,一旦其中一个出现意外,则另一个承担起全部工作。直观地说,异地双活的方式,就好比一个人可以完成的工作,在日常却安排两个人来同时完成,当其中一个人有事不能工作时,另一个人可以独立完成。相比其他方式,异地双活的容灾,对意外情况的响应几乎可以做到零时延,可能用户根本就不会感觉到就实现切换了。
分析
事故背后的容灾漏洞
“这次的两件事原因完全不同,支付宝的事故可以说是天灾,携程就完全是人祸了。”有多年灾备工作经验的某公司信息安全部总监刘小雄对记者分析,支付宝的事故偶然因素更大,提前预防的难度也更大,而携程的事故则完全是内部问题。不过,这两起事故都反映出两家企业在容灾工作上的不足和漏洞。
支付宝 机房建设或存在不足
支付宝此次的事故,根源是机房光缆被挖断,从这个角度讲,有一定“不可抗力”的因素,但是也不能说支付宝本身就不存在任何问题。
蓝汛技术专家认为,支付宝对外宣称自己的容灾方式是“异地双活”,但是从实际处理来看,用户受到影响的时间还是长达2小时,如果是真正做到了“异地双活”,就不应该有这2个小时的服务中断,由此可以推断,支付宝的容灾系统可能并没有真正做到异地双活。不过他也表示,支付宝与其他互联网企业不同,它的业务是交易类的,实时的数据交互量非常庞大,想要做到异地双活,技术难度非常大。“说实话,以阿里的实力,如果支付宝都做不到,那其他互联网企业就更不用说了。”
这位技术专家还指出,从支付宝的故障进行倒推,其在机房的建设上也可能存在着不足。按照施工规范,连接两个机房之间起码要有两条独立的链路,而且两条链路要走不同的路线,当其中的一条被挖断时,就不会影响到两个机房间的数据传输。
携程 缺乏应急预案和演练
对于携程遇到的事故,容灾方面的专家认为,其原因更多的是携程本身应对的问题,如果应对得当,事故影响是可以降低的。
刘小雄认为,从携程此次事故的细节判断,携程给出的解释似乎不大能站得住脚。“单纯的误操作很难带来这么大的影响,它说是一些执行代码被误删除了,可线上和源头同时被删除的可能性是非常低的。”刘小雄判断,携程出问题的真正原因应该是遭遇到了网络攻击,或者是在应对攻击时维护人员出现了重大失误,或者是纯粹的外界攻击对它造成了破坏,“不管怎么说,我觉得网络攻击都是造成其严重事故的主因。”
他表示,网络公司如果发现及时应对得当,是可以抵御或者降低危害的,可携程的问题说明,他们或者没有及时发现恶意攻击,或者是安全防护人员能力较差,才会造成如此后果。
蓝汛相关人士也认为,从携程的应对来看,其明显缺乏对此类情况的处置预案,似乎没有做过相应的演练,否则按照预案与日常演练进行处理,不会用12个小时才恢复正常。“对紧急情况缺乏预案和演练的互联网企业应该不在少数。”
追访
防范风险容灾建设要合规
“出了事的认倒霉,没出事的看热闹。”刘小雄称,这是不少互联网企业之前对于严重事故的态度,出过事的可能会对原有流程和设备进行完善,而没有出过事的可能还抱着侥幸心理不加重视。不过,在支付宝和携程的事故之后,多数互联网企业还是应该会有所触动的。“不只是企业自身,今后国家可能也会向企业提出更高的安全要求。”
刘小雄表示,想要避免出现严重的安全事故,企业对容灾的重视程度和相关制度的合规非常重要。他介绍,在一些大型互联网公司,主要业务部门必须有灾备方案,还必须接受对灾备预案和演练情况的审核。此外,公司本身也有对于容灾的严格规定。“比如我们内部的容灾分为三个步骤,第一是明确哪些业务需要进行容灾;第二是按照业务的实际情况每半年或者一年进行一次容灾演练;第三就是当突发情况真的发生时,按照预案和演练进行操作就可以了。”
他认为,一些企业存在误解,认为容灾会增加成本,实际上如果容灾没有做好,出现事故,所带来的损失要远大于容灾的投入。