Intel 芯片中的 DDIO 实现允许网络攻击检测 SSH 会话中的击键

来自阿姆斯特丹自由大学和苏黎世联邦理工学院的一组研究人员开发了一种网络攻击技术 网络猫 (网络缓存攻击),它允许通过第三方渠道使用数据分析方法,远程确定用户在 SSH 会话中按下的按键。 该问题仅出现在使用技术的服务器上 RDMA (远程直接内存访问)和 迪奥 (数据直接 I/O)。

英特尔 ,该攻击在实践中很难实施,因为它需要攻击者访问本地网络、无菌条件以及使用 RDMA 和 DDIO 技术组织主机通信,这些技术通常用于隔离网络,例如,计算集群运行。 该问题被评为“轻微”(CVSS 2.6, CVE-2019-11184)并建议不要在未提供安全边界且允许不可信客户端连接的本地网络中启用 DDIO 和 RDMA。 自 2012 年起,DDIO 已用于 Intel 服务器处理器(Intel Xeon E5、E7 和 SP)。 基于 AMD 和其他制造商的处理器的系统不受该问题的影响,因为它们不支持将通过网络传输的数据存储在 CPU 缓存中。

用于攻击的方法类似于漏洞”飞锤“,它允许您通过使用 RDMA 的系统中的网络数据包操作来更改 RAM 中各个位的内容。 新的问题是使用DDIO机制时尽量减少延迟的结果,它保证了网卡和其他外围设备与处理器缓存的直接交互(在处理网卡数据包的过程中,数据存储在缓存中,从缓存中检索,而不访问内存)。

借助 DDIO,处理器缓存还包含恶意网络活动期间生成的数据。 NetCAT攻击基于网卡主动缓存数据,而现代本地网络中数据包处理的速度足以影响缓存的填充,并通过分析数据期间的延迟来确定缓存中是否存在数据转移。

当使用交互式会话时,例如通过 SSH,按下按键后立即发送网络数据包,即数据包之间的延迟与击键之间的延迟相关。 使用统计分析方法并考虑到击键之间的延迟通常取决于键盘上按键的位置,可以以一定的概率重新创建输入的信息。 例如,大多数人倾向于在“a”之后键入“s”比在“s”之后键入“g”快得多。

处理器缓存中存放的信息还可以让我们在处理 SSH 等连接时判断网卡发送数据包的准确时间。 通过生成特定的流量,攻击者可以确定新数据出现在与系统中特定活动相关的缓存中的时刻。 分析缓存内容,使用方法 引物+探针,这涉及使用一组参考值填充缓存,并在重新填充时测量对它们的访问时间以确定更改。

Intel 芯片中的 DDIO 实现允许网络攻击检测 SSH 会话中的击键

所提出的技术不仅可以用于确定击键,还可以用于确定存储在 CPU 缓存中的其他类型的机密数据。 即使 RDMA 被禁用,攻击也有可能进行,但如果没有 RDMA,其有效性就会降低,执行也会变得更加困难。 还可以使用 DDIO 组织一个隐蔽的通信通道,用于在服务器遭到破坏后传输数据,从而绕过安全系统。

来源: opennet.ru

添加评论