Spectre攻击变种:Spectre 1.1( CVE-2018-3693)和Spectre 1.2

x
用微信扫描二维码
分享至好友和朋友圈

  

  与之前的Meltdown和Spectre CPU漏洞变种类似,Spectre 1.1和Spectre 1.2也利用了推测执行过程。

  Spectre 1.1和Spectre 1.2简介

  Spectre 1.1

  Spectre 1.1攻击使用了推测执行来传播能造成CPU缓冲区溢出的代码,缓冲区溢出会导致能从之前安全的CPU存储区域内提取数据的恶意代码执行。

  Spectre 1.1与之前的Spectre变种1和4非常相似,但研究人员称截止目前,没有有效的静态分析或编译工具能够检测或者缓解Spectre 1.1。

  Spectre 1.2

  Spectre3.0(Meltdown)是依赖页表记录(page-table entries,PTE)的User/Supervisor protection标记的lazy enforcement(延迟执行)。同样的机制也可以用来绕过Read/Write PTE标记。Spectre 1.2就是依赖Lazy PTE强制执行的Spectrev1变种。在Spectre 1.2攻击中,推测存储可以用来覆写只读数据、代码指针、代码元数据等。即攻击者利用Spectre 1.2漏洞可以向CPU内存区中只读标记的区域写操作。也就是说,Spectre 1.2漏洞使基于硬件的沙箱技术失效了。

  与之前发现的Meltdown和Spectre漏洞类似,这两个漏洞都需要用户设备上存在运行攻击所需的恶意代码。但这一定程度上限制了bug的严重性。

   影响

  漏洞主要影响Intel和ARM芯片,AMD芯片好像也受影响。Intel和ARM已经公开承认部分CPU存在Spectre 1.1漏洞,但AMD并未发布相关声明,不过AMD在安全问题上反应一直比较慢。因为所有的Spectre攻击都影响AMD CPU,所以可以推测新的Spectre漏洞也影响AMD芯片。

  研究人员没有透露关于Spectre 1.2影响到CPU的信息。而且目前对这两个漏洞,还都没有发布补丁。

  缓解措施

  Microsoft、Oracle、Red Hat说他们也在分析Spectre 1.1漏洞是否影响各自厂家产品所处理的数据,也在研究软件级缓解问题的方法。

  文章中一共提出三种应对Spectre 1.1攻击的硬件级的缓解措施。具体如下

  Store-to-Load Blocking

  这种拦截方法希望通过对当前芯片的微代码的更新来预防store-to-load forwarding到推测的存储或加载。这种微代码上实施的可能性是未知的,如果这样方法在很小复杂性的情况下是可行的,就可以在最小可信计算基(minimum trusted computing base,TCB)上提供最大的安全性。

  这种方法可以对未打补丁的软件做出最快的响应,可以教软件开发者如何寻找有漏洞的代码。总的来说,这种方法在性能可接受的情况下是非常安全的。

  Lazy Store-to-Load Forwarding

  这种方法使用的低复杂性和小TCB是非常有吸引力的。而且就算软件不做改变的话,性能也是可以接受的。通过对编译器的再次设计,可以获取最优的性能。

  Frozen Store-to-Load Forwarding

  如果易出错的软件解决方案是推测执行攻击的唯一可选方案,那么需要做的就是设计更高性能的硬件。Arctic Sloth方法使用了动态检测要转发的store and load对的方法。一个更简单的变种可以记录之前在正确路径上需要的store-to-load forwarding的load指令,并且接受来自任意存储的数据。

  这就需要一种更强的硬件地址推测机制,与高性能的Alpha处理器类似,这可能会对增加当前处理器的复杂度、功耗等。

  附Spectre攻击变种情况:

  

  论文 https://people.csail.mit.edu/vlk/spectre11.pdf

特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。

跟贴 跟贴 0 参与 0
© 1997-2018 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 网站地图 | 意见反馈 | 不良信息举报

嘶吼RoarTalk

不一样的互联网安全新视界

头像

嘶吼RoarTalk

不一样的互联网安全新视界

1937

篇文章

人关注

列表加载中...
x

用户登录

网易通行证/邮箱用户可以直接登录:
忘记密码