查看原文
其他

首个完全武器化的 Spectre Exploit 现身

综合编译 代码卫士 2022-12-20

 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队


法国安全研究员 Julien Voisin 发现,上个月有人在VirusTotal上上传了 Spectre CPU 漏洞 (CVE-2017-5753) 的完全武器化 exploit,成为首个公开出现的可造成实际损害的 exploit。


Spectre漏洞最初现身于2018年1月,是一个硬件设计缺陷,存在于 Intel、AMD 和 ARM 处理器中,可允许运行在恶意 app 中的代码打破不同应用在 CPU 级别的隔离,之后从运行在同样系统上的其它 app 窃取敏感数据。该漏洞还获得“2018年 Pwnie Award”,成为当年最佳安全漏洞之一,也成为现代 CPU 演进和历史上的里程碑时刻。Spectre 和 Meltdown 漏洞可使 CPU 厂商重新思考设计处理器的方式,不能以数据安全为代价只注重性能。虽然当时已发布补丁,但这两个漏洞迫使 Intel 公司重新思考未来设计 CPU 的整体方式。


最初 Spectre PoC 均非恶意


当时,Meltdown 和 Spectre 的漏洞研究团队均以研究报告的形式发布了自己的研究成果,有些还附上了 PoC 证实攻击的存在。两个漏洞披露后不久,AV-TEST、Fortinet 和 Minerva Labs 公司的专家就发现这两个 CPU 漏洞在 VirusTotal 上的上传数量骤升。虽然最初担心恶意软件作者可能利用这两个漏洞窃取目标系统的数据,但这些 exploit 被判定为非恶意,且无证据表明出现在野攻击活动。

但今天 Voisin 表示发现了新的 Spectre exploit (Windows 和 Linux 版本),与以往版本不同。Voisin 表示发现 Linux Spectre exploit 能够转储 /etc/shadow(在操作系统用户账户上存储详情的 Linux 文件)的内容。这一行为显然是恶意的;然而,并未有证据表明该exploit 已被“在野“利用,因为它也可能是由渗透测试工程师上传的。


详细分析


快速分析一下。

该二进制的 –h 选项被删除,很可能位于 #define 之后以逃避检测,不过其参数显而易见,如指定泄漏哪些文件或内核基地址。作者并未检查(或并不关心)日志记录函数是否被完全优化,只剩下一堆字符串用于反向进程。

该 exploit 分四步运作:

1、找到 superblock

2、找到文件的inode 以转储

3、找到相应的页面地址

4、转储文件的内容

在 /etc/shadow 中,在默认选项下,通过在后台运行如下命令将文件内容推入内存中:

return system("echo \"whatever\n\" | su - 2> /dev/null")


在实验室中,在易受攻击的 Fedora 上,该 exploit 成功地在几分钟内将 /etc/shadow 转储。有意思的是,它会检测是否存在 SMAP,如存在则中止。想不懂的是,该 exploit 为何未出现?

该漏洞的症结所在是 0x4092f0,使用 cupid 作为序列化指令,rdtsc 进行定时,将 mfence/Ifence 作为障碍。它还使用某些技巧最大程度地减少读取量如 type-specific  函数,例如一个内核地址具有特定格式。实际上该工具可能是位于 FLOASYNC ioctl 中的 get_user(),已于2018年修复。

通过查看 Fedora 上的 /proc/kallsysm 或使用 Gruss 等人提出的预提取侧信道攻击,即可绕过 RASLR。值得注意的是,这种方法仍然适用于最新版的 Linux 系统,这再次证明 KASLR 充其量是无用的。对于无法访问 /proc/kallsym 文件的系统而言,该 exploit 依赖于硬编码的偏移量,虽然目前仅支持 Fedora、ArchLinux 和 Ubuntu,也可通过相关函数检查 Debian 和 CentOS 的情况。2021年了,竟然还能在任意读取 exploit 中看到硬编码的偏移量。


和 Immunity 公司CANVAS 工具有关的exploit


Voisin 在博客最后暗示,自己可能发现了这个新型 Spectre exploit 的幕后黑手,“归属问题不难,作业就留给读者吧”。

虽然 Voisin 并未说明该 exploit 的作者,但安全专家和媒体 HackerNews 很酷发现这个新的 Spectre exploit 可能是 Immunity 公司开发的一款渗透测试工具 CANVAS 的一个模块。

HackerNews 的一名用户指出,VirusTotal 的付费用户可获悉样本的文件”父母“。这名用户发现从包含该文件的几个 ZIP 文件来看,其文件名称都是 Immunity Canvas 或类似名称。而 Canvas 是一款发布 exploit 的渗透测试工具,因此很可能源自 Immunity 公司。目前,Immunity 公司尚未置评。不过该公司的前 CEO Dave Aitel 在推特证实称,Voisin 发现的新 exploit 确实是 CANVAS Spectre 模块。

另外,一名匿名消息来源人士也表示,一家地下黑客论坛上出现了 Immunity CANVAS v7.26 渗透测试工具的破解版,以及 White Phosphorus 和 D2(CANVAS 扩展包,包含多个漏洞的不同 exploit)的破解版本。同时这些漏洞中还包括 Sepctre 漏洞 (CVE-2017-5715) 的 exploit。

而 Recorded Future 公司的网络威胁情报专家 Dmitry Smilyanets 表示,该渗透测试工具集的破解版本实际上至少从2020年10月份就开始在私密 Telegram 频道流传。

这些信息表明,这些 CANVAS 破解版本很可能是在2月3日上传到 VirusTotal 的 CANVAS Spectre 模块。

对于网络安全行业专家而言,Immunity 公司拥有完全起作用且完全武器化的 Spectre exploit 并不令人惊讶,因为该公司曾在2019年发布 BlueKeep 漏洞的完全武器化 exploit,并公开宣传,以宣传 CANVAS 高超的渗透测试功能。


最后一次警告


当前该 Spectre exploit 的副本已在网络安全研究员的 Discord 和 Telegram 频道上流传,它出现在 GitHub 并被所有人获取只是一个时间问题。

而 Voisin 的这个发现无疑是敲响攻击即将发生的午夜钟声。






推荐阅读
研究人员披露 Meltdown 和 Spectre 攻击的7种新变体
Spectre 攻击升级了!NetSpectre 通过网络连接窃取 CPU 秘密



原文链接


https://therecord.media/first-fully-weaponized-spectre-exploit-discovered-online/

https://dustri.org/b/spectre-exploits-in-the-wild.html


题图:Pixabay License


本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。



奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

    觉得不错,就点个 “在看” 或 "” 吧~


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存