CVE-2019-11184: NETCAT攻击分析
2019-09-24 11:39:44 Author: www.4hou.com(查看原文) 阅读量:122 收藏

NetCAT表明基于网络的缓存侧信道攻击是一个真实的威胁。缓存攻击常被用来在本地设置中窃取敏感数据,比如从在同一云平台共享CPU缓存的攻击者控制的虚拟机到受害者虚拟机。通过NetCAT表明,此类威胁通过网络扩展到了非可信的客户端,这些客户端可以通过远程服务器在没有本地访问的情况下窃取敏感数据,比如SSH会话中的键盘输入。

漏洞产生的根源在于Intel CPU的一个新特征——DDIO,DDIO会给与网络设备和其他外围设备对CPU缓存的访问权限。DDIO的本意是在快速网络中进行性能优化,但研究人员分析发现DDIO中存在严重的安全隐患,可能会使本地不可信的网络中的服务器受到远程侧信道攻击。

Intel回应称这是一个明显的漏洞,该漏洞CVE编号为CVE-2019-11184。Intel推荐用户在DDIO和RDMA启用时限制从非可信网络中的直接访问。也就是说,在不可信的网络环境中,DDIO和RDMA可以被禁用来确保安全性。研究人员调研发现,这是主流硬件厂商对不可信本地网络中使用CPU特征发出安全提醒。

DDIO

Data-Direct I/O (DDIO,数据直接I/O)是Intel最近的服务器级处理器中引入的性能增强技术。除了允许从低速内存读写数据外,DDIO还允许周边设备从高速缓存中读写数据。DDIO的引入是为了在快速网络中提升服务器应用的性能。

在传统架构中,网络卡使用直接内存访问(direct memory access,DMA)来直接与操作系统交互,而内存延迟很快就编程了快速网络中的瓶颈。为了缓解这一问题,Intel引入了DDIO。DDIO缓存区域并非是在缓冲区中预留的,但是分配写只限于一小部分内存区域来避免I/O突发或未处理的数据流引发的破坏。

下图说明了直接缓存访问(橘色)和直接内存访问(蓝色)的区别。在直接缓存访问中橘色表示可用的写分配缓存行数,其他的用绿色表示。

 

NetCAT

研究人员首先对DDIO进行了分析,然后提出了基于网络的针对远程机器的处理器缓存的攻击——NetCAT。研究人员证明了NetCAT可以在无需远程机器或客户端上执行恶意软件的情况下,打破第三方SSH会话的机密性。攻击者机器只需要发送网络包到远程服务器就可以完成攻击。

通过NetCAT攻击,可以利用远程缓存侧信道来泄露SSH会话的单个网络包到达的时间。在交互式的SSH会话中,每当输入一次,网络包都是直接传输的。因此,每当受害者在console的加密SSH会话中输入一个字符,NetCAT就可以通过泄露对应网络包的到达时间来泄露事件的时间。

 

在攻击中,研究人员利用了启用DDIO的应用服务器在CPU内核和网卡中共享资源( last-level-cache最后一级高速缓存)的特性。研究人员逆向了DDIO的重要特征来分析如何用DDIO来分析缓存。然后利用已有知识使用基于网络的缓存侧信道攻击来从应用服务器泄露敏感信息。为了简化攻击,研究人员利用了与Throwhammer攻击类似的远程直接内存访问(Remote Direct Memory Access,RDMA)技术。利用RDMA可以在目标服务器上控制网络包相关的内存位置。

攻击者控制了通过RDMA与应用服务器通信的机器,该应用服务器支持DDIO,并服务于来自受害者客户端的服务网络请求。NetCAT表明攻击者可以成功地监听远程服务器侧周边设备来通过网络来泄露受害者数据,比如网卡。

 

Demo视频地址: https://www.youtube.com/embed/QXut1XBymAk?feature=oembed

关于该漏洞的学术文章NetCAT: Practical Cache Attacks from the Network也被S&P 2020录用,文章下载地址:https://www.cs.vu.nl/~herbertb/download/papers/netcat_sp20.pdf


文章来源: https://www.4hou.com/vulnerable/20288.html
如有侵权请联系:admin#unsafe.sh