堆风水
堆风水 是什么?
堆风水Alexander Sotirov 在 2007 年提出的确定性堆整理技术,通过精心安排分配,让易受攻击的对象与攻击者控制的对象紧邻。
Alexander Sotirov 在 2007 年 Black Hat Europe 上提出了 Heap Feng Shui。相对于统计意义上的堆喷射,堆风水通过在 JavaScript 中精确地分配、释放并再分配对象来塑造浏览器堆,使触发内存破坏后,脆弱对象与攻击者控制的字节稳定相邻。攻击者可以耗尽 freelist、利用 size class bin,并用长生命周期分配作为锚点,在 ASLR 与随机化分配器之下仍取得确定的布局。该思想又被推广到内核堆(Linux SLUB、Windows pool feng shui)与 JavaScript 引擎(V8、SpiderMonkey)中。现代缓解措施包括强化分配器(PartitionAlloc、scudo)、ARM MTE、GWP-ASan,以及为敏感元数据使用隔离堆。
● 示例
- 01
在 JavaScript 中触发精确分配,将易受攻击的 JIT 对象紧邻攻击者可控的 ArrayBuffer。
- 02
在 Linux 内核中通过 SLUB 风水,将 UAF 对象与 cred 结构对齐,实现 root 提权。
● 常见问题
堆风水 是什么?
Alexander Sotirov 在 2007 年提出的确定性堆整理技术,通过精心安排分配,让易受攻击的对象与攻击者控制的对象紧邻。 它属于网络安全的 攻击与威胁 分类。
堆风水 是什么意思?
Alexander Sotirov 在 2007 年提出的确定性堆整理技术,通过精心安排分配,让易受攻击的对象与攻击者控制的对象紧邻。
堆风水 是如何工作的?
Alexander Sotirov 在 2007 年 Black Hat Europe 上提出了 Heap Feng Shui。相对于统计意义上的堆喷射,堆风水通过在 JavaScript 中精确地分配、释放并再分配对象来塑造浏览器堆,使触发内存破坏后,脆弱对象与攻击者控制的字节稳定相邻。攻击者可以耗尽 freelist、利用 size class bin,并用长生命周期分配作为锚点,在 ASLR 与随机化分配器之下仍取得确定的布局。该思想又被推广到内核堆(Linux SLUB、Windows pool feng shui)与 JavaScript 引擎(V8、SpiderMonkey)中。现代缓解措施包括强化分配器(PartitionAlloc、scudo)、ARM MTE、GWP-ASan,以及为敏感元数据使用隔离堆。
如何防御 堆风水?
针对 堆风水 的防御通常结合技术控制与运营实践,详见上方完整定义。
堆风水 还有哪些其他名称?
常见的别称包括: 堆整理。