G.O.S.S.I.P 阅读推荐 2023-02-06

admin 2023年2月7日12:29:47评论26 views字数 2446阅读8分9秒阅读模式

G.O.S.S.I.P 阅读推荐 2023-02-06

G.O.S.S.I.P 阅读推荐 2023-02-06

(头图不是广告,我们的公众号并没有金主,如果有大厂想要赞助,欢迎商务洽谈)

有时候一篇研究论文的发表,不仅要考虑自身的努力,更要考虑历史的进程。今天我们推荐的这篇USENIX Security 2023研究论文 NVLeak: Off-Chip Side-Channel Attacks via Non-Volatile Memory Systems 虽然很好,但是它研究的对象——Intel Optane Memory(也就是“傲腾”存储产品)在去年因为业务调整,整个产品线被彻底砍掉,所以这篇论文也就是赶在今年最后一批库存清空之前(2023年5月30日之前依然可以下单,2023年9月30日是最后的出货日)发表,为这款被称为“最强SSD”的产品的落幕送上来自安全研究社区的致敬。

G.O.S.S.I.P 阅读推荐 2023-02-06

在Intel的官方网站上,目前还是可以看到傲腾产品线的不同产品,包括了傲腾混合式固态盘和傲腾内存。本文主要关注的研究对象——non-volatile RAM(NVRAM)——实际上现实世界中就只有傲腾这一条产品线。从性能的角度,使用傲腾确实扩展了存储架构,但是我们学习计算机体系结构都知道,一旦引入了新的存储产品,就会给标准的memory hierarchy引入更多的层级(和复杂性)。而安全研究人员最喜欢的就是新的变化,因为这时候往往是安全性最容易被忽视的时刻!

G.O.S.S.I.P 阅读推荐 2023-02-06

我们简单看看到底使用NVRAM会引入什么样的风险,本文沿袭了之前针对cache的安全分析的思路,从microarchitectural(也就是在指令集层面上看不见也无法控制的硬件底层操作)层级发现了使用NVRAM会引入隐蔽通信信道(covert channel),对于云服务器(本来Optane Memory也就是主要针对云服务器销售)这种多VM共享的应用场景,特别容易引发安全攻击。

由于本文研究的攻击是利用NVRAM在microarchitectural层面的特性发起的,而这部分特性并没有什么文档资料,所以作者首先开展了对Optane Memory的逆向工程分析,注意到论文的第一作者在2020年的MICRO上就已经发表了一篇名为 Characterizing and modeling non-volatile memory systems 的论文,因此针对Optane Memory的逆向工程分析肯定是轻车熟路了。当然,尽管本文利用了2020年的工作,同时作者也纠正了一些当年研究工作的不准确之处(针对傲腾产品的wear-leveling策略和实现的分析,详见3.3章)。

作者开展这种针对硬件产品的逆向,肯定需要一些特殊的工具,于是一个名为pointer chasing microbenchmark的测试系统被用来帮助分析。这个测试系统会把傲腾内存里面各个block填满数据,而填充方法是让block A里面放一个指针,指向block B的地址,block B上面再存放一个指针,指向block C,如此反复(block A、B、C、……的地址都是随机的),然后执行递归的指针解引用,就能实现随机的block遍历(让cache prefetch失效)。在此基础上,可以分析傲腾内存的如下microarchitectural层面参数:

  • NVCache容量

  • L1/L2 NVCache的block size

  • CPU针对傲腾的写入排队策略(write-pending-queue,WPQ)

  • NVCache的相关联性和set数目

G.O.S.S.I.P 阅读推荐 2023-02-06

G.O.S.S.I.P 阅读推荐 2023-02-06

文章里面介绍了很多如何利用pointer chasing microbenchmark去具体分析傲腾内存的microarchitectural层面参数的技术,由于我们不是这个方向的专家,就不在这里详细展开,大家可以去阅读论文的3.2章仔细学习。

除了相关参数信息,作者还对傲腾(作为一款SSD)的写回策略进行了分析。我们知道flash memory的问题在于其有限寿命,如果反复擦写某一个block很容易就耗尽其寿命,因此控制器固件会将(哪怕是针对同一个地址的)写入均衡分布到不同的物理block上,最大程度实现共产主义。为了测试这方面的数据,作者又从2020年的论文里面拿了一个overwrite microbenchmark来用(怎么感觉一下子读了两篇论文),主要的思路是反复擦写一部分数据区域,如果触发了wear-leveling策略,控制器就会把原来一块数据先复制出来,然后再写到另一个地方,这样就引起了一定的(可测量)延迟。

最后,作者把这篇论文的实验结果和2020年的实验结果进行了对比(见下图),还具体说明了2020年的研究哪些是可重现的,哪些地方有误:

G.O.S.S.I.P 阅读推荐 2023-02-06

G.O.S.S.I.P 阅读推荐 2023-02-06

接下来作者就要介绍如何构造covert channel了。首先,可以将经典的针对cache的prime+probe攻击移植过来:

G.O.S.S.I.P 阅读推荐 2023-02-06

其次,利用wear-leveling策略造成的延迟,可以制造一个与DRAM写入有明显差异的covert channel

G.O.S.S.I.P 阅读推荐 2023-02-06

除了制造covert channel,在使用NVRAM的服务器上,作者成功构造了三个不同的攻击,分别是:

  1. 利用L2 NVCache访问造成的延迟差异,对数据库查询范围进行推测的攻击

G.O.S.S.I.P 阅读推荐 2023-02-06

  1. 针对使用了NVRAM加速的key-value数据库,通过分析内存访问的差异,推测出key的信息

G.O.S.S.I.P 阅读推荐 2023-02-06

  1. 针对WolfSSL中RSA实现的分支执行(分别对应值为0或者1的bit),如果该代码库存储在NVRAM上,不同的执行路径就会产生时间差异,这就能够帮助攻击者恢复出RSA私钥的足够多bit信息
    G.O.S.S.I.P 阅读推荐 2023-02-06

所以,虽然Optane Memory要落幕了,但是如果未来人们想起来要重新使用它,可别忘了参考这篇研究工作~


论文:https://www.usenix.org/system/files/sec23summer_13-wang_zixuan-prepub.pdf
代码:https://github.com/TheNetAdmin/NVLeak


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2023-02-06

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月7日12:29:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2023-02-06http://cn-sec.com/archives/1539931.html

发表评论

匿名网友 填写信息