Flush + Flush:一种无声的缓存攻击工具
项目介绍
欢迎探索"Flush + Flush",一个开源项目,它包含了执行Flush+Flush攻击及相关攻击的各种工具。这个项目源自于Gruss、Maurice、Wagner和Mangard在DIMVA 2016上发表的同名论文,旨在利用CPU缓存机制进行隐蔽且高效的攻击。
项目技术分析
Flush+Flush攻击的独特之处在于仅依赖于flush指令的执行时间,这取决于数据是否在缓存中。与其它缓存攻击不同的是,它不触发任何内存访问,因此不会造成缓存未命中,同时由于持续的缓存清空操作,缓存命中次数减少到最低。这种攻击方式既隐秘又快速。
项目中的代码适用于x86-64架构的Intel CPU,并需运行在Linux环境下。请注意,代码中包含针对特定测试系统的硬编码地址和阈值,您可能需要根据自己的系统进行调整。
应用场景
项目提供的histogram
工具可以帮助您找到区分缓存命中和未命中的阈值,通过以下四种方法:
ff
: 利用Flush+Flush攻击fr
: 利用Flush+Reload攻击pp
: 在侧信道场景下使用Prime+Probe攻击ppc
: 在秘密通道场景下使用Prime+Probe攻击
sc
目录下的工具可以用于监听某些行为,例如共享库中的函数调用,以推断出如按键等信息。
此外,项目还提供了一个对OpenSSL AES T-表攻击的示例,展示了如何检测加密算法中是否存在基于缓存的信息泄漏。
项目特点
- 无痕攻击: 由于不产生缓存未命中,Flush+Flush攻击极其难以被检测。
- 高效性: 与其他缓存攻击相比,其速度更快,可更快地获取敏感信息。
- 适应性强: 虽然针对特定系统进行了优化,但基本原理可以在各种硬件配置上应用。
- 教育价值: 提供了不同类型的缓存攻击实现,有助于学术研究和安全意识提升。
在使用本项目之前,请务必了解相关风险,并确保仅在没有敏感数据的测试环境中进行操作。这是一个强大的工具,也有潜在的危害,妥善使用才能真正受益。
现在,是时候深入研究并发掘"Flush + Flush"的潜力,为您的安全研究或教学增添新的视角。立即开始,揭示隐藏在缓存深处的秘密吧!