窃取虚拟机上的敏感数据:基于JavaScript的DRAM攻击

本文讲的是窃取虚拟机上的敏感数据:基于JavaScript的DRAM攻击,1月5日,研究人员揭示动态随机存取存储器(DRAM)攻击新方法,恶意黑客可用JavaScript,通过隐秘通道,秘密盗取虚拟机上的敏感数据。

安德斯·福格,G DATA Advanced Analytics 首席恶意软件分析师;迈克尔·舒瓦茨,奥地利格拉茨技术大学博士研究生。两位研究人员描述了当前DRAM设计上的安全问题,展示了一些实际的跨CPU攻击。该项研究的第一部分在8月份的25届USENIX安全研讨会上已被提出。

2016黑帽欧洲大会上,福格和舒瓦茨展示了利用实体机Web浏览器中运行的JavaScript脚本代码,从不联网的虚拟机中盗取小量敏感信息,比如口令或私钥一类的。他们还演示了对Rowhammer攻击的改进,证明了与之前以为的不同,Rowhammer对DDR4也起效。

采用虚拟地址,让在同个CPU上安全运行多个进程成为可能。然而,在与DRAM通信的时候,CPU需要的是物理地址,所以虚拟地址必须得映射到物理地址空间。

处理器内存控制器所用的映射函数是非公开的,但福格和舒瓦茨的团队,通过测量CPU从存储区读取数据的时间,成功逆向工程了该函数。用于逆向非公开DRAM地址映射函数的工具,被研究人员作为开源代码发布了出来。

与人们熟知且有有效应对措施的缓存攻击不同,DRAMA(DRAM地址解析)攻击具备跨CPU的特性。不过,二者之间还是存在某些相似性。

我们发现,DRAM中使用的缓冲区,表现出与CPU缓存非常相似的行为。我们利用了DRAM缓冲区的时间差来发起攻击。利用时间差是基于缓存的攻击惯用的技术。DRAM攻击的一大优势在于,它们不需要任何共享内存。而且,很多情况下,主内存也是CPU间共享的,意味着我们甚至可以在跨CPU的场景中应用这种攻击。
福格和舒瓦茨没有在实体机系统上运行任何二进制程序,也没有利用任何软件漏洞,就能在实体机和托管其上的虚拟机之间打开一个秘密通道。虚拟机里运行的发送方,以及实体机浏览器里运行的接收方,商定一块存储区,该存储区可以是硬编码的。通过测量访问时间,如果访问很快,就发送比特“0”,如果访问很慢,就发送比特“1”。

研究人员还展示了如何利用该技术盗取虚拟机的键盘输入。这种情况下,攻击者需要对系统进行分析,识别出他们想要监视的事件。他们可以诱骗受害者访问某个包含恶意JavaScript代码的网页,或者利用恶意广告攻击。

专家称,用于渗漏数据的内存有可能被另一应用程序占用,造成数据损害;不过该几率非常小,且他们实现的攻击包含了防止这种情况发生的错误检测代码。为使渗漏更加高效,数据传输采用了封包方式,每个数据包包含一个序列位,标识该包是新的还是重复传输的。

研究人员在该JavaScript攻击中获得了每秒11比特的传输率。但是,同样的攻击若以本地代码实现将会快得多——若以受保护域(比如虚拟机)中的恶意代码和实体机上运行的恶意软件实现,传输率可达 600 Kbps,若使用了同个CPU,甚至还能更快。

虽然该研究主要针对 Intel x86-64,但其深层问题出在RAM中。研究人员已经证实,其他架构也受影响,包括智能手机使用的ARM处理器。

由于此类攻击源于DRAM的设计和运行方式,研究人员认为缓解起来不会太容易。不过,他们指出,虽然漏洞很严重,未来几年里我们还是不太可能看到此类攻击泛滥。该研究的目的,是引起关注,证明硬件也需要变得安全——软件可不是唯一的问题点。

时间: 2024-09-11 11:10:55

窃取虚拟机上的敏感数据:基于JavaScript的DRAM攻击的相关文章

如何抵御基于 JavaScript 的 DDoS 攻击

DDoS攻击技术正在快速演化,最近出现的基于JavaScript的DDoS攻击具 有一个与众不同的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限.现代网站的绝大多数互动采用的都是JavaScript. JavaScript脚本可直接植入HTML中,或者是从远程服务器载入.JavaScript攻击主要发生在共享JavaScript脚本在第三方服务 器上被替换,或者是在传输过程中被中间人替换.对于屏蔽服务器上被替换的脚本,目前HTTP还没有相关机制,但W3C已经提出了名叫子资源完整性

在虚拟机上运行基于chromium的浏览器,执行javascript alert(),求回答

问题描述 在虚拟机上运行基于chromium的浏览器,执行javascript alert(),求回答 alert框,ok按钮显示不全 解决方案 打开浏览器,点"工具"→"管理加载项"那里禁用所有可疑插件,或者你能准确知道没问题的保留.然后→工具→INTERNET选项→常规页面→删除cookies→删除文件→钩选删除所有脱机内容→确定→设置使用的磁盘空间为:8MB或以下→确定,再试试看吧

convirt2.5在虚拟机上安装笔记

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">convirt2.5在虚拟机上安装笔记</span> 简介:ConVirt开源是业内领先的Xen/KVM开源管理产品, 使企业能够以集中的方式管理其虚拟环境.ConVirt开源支持企业通过一个交互式的Web用户界面进行虚拟机部署.性能诊断.负载均衡.ConVirt开源对用户完

快速使用Windows Azure虚拟机上的SharePoint 2013

为了在当今的企业环境中占据一席之地,您需要能够迅速顺应变化和应对挑战.有时,需要及时调整您的 SharePoint 基础结构以保持竞争优势. 基础结构即服务可通过随时使用.即付即用的解决方案应对这些挑战,也就是说,无论是要部署基于 SharePoint 的单个 Internet 站点还是快速配置开发环境,您都可以在几个小时(而非数天)内进行部署. 使用 Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure 虚拟机

Linux有问必答:如何在VMware ESXi虚拟机上设置静态MAC地址

Linux有问必答:如何在VMware ESXi虚拟机上设置静态MAC地址 问题:我想给VMware ESXi上的一台虚拟机分配一个静态的MAC地址.然而当我开始这么做的时候,虚拟机就不能启动了,并且抛出了一个这样一个错误"00:0c:29:1f:4a:ab is not an allowed static Ethernet address. It conflicts with VMware reserved MACs"(00:0c:29:1f:4a:ab不是一个合法的静态以太网地址.

基于JavaScript的REST客户端框架

现在REST是一个比较热门的概念,REST已经成为一个在Web上越来越常用的应用,基于REST的Web服务越来越多,包括Twitter在内的微博客都是用REST做为对外的API,先前我曾经介绍过"基于REST架构的Web Service设计",并给出了一些服务器端和客户端代码,随着JavaScript的广泛应用,我这里就给出一个轻量级的基于JavaScript的REST客户端框架. 这个JavaScript客户端主要使用了XMLHttpRequest对象来实现通过HTTP对服务器操作G

在虚拟机上安装SQL 2005 没有服务器名称

今天在虚拟机上做实验,安装SQL 05 没有服务器名称 在摆渡和谷哥两位大神的帮助下,找到解决方法 必须安装一个SQL补丁才行,前提是安装Microsoft .NET Framework 2.0 和Microsoft Core XML Services (MSXML) 6.0 默认正常安装了SQL Server 2005这两个都是安全完毕了的! 补丁是 SQLEXPR32_CHS.EXE和SQLEXPR_CHS.EXE 前者是32位的,后者是64位的,大家看自己需求进行下载 下载地址: http

虚拟机上添加一块新硬盘并创建lvm裸设备给oracle使用的过程

下面是在虚拟机上添加一块新硬盘,并创建lvm裸设备给oracle使用的过程,和大家一起学习,有不正确的地方希望指导,谢谢. linux系统是 AS4 update 7 实验前,先了解一些基本概念,如下: LVM(Logicl Volume Manager),逻辑卷管理器,通过使用逻辑卷管理器对硬盘存储设备进行管理,可以实现硬盘空间的动态划分和调整. 一. 基本概念 1. 物理卷-----PV(Physical Volume) 物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是

试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试

测试环境:Windows Azure上海机房,虚拟机配置为大型(四核,7 GB 内存),磁盘情况见下图. 数据库备份压缩文件大于为12.0 GB (12,914,327,552 bytes),放置于Temporary Storage(D:). 数据库恢复操作命令如下: RESTORE DATABASE [cnblogstext] FROM DISK = N'D:\cnblogstext.bak' WITH FILE = 1, MOVE N'CNBlogsText' TO N'F:\DATA\CN