[关闭]
@1qaz 2016-11-10T01:29:21.000000Z 字数 2222 阅读 938

Flip Feng Shui:Hammering a Needle in the Software Stack

Rowhammer


Kaveh Razavi,Ben Gras et al. Vrije Universiteit,Usenix security'16

一句话:在共宿主的VM环境下,利用rowhammer漏洞和memory duplication特性来攻击OpenSSH的身份验证和伪造Ubuntu软件包的GPG认证

1. Flip Feng Shui

条件:
1. rowhammer,硬件问题
2. physical memory massaging
过程:
1. Memory templating:确定哪些物理地址上在rowhammer下会出现bit flip. 模板:物理地址,0-1/1-0,double-sided rowhammer

  1. Memory massaging:控制内存分配器,将敏感数据分配到有问题的物理地址上。理想情况下利用已知的模板可以修改任意的内存页(类似传统漏洞利用的任意地址写)。利用memory duplication的特性可以修改任意已知内容的victim page
  2. Exploitation: 触发bit flip,修改敏感数据。
    场景设定:攻击者的VM和victim的VM在同一个host上,论文提出了哦两个攻击点
    • flip SSH's authorized_keys:authorized_keys中存放用户的SSH公钥,构造出对应的私钥可以ssh登陆victim
    • flip apt's sources.list和trusted.pgp:souces.list保存了软件源的地址,trusted.gpg中的rsa公钥对软件包做认证。构造出合法的软件包签名可以让victim安装攻击者制作的软件包

2. Cryptanalysis of RSA with Bit flips.

公钥n,e n常见的为1024和2048bit,e一般为65537
d = e-1 mod λ(n) 卡马克尔数
n=p*q, n为t bit,随机翻转一个bit后的值为 n',假设n'是一个随机的奇数(LSB is trivial),
trivial case : 2 / ln(n')的概率n'是素数
other : n'是合数,分解策略:
1. 尝试小素数 (<16bit)
2. Pollard's p algorithm (40~60bit)
3. Lenstra's Elliptic Curve factorization Method (<128bit)
4. General Number Field Sieve 目前已知的最好算法,最大记录为768bit

ECM的复杂度取决于素因子个数和最大的素因子。第二大素因子的期望值是0.21*t [D Knuth], n'的质因子个数分布的中值和方差是lnln n' [Erdos], t=1024时质因子个数中值是6.56,不太可能只有两个因子;第二大素因子的期望 215bit,小于128bit的概率是0.26[D Knuth],可以使用ECM; t=2048时小于128bit的概率是0.12

结论:n在1024-2048bit时,任意的bitflip,可以有效分解n'的概率是12-22%

3. Implementation

KSM:Kernel same-page merging
THP:Transparent Hugepage

为了提高内存利用,kernel会将相同内容的虚拟页映射到同一个物理页上,修改时再分开。将出现的页 映射到出现的页的物理地址上(更新页表)。已知target内容时,攻击者将自己的页面merge,之后victim出现相同内容的页面时会被映射到攻击者的物理地址上

DIMM常见的row size是128kb >> 4kb页面
rowhammer时需要连续的物理地址,特别是在double-sided时。guest的物理地址映射到host的虚拟地址再映射到host的物理地址,论文利用Transparent Hugepage来解决,大页面2MB, 透过host映射到连续的物理地址

KSM和THP同时的问题:KSM暂时不支持hugepage。。。

OpenSSH: authorized_keys,base64encode,(n,e),n',factor
GPG:autoupdate,source.list URL flip,trusted.gpg flip

4. Evaluation

4.1 OpenSSH
time
moduli
cdf
300次auto end-to-end attack,84.1%成功,平均时间5.3分钟

4.2 ubuntu apt
ubuntu官方的key是4096bit,8192个可能值中有344个可以分解
ubuntu.com 1bit flip URL

ubuftu.com ubunt5.com ubunte.com
ubunuu.com ubunvu.com ubunpu.com
ubun4u.com ubuntw.com ubuntt.com
212s URL flip,352s gpg flip, 566s malicious package installed

5. Mitigation

Hardware:ecc,ddr4
Software:
1. disable KSM and THP( performance VS security,add randomness ) not good
2. 敏感数据完整性的自我校验:例如证书的签名
3. 文件中敏感数据不应相信内存中的缓存
4. 更安全的KSM和THP等优化特性的设计,不能让不可信的进程控制整体的内存布局

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注