恶意软件可以通过滥用Intel Software Guard Extensions(SGX)中的功能来隐藏防病毒(AV)软件。 格拉茨科技大学的研究人员Michael Schwarz,Samuel Weiser和Daniel Gruss最近证明了这一点。
SGX于2015年通过第六代Intel Core处理器推出,目前已在Intel的Core和Xeon CPU中使用,并且受各种硬件支持。 这是一种体系结构扩展,包括中央处理器(CPU)指令代码,旨在防止数据泄露或被修改。 通过使应用程序能够分区和分配内存区域或安全区,对它们的内容(例如密码,用户数据)进行加密并限制对它们的访问,可以做到这一点。 这种保护是不对称的。 也就是说,操作系统或用户应用程序无法访问安全区数据,但是安全区可以访问外部虚拟空间。
[相关新闻:SgxPectre可以从英特尔的SGX Enclaves中提取数据]
根据研究人员的说法,黑客可以使用飞地作为隐藏恶意软件的地方。 例如,可以将一个勒索软件的加密密钥隐藏在内存中,从而很难修复。 它还可以用于执行未经授权的操作,例如发送网络钓鱼电子邮件和发起分布式拒绝服务(DDoS)攻击。 攻击者可以将恶意代码(例如下载程序)隐藏在安全的区域内,该区域无法抵抗反恶意软件的解决方案,并且可以下载并运行加密的任意有效载荷。
概念证明(PoC)依赖于欺骗用户安装嵌入了具有恶意代码的安全区域的嵌入式应用程序。 SGX的技术可以通过只允许使用由英特尔自己的白名单上的密钥签名的飞地来减轻这种风险,这些飞地通常会分配给应用程序开发人员。 但是,攻击者可能会滥用从受信任的开发人员那里窃取的密钥,也可能会获取自己的密钥。 研究人员指出,即将推出的SGX版本2将在获取签名密钥的过程中提供更大的灵活性。
[相关新闻:推测下一代:发现了新的Intel CPU漏洞] 研究人员还展示了如何通过采用面向返回的编程(ROP)来规避飞地保护墙。 该技术使用系统中已经存在的代码来执行关键功能,将代码片段链接在一起以启用恶意区域,从而避免SGX安全性限制。 飞地中的代码不能使用特权指令或系统调用。 为了实现这个目标,他们描述了如何通过滥用英特尔事务同步扩展(TSX)来创建读写原语(代码段),该事务以前是用来加速多线程应用程序事务的执行的。
通过这些原语,攻击者可以在i7-6700K CPU上以48.5 GBps的速度在安全区域外任意读写整个映射的虚拟内存空间,而不会引发任何CPU故障。 研究人员将该技术命名为SGX-ROP。 使用SGX-ROP,他们的PoC能够绕过其他旨在减轻内存泄漏和缓冲区溢出等安全风险的安全机制。 研究人员在PoC中显示,当前的Intel SGX软件开发(SDK)代码包含足够的ROP小工具,可以进行攻击。 这种攻击是完全隐身的。 一方面,没有引发CPU故障。 另一方面,当在安全区内执行指令时,即使CPU计数器也不会更新(使用当前的微码)。 此外,带有恶意任意有效负载的ROP代码可以应要求运行一次,并且在有效负载代码退出序列中可以删除所有跟踪。 SGX-ROP是一种使恶意代码和数据的可检测部分隐身的方法。 反对传统的检测方法。 因此,与实际攻击相比,用于隐藏更为实用。 当然,会有最初的感染可以被检测到。 它将包含在SGX飞地代码中。 但是感染的下一阶段(包含恶意代码和数据的有效负载)可能无法检测到。
[阅读:英特尔管理引擎漏洞的技术分析]
这项研究已透露给英特尔,英特尔建议使用受信任的程序,文件,应用程序和插件。
随着Meltdown,Spectre和Foreshadow之类的信息的公开,硬件中安全性或设计缺陷的利用对于用户和企业而言都是一项复杂的挑战。 例如,更新易受攻击的组件可能需要很长时间。 固件或硬件的更新也变得更加困难,尤其是如果它们可能破坏业务运营的话。 尽管使用基于硬件的漏洞之类的攻击面的威胁没有万能的解决方案,但是一种主动的,纵深防御的方法来检测它们很重要。 这样可以使安全或IT团队更清楚地了解其在线范围内的活动,从而帮助他们更好地补救威胁。
来自VítŠembera(趋势科技威胁研究人员)的见识
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢