一份深入的研究论文和动手概念验证(PoC),探索现代 CPU 上的推测执行攻击。
本项目是一项基于研究和实验的探索,针对 Spectre 变种 2(CVE-2017-5715),也称为 分支目标注入(Branch Target Injection)——一种影响具备推测执行和分支预测功能的 CPU 的硬件级侧信道漏洞。
本项目的目标是:
⚠️ 免责声明: 本工作严格在受控的隔离虚拟机中进行,仅用于学术和教育目的。它不针对或影响任何生产系统,且未编写专有利用代码——用于演示的是公开可用的 SpectrePoC 仓库。
CVE-2017-5715 是一个微处理器漏洞,允许攻击者欺骗 CPU 的分支预测器,使其沿错误(“推测”)路径执行指令。尽管 CPU 正确丢弃了这种错误预测的 结果,但未能完全擦除 副作用——最显著的是 CPU 缓存状态的改变。这些残留的缓存变化可以通过定时分析测量,使攻击者能够推断本应无法访问的秘密数据。
与传统的软件漏洞不同,Spectre 利用了现代 CPU 的 硬件设计,使其极难完全修补,需要结合微码、操作系统和编译器级别的缓解措施。
sudo apt update
sudo apt install git
git clone https://github.com/crozone/SpectrePoC
cd SpectrePoC
make
Linux 通过 sysfs 直接暴露 CPU 漏洞/缓解状态:
grep . /sys/devices/system/cpu/vulnerabilities/*
这确认了测试 CPU 对 spectre_v2 存在漏洞,而其他相关漏洞(Meltdown、L1TF、MDS)要么已被缓解,要么不受影响。
./spectre.out
该工具重复报告“Success”结果以及一个“置信度”分数,该分数来自缓存定时差异——每次成功读取表示从本不可访问的内存中泄露的一个字节,完全通过推测性侧信道重建。
本仓库包含一段录制的完整 PoC 演示视频——从环境搭建到成功的数据外泄——用于直观验证攻击。
▶️ 观看 PoC 演示视频
📁 将视频文件添加到您的仓库后(例如放在
demo/或media/文件夹中并相应调整链接),请更新上述路径。
间接分支限制推测(IBRS)等缓解措施可减少跨边界泄露。.
├── README.md
├── Research_Paper_-_CVE-2017-5715_Spectre_by_Shivam_Bhatt.pdf
└── demo/
└── spectre-poc-demo.mp4
Shivam Bhatt 网络安全研究生文凭(荣誉)—— NAIT 🔗 欢迎通过 LinkedIn 联系我,或就网络安全研究进行合作。
⭐ 如果您觉得本研究有用,请考虑给仓库点星!
| 组件 | 详情 |
|---|
| 操作系统 | Ubuntu 14.04 LTS |
| 内核版本 | 4.4.0-148-generic |
| CPU | 12th Gen Intel® Core™ i5-12450H |
| 虚拟化平台 | VMware Workstation |
| PoC 仓库 | crozone/SpectrePoC |