delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

18 Apr 2014

Heartbleed之危机公关处理

这次 Heartbleed 安全漏洞之后,阿里巴巴集团的多个产品均迅速修复了漏洞(好事),但事后的公关处理做的却有待改进。

我在微博上看到有人转发 阿里安全 在4月9日13:01发表的一篇微博,内容如下:

关于OpenSSL某些版本存在基于基础协议的通用漏洞,阿里各网站已经在第一时间进行了修复处理,目前已经处理完毕,包括淘宝、天猫、支付宝等各大网站都确认可以放心使用。

紧接着, 支付宝 转发了 这条微博:

大家可以放心了!

我并不是阿里巴巴/支付宝的客户,不过看到有人转发这条消息,我半开玩笑地 回了一句:

冲这句"大家可以放心了"就没法放心了……

有疑似工作人员的同学在我这条微博下面发表了评论,并指出真实情况可能会吓到用户。但坦率地说,我还是认为这样的公关做法是不对的,公众在发生这类重大安全问题的时候,了解全部事实有助于消除他们的恐惧心理。

我为什么说冲这句"大家可以放心了"就没法放心了呢?原因很简单,一句简单的"大家可以放心了"给我的第一印象是相关的工作人员并没有向公司的公关部门交代清楚到底发生了什么,以及它的影响是什么:给服务器运行的软件升级只是万里长征的第一步而已,而假如公关部门认为这件事只要升级之后就可以忽略全部其他问题的影响,并且向公众如此宣示,那么公众很可能就不会再继续关注这起事件,而忽略了必要的自我保护的措施。

这种忽视对于用户和支付宝都是不利的。在用户方面,由于缺乏必要的保护措施,很可能导致不必要的损失,而由于这种损失并不完全是用户的问题,用户很可能进一步向支付宝求偿。假如发生这种情况,除了双方会有经济损失之外,也会对支付宝产品的声誉以及用户信心发生影响。

我认为PR部门应该根据初步的评估做出:“我们的系统未受影响。““我们的系统受影响,但问题已经修复,我们将会通知所有受影响的用户。“这样的的宣布。具体到 Heartbleed 这个问题上,仅仅修补软件漏洞是远远不够的,由于攻击者有可能已经窃取了证书的私钥(透过简单的如架设假基站、开放wifi热点,或较为复杂的、配合DNS投毒的攻击手段,攻击者可以架设和真正网站一模一样的网站而不被用户发现),因此作为补救措施,网站的运营者只有在先修补了软件问题,并更换了所有证书并撤销旧证书(这是很容易忽略的一步)之后,才可以认为问题已经完成了"修复处理”。

在用户方面,则需要对自己所受的影响做出一定的评估。例如,网站运营者至少应根据运营日志给出一个大致的时间点:某年月日(升级到受影响的 OpenSSL 1.0.1)到某年月日(完成修复处理)之间登录的用户,其信息存在失窃之虞。由于这本质上是一个缓冲区过读问题,攻击者可以完美地伪装请求(没有有效的方法知道攻击者在什么时候进行了攻击:系统日志中不会记录什么时候收到了来自谁的心跳信号;即使知道,也没有有效的方法知道到底哪些内存内容遭到了泄密),除了根据运营日志的记录来查询用户的登录日志之外,事实上没有很好的办法知道哪些用户受到了影响。对于一个安全性非常重要的网站而言,此时最稳妥的做法就是首先假定所有用户都受到了影响,然后尽量找到那些一定没有受到影响的用户,然后通知两者的差集。

作为电子商务网站,由于用户在使用过程中可能会输入信用卡号,因此这些信用卡号也同样有泄露的风险。网站方面可以做的事情不多,但应在用户登录后明确告知用户哪些信用卡信息有可能发生泄露,应关注账单异常等等。

当然,我没有支付宝账户,而且即使在平时我也有经常改密码和查看信用卡对帐单的习惯,因此我确实是可以放心的。