荷兰的研究人员已经证实,可以避开纠错码(ECC)保护机制,执行Rowhammer内存操纵攻击。

阿姆斯特丹自由大学的一个研究团队今天表示,他们已开发出了一种切实可行的方法,精确地改变服务器RAM内存芯片中的比特,而不触发ECC的校正机制。因此,他们能够篡改数据、注入恶意代码和命令,并且改变访问权限,从而可以窃取密码、密钥及其他秘密信息。

这一研究结果意义重大,原因是虽然ECC曾经被认为是一种可靠的方法,可以对付Rowhammer类型的攻击,但有人认为从理论上可以绕过这种防御机制。现在一种攻击已得到了演示。

结果是,不法分子可以利用该团队提出来的避开服务器上ECC的技术,利用Rowhammer从这些高价值目标获取信息。不法分子必须先进入他们可以在易受攻击的机器上翻转比特的位置,可能使用已经植入在设备上的恶意软件。

神奇的数字

阿姆斯特丹自由大学的研究团队证实,ECC校验错误的方式存在一个可以被人利用的漏洞:一个比特改变后,ECC系统会纠正该错误。发现两个比特改变后,ECC就会使程序崩溃。

但如果可以同时改变三个比特,ECC就无法发现这种改动。这点众所周知,不过这里的关键是,这让Rowhammer攻击有了可趁之机。

至关重要的是,研究人员发现了一种类似竞态条件(race condition)的情况,这让他们确信可以利用3比特翻转技术有效地操纵内存地址。

该团队解释道:“简而言之,相比从不需要校正的地址读取内容,从需要纠正比特翻转的内存位置读取内容所花的时间通常来得更长。”

“因此,我们可以依次尝试每个比特,直到我们找到这样一个字:可以翻转三个易受攻击的比特。然后最后一步是,让两个位置的所有三个比特不一样,并实施最后一击,一次性翻转所有三个比特:任务完成。”

研究人员表示,他们能够在四个不同的服务器系统上测试和重现漏洞:三个系统运行英特尔芯片,另一个系统使用AMD。他们拒绝透露任何特定的内存品牌。

幸好,虽然攻击极其难以防止,但在实际环境下也很难得逞。阿姆斯特丹自由大学的研究团队梳理了众多地址以找到易受攻击的地址,然后实际执行Rowhammer攻击。他们表示,在有噪音的系统中,攻击可能需要长达一周的时间才能得逞。

研究人员表示,也不该拿他们的研究结果来谴责ECC。确切地说,它向众多管理员和安全专业人员表明ECC只是应该与其他安全机制结合使用的几道保护层之一,比如优化的硬件配置和认真仔细的记录及监测等安全机制。

“ECC无法阻止针对各种硬件组合的Rowhammer攻击。如果比特翻转的数字足够大,ECC只会减慢攻击速度。”

对纠错码(ECC)实行反向工程的冷启动攻击演示:

用两根注射针实现的内存总线故障注入演示:

小知识:Rowhammer简介

早在2015年,谷歌的Project Zero团队发现,可以对相邻几排中的存储单元进行反复充电放电,从而改变单个存储单元里面的值。如果攻击者准确地知道要下手的位置,他们可以改动具体的位置,将指令或命令注入内存中,或者授予权限以访问包含敏感信息的受限制部分。

ECC保护机制可以检测并校正单个比特值的变化,在理论上阻止这种情况。ECC保护机制在Rowhammer出现之前就开发出来了,旨在处理内存错误。

介绍这种攻击技术的论文题目为《钻纠正码的空子:谈谈ECC内存对付Rowhammer攻击的有效性》(https://cs.vu.nl/~lcr220/ecc/ecc-rh-paper-eccploit-press-preprint.pdf)

声明:本文来自云头条,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。