突然之间,专用实例看起来比多租户模式要好得多! 一群研究人员(其中一人来自微软)表示,他们能够从亚马逊网络服务公司(AWS)的虚拟机提取信息,只要探查该虚拟机与其他云端虚拟机共享的CPU的缓存内容。 一篇题为《Hello from the Other Side: SSH over Robust Cache Covert Channels in the Cloud》的论文解释了从CPU缓存提取数据面临的困难,CPU缓存是一种被激烈争夺的资源,操作系统、虚拟机管理程序和应用程序都在缓存中执行频繁的操作。所有这些活动形成了许多噪音,因而无法建立起一条持久性的通信通道,论文内容详见https://cmaurice.fr/pdf/ndss17_maurice.pdf。 正如这些研究人员声称的那样,直到现在,他们才建立起了“一条高吞吐量的隐蔽通道,这条通道在亚马逊EC2上可以保持超过45 KBps的传输速率。他们甚至对它进行了加密:这种手法在缓存里面建立起了一个TCP网络,使用SSH来传输数据。” 结果听起来可怕得很:亚洲黑帽大会上的一场分会详细描述了他们的研究工作,承诺可以窥视主机的缓存内存,并将视频从一个虚拟机流式传输到另一个虚拟机,atv,详见https://www.blackhat.com/asia-17/briefings/schedule/index.html#hello-from-the-other-side-ssh-over-robust-cache-covert-channels-in-the-cloud-5376。 该论文解释,这一招并不完全是新的,但是迄今为止也没有完全得逞,那是由于人们通常认为“可以直接添加纠错码,开奖,噪音实际上消除了隐蔽通道。” 论文作者批驳了那两个观点,首先是想出了一种办法来处理错误,其次是提出了一种方法,可以调度两个虚拟机之间的通信。 论文全面细致地介绍了那些工作,称之为“基于缓存的干扰协议”(Cache-based Jamming Agreement),并将相关代码放在了GitHub上,那样你可以建立自己的完全在缓存中的隐蔽通道,或在本地,或在云端。 在云端做到这一切并非易事,因为你得先搞清楚如何搞到在同一主机上运行的两个虚拟机。2015年一篇题为《多租户公共云中的放置漏洞研究》(https://www.usenix.org/node/191017),的文章发现,这一幕在亚马逊、谷歌和Azure中有可能出现,《Hello from the Other Side: SSH over Robust Cache Covert Channels in the Cloud》的作者援引了该文章的内容。 没错,这是有点深奥。不过这也表明了为什么许多用户愿意为自己选择的云端的专用实例掏钱。我们还能发现,安全的多租户模式也许有一段路要走。 (责任编辑:本港台直播) |