最近,一群多个大学的研究员和RSA实验室一种隐匿的边信道攻击方法,即一台虚拟机可以在一个云环境中用来对抗另外的一台虚拟机,目标VM的加密密钥最终被盗用。
这项研究会产生什么影响呢?任何已经用目标虚拟机(VM)密钥加密的敏感数据将会被盗用,对于一个坚定的攻击者,这将使一座潜在的巨大宝藏。
尽管企业云计算[注]用户应该担忧这项研究,但是如果有一些合适的措施还是能够减轻并对抗这样的边信道攻击的。这也正是我们这条技巧文章所要探讨的内容。
交叉VM边信道攻击详解
需要指出的是这项研究并不是成功的基于云的边信道工具的第一份文档案例。在2009年,加利福尼亚大学和MIT的研究员就已经发布了《Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds》,这篇论文揭露了基于云的VM的映射位置,通过称之为云制图的网络扫描策略实现。他们故意放置了一个恶意VM在相同的物理hypervisor平台上,随后访问共享硬件和缓存位置,执行各种边信道工具,包括拒绝服务(DoS)、硬件利用率检测、通过定时推理进行远程键入监控。这篇论文具体参考了边信道攻击的使用,抽取密码关键字,但是指出研究员使用的这种方法那会并不能足以访问那个目标密钥。
快速回到现在,研究员有了新的努力,其文档名为《In Cross-VM Side Channels and Their Use to Extract Private Keys》,已经使用类似的边信道攻击成功命中密码关键字。为了实现这个复杂的攻击,研究员在VM和加载满数据的缓存之间利用一个共享的硬件缓存攻击机器。目标VM重写一些自己的数据,包括密码关键字的信息。数据重写的方式允许研究员最终截获4096位盖默尔加密密钥,这些密钥使用GNU Privacy Guard应用。
对于安全和运营团队的好消息就是这种类型的攻击尽管不切实际,除了最尖端的攻击者。坏消息是这种类型的攻击在正确的条件下可能发生。由于缺少技术细节,很多从云提供商接收技术和架构的企业都位于提供商环境中,真正的边信道攻击可能难以实现。
预防边信道攻击
IT安全和运营专家在这一点上要问两个问题:“这种类型的攻击可能出现在我的环境中吗?”和“我怎样做来减轻这种威胁?”第一个问题的答案是“NO”。没有关于这个环境非常详细的细节,部分细节和控制整个hypervisor基础加固和这些平台使用的VM,攻击者很难发动边信道攻击,尤其是更加复杂的种类,比如密码关键字劫持。然而,有一些基本的步骤企业需要关心,从而帮助减少可能的边信道攻击风险。
首先,尽可能锁定操作系统(OS)图像和应用实例。尽管这未必是预防边信道攻击的,但这些步骤可以协助企业对任何授权的厂商在其环境中妥协。第二,花时间协调和收集云系统本地流程监控数据和日志。特别的,密切关注任何对于本地内存的重复访问,以及系统对于任何hypervisor流程或者共享硬件缓存的访问。除了这些步骤,唯一且完全能阻止这种边信道攻击的方法就是编码你的应用,甚至是OS组件(在可能的地方),以这样的方式他们可以访问共享资源,就像在一种一贯且可预测的方式中访问内存缓存。这样就能预防攻击者钻空子,比如时间统计和其他行为属性。
边信道攻击潜在风险探讨
边信道攻击很可能在共享计算环境中继续被发现。对于云用户,这是一种在云端执行敏感工作负载必须考虑的一种风险。我建议同你的云提供商探讨这些风险和可能的对抗措施。尽管在今天这样的环境中成功实现这种攻击极为不可能,但是最好还是做好准备。