您的位置首页>互联网>

研究人员找到了一种在具有Intel处理器的系统上运行恶意代码的方法

导读该方法使得该恶意软件无法被防病毒软件分析或识别,而是使用处理器自身的功能来保护不良代码。恶意行为者不仅使恶意软件通常难以检查,还可

该方法使得该恶意软件无法被防病毒软件分析或识别,而是使用处理器自身的功能来保护不良代码。恶意行为者不仅使恶意软件通常难以检查,还可以使用这种保护来编写例如勒索软件应用程序,这些应用程序永远不会在可读存储器中公开其加密密钥,从而使从攻击中恢复的难度大大提高。

这项研究是由格拉茨理工大学的迈克尔·施瓦茨,塞缪尔·韦瑟和丹尼尔·格鲁斯(去年的幽灵攻击的幕后研究者之一)进行的,它使用了英特尔在其Skylake处理器中引入的一项名为SGX(“软件警卫扩展”)的功能。 。SGX使程序能够开拓飞地在其中保护代码和与代码一起使用的数据的地方,以确保其机密性(系统上的其他任何事物都无法监视它们)和完整性(可以检测到对代码或数据的任何篡改)。隔离区的内容在每次写入RAM时都进行透明加密,并在读取时解密。处理器控制对安全区内存的访问:阻止从安全区外部的代码访问安全区内存的任何尝试;解密和加密仅针对安全区域内的代码进行。

当开发人员想要保护代码和/或数据免于窥视时,SGX已被提升为解决一系列安全问题的解决方案。例如,可以使用在云平台上运行的SGX飞地来运行自定义专有算法,这样,即使云提供商也无法确定算法在做什么。在客户端计算机上,可以以类似方式使用SGX安全区来实施DRM(数字版权管理)限制。DRM所使用的解密过程和解密密钥可以保存在安全区域内,从而使系统其余部分无法读取它们。市场上有一些生物识别产品使用SGX飞地来处理生物识别数据并安全地存储它,以防被篡改。

SGX已针对这种特定的威胁模型进行了设计:该飞地值得信赖并包含敏感内容,但其他所有内容(应用程序,操作系统甚至系统管理程序)都可能具有敌意。尽管已经对该威胁模型进行了攻击(例如,编写不正确的SGX安全区可能容易受到定时攻击或Meltdown式攻击),但只要遵循某些最佳实践,它似乎就很强大。

让我们忽略英特尔的威胁模型

研究人员将这种鲁棒性用于恶意目的,并考虑了一个问题:如果飞地中的代码是恶意的,会发生什么?通过设计SGX,反恶意软件将无法检查或分析正在运行的恶意软件。这将使其成为放置恶意代码的有希望的场所。但是,飞地中的代码非常受限制。特别是,它没有进行操作系统调用的准备;它无法打开文件,无法从磁盘读取数据或无法将数据写入磁盘。所有这些事情都必须在飞地之外执行。这样,天真的,一个基于SGX的勒索软件假想应用程序将需要大量外部代码SGX飞地:枚举所有文档,读取它们并用其加密版本覆盖它们的片段将不受保护。只有加密操作本身会在安全区域内发生。

但是,安全区代码确实具有读取和写入未加密过程存储器中任何位置的能力;尽管飞地外部无法看到内部,但飞地内部可以自由查看外部。研究人员利用这种能力扫描了进程的内存,并找到了构造面向返回的编程(ROP)有效载荷以运行其选择的代码所需的信息。这将可执行代码的小片段链接在一起,这些片段是宿主应用程序的一部分,可以执行宿主应用程序不想要的事情。

需要一些技巧才能执行此阅读和写作。如果安全区代码尝试读取未分配的内存或写入未分配或只读的内存,则通常的行为是生成异常,并使处理器退出安全区以处理该异常。这将使扫描主机的内存成为不可能,因为一旦发生异常,恶意围场将不再运行,并且很有可能导致程序崩溃。为了解决这个问题,研究人员重新研究了一种在Meltdown攻击中也有用的技术:他们使用了另一个英特尔处理器功能,即事务同步扩展(TSX)。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。