过去六个月,AWS为了应对Xen安全漏洞,已经两次重启云服务器。根据Gartner去年的估计,AmazonWebServices的整体规模已达到其下14个竞争对手基础设施规模总和的五倍。顺带一提,这些设备都运行着定制版的开源Xenhypervisor,这意味着如果这部分Xen代码存在安全漏洞,AWS将受到很大影响。在过去六个月中,AWS已两次重启其ElasticComputeCloud(EC2)服务器以应对Xen安全漏洞。2014年9月,约10%的EC2实例出现重启,而就在本周AWS再次宣布其整体实例中约有0.1%需要安装安全补丁并重启。虽然这个比例听起来并不高,但从AWS运营规模来看,实际涉及的设备数量还是相当多的。在Xen代码中发现安全漏洞对AWS的内部结构有何影响?SteveSchmidtAnswerSteveSchmidt同志要忙一段时间(并不是说他还没有为这种情况做好准备)。Schmidt是AWS的安全工程副总裁兼首席信息安全官(CISO)——他还曾在FBI担任部门主管。他目前负责AWS的云安全。去年11月,我们在AWSre:Invent大会上与施密特进行了面对面交流,请他谈谈去年9月史无前例的重大重启事件期间AWS内部云运营的变化。漏洞验证AWS可谓是Xen代码的大用户,所以该公司的高层也是开源社区中最先知道Xen存在安全漏洞的群体。一旦出现这种情况,Schmidt和他的团队的首要任务之一就是检查问题是否影响了AWS。该公司在正式公开之前通过定期检查发现了Xen中的各种安全漏洞。这使他们能够提前验证该漏洞是否影响AWS,并据此做出补丁开发和安装决策。“Xen是一个庞大的软件包,其中有很多部分与AWS的实际运行完全无关,”施密特指出。事实上,大多数Xen安全漏洞并不影响AWS,因为该公司已经开发了自己的定制版Xen。AWS从中移除了所有不必要的Xen功能,一方面确保定制的开源代码在公司独特的用例中能够发挥最佳性能,同时也将其安全漏洞性的可能性降到最低。但AWS还做出了另一个决定:不只是使用一个版本的Xen,而是引入多个版本。“我们有意区分不同服务之间的基础设施解决方案,”他指出。“我们当然不希望一切都一样,因为如果一个问题影响设施,那么单一版本机制意味着它会影响一切。”AWS在多个不同的服务和区域版本中使用不同的自定义Xen,并且每个版本都使用非通用的开源代码。内部攻击如果AWS云受到影响,那么公司会选择走出去,实施技术突破。“我们建立了一组测试场景,看看我们是否可以触发安全漏洞,”施密特说。从那时起,他们还开展了广泛的测试工作,以了解恶意行为者是否利用此漏洞来破坏AWS。与此同时,另一个安全技术团队已经完成了补丁的构建,并在AWS上运行的各种Xen版本上进行了测试,希望能够满足其对安全和性能水平的需求。有时安装补丁需要重新启动硬件,在过去六个月中已经发生过两次。并且与普通PC类似,有些更新和补丁安装后需要重启,有些则不需要。AWS应用的大多数补丁不需要重启;AWS对其系统进行了结构化,以最大限度地减少因打补丁而导致的服务重启次数。“我们付出了很多努力来尽可能避免重启,”施密特指出。如果Schmidt和他的团队发现不重启安装“在技术上不可行”,公司将在实施重启之前通知客户。可怕的重启过程“这个想法本身其实非常简单,”施密特谈到去年9月的大规模重启时说。“我们找不到不重启就给服务打补丁的方法,所以我们选择重启。”本案的复杂之处在于,AWS必须诚实地通知客户其部分EC2实例需要重启,但他们无法坦诚地公布原因。AWS绝不能公开宣布安全漏洞的存在并将其告知自己或其他Xen用户。不过客户在这期间要做好随时重启的准备,用户也需要采取一系列的措施来保证自己的系统不会因为重启或者虚拟机故障而受到影响。解决方案之一是将其系统设计为无状态方案,这样在重启或虚拟机故障时,应用程序将以无损故障转移的方式运行在其他正常的虚拟机环境中。去年9月,我们就此采访了一系列AWS用户,他们大多表示重启并没有造成严重问题。为云环境开发的应用程序往往内置了容错能力,但传统应用程序的迁移过程可能会带来更多麻烦。施密特指出,AWS一直在努力提高其服务性能:无论是在技术方面,还是在避免虚拟机重启方面。此外,公司还希望能够让客户及时获得相关信息。相关工作包括赞助学术研究以及如何使用它来帮助Xen服务器在不重新启动的情况下执行修补程序。原标题:存在Xen漏洞时亚马逊内部会发生什么
