【国际资讯】利用JavaScript代码突破多家CPU架构上的ASLR保护(含演示视频)

https://p1.ssl.qhimg.com/t01b2004f0e4396a944.jpg

翻译:knight

预估稿费:100RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

前言

荷兰一所大学的5名研究员使用JavaScript代码突破了多个大厂商的CPU架构上的ASLR保护。

来自荷兰Vrije大学的五位研究人员组织了一次用JavaScript代码进行的攻击,并且突破了出自英特尔,AMD,ARM,Allwinner,Nvidia等厂商的至少22个微处理器架构上的ASLR保护。

攻击,命名为ASLR⊕缓存,或ANC,着重对内存管理单元(MMU)进行攻击,这是许多CPU架构中较少被人知道的组件,它的任务是提高缓存管理操作的性能。


AnC攻击目标是CPU高速缓存管理组件

研究人员发现,这个组件与不受信任的应用程序(包括浏览器)共享一些缓存。 这意味着研究人员可以发送专门针对此共享内存空间并试图读取其内容的恶意JavaScript。

研究人员说:“我们已经建立了一个侧通道攻击,特别是EVICT + TIME缓存攻击,可以检测在由MMU执行的页表搜索期间访问过的页表位置。

“例如,在x86_64架构上,我们的攻击可以找到MMU为每四页表页访问的偏移量,每个页面内的偏移量破坏了9位的熵,所以即使是完美的ASLR实现36位 的熵不安全。

按照外行人的意思,这意味着AnC攻击可以打破ASLR并允许攻击者读取计算机内存的一部分,然后他可以使用它来启动更复杂的攻击并升级对整个操作系统的访问。

ASLR是一种与所有主要操作系统一起部署的内存保护机制,它将代码在内存中执行的位置随机化。 通过打破ASLR,攻击者将知道代码在哪里执行,并准备攻击目标同一区域的内存,窃取存储在PC的内存中的敏感信息。


AnC攻击通过Chrome和Firefox在22个CPU架构上工作

研究人员表示,他们通过Chrome和Firefox在22种不同的CPU架构上成功测试了AnC JavaScript攻击,即使这些浏览器中内置了多种保护措施,例如损坏的JavaScript计时器。

更糟糕的是,研究人员说,AnC攻击可以用来恢复以前阻塞的缓存攻击,为多年前的漏洞打开了门户。

研究人员建议,用户可以保护自己免受AnC攻击的唯一方法是部署像NoScript这样的扩展,这会阻止不受信任的JavaScript代码在浏览器中运行。

AnC攻击通过几个CVE标识符就可以跟踪到。

CVE-2017-5925被分配用于跟踪英特尔处理器的发展

CVE-2017-5926被分配用于跟踪AMD处理器的发展

CVE-2017-5927被分配用于跟踪ARM处理器的开发

CVE-2017-5928被分配来跟踪JavaScript计时器在不同的浏览器的问题

下面是22个CPU模型和微型架构,研究人员测试并发现容易受到AnC攻击。 更多的微架构也可能是脆弱的,因为并不是所有的都被测试。

http://p7.qhimg.com/t01fdf2d57dda582225.png


研究团队中有RAM攻击专家

该小队在过去的几年中已经尝试过不同版本rowhammer攻击,通过Microsoft Edge攻击了PC,攻击了布置在云服务器上的Linux虚拟机和拥有root权限的安卓设备。

Rowhammer攻击是指向RAM存储器单元喷射恒定的数据流,直到它们的电荷被修改,导致附近单元的改变。 该技术是复杂的,但Rowhammer攻击可以用来修改远程计算机的RAM内容。

研究人员发表了两篇论文,详细描述了AnC攻击,以及两个视频显示攻击行动。


论文地址

1.http://www.cs.vu.nl/~herbertb/download/papers/anc_ndss17.pdf 

2.http://www.cs.vu.nl/~herbertb/download/papers/revanc_ir-cs-77.pdf 


演示视频

(完)