MAD: Memory Allocation meets Software Diversity

本文提出了一种名为 MAD(内存分配多样性)的新方法,通过结合内存分配与软件多样性原则,利用两种新颖的空间多样化技术克服内存子系统熵不足的障碍,以硬件和软件无关的方式有效延缓 DRAM 错误(如 RowHammer 攻击),从而为系统响应争取宝贵时间。

Manuel Wiesinger, Daniel Dorfmeister, Stefan Brunthaler

发布于 Thu, 12 Ma
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一种名为 MAD(Memory Allocation Diversity,内存分配多样性)的新防御技术,旨在对抗一种名为 RowHammer(行锤击) 的电脑硬件黑客攻击。

为了让你轻松理解,我们可以把电脑内存想象成一个巨大的、拥挤的公寓楼,而黑客就是试图在这个楼里搞破坏的“捣乱者”。

1. 什么是 RowHammer(行锤击)攻击?

想象一下,这栋公寓楼里的房间(内存单元)排列得非常紧密。

  • 攻击原理:黑客不需要直接闯入某个房间偷东西。相反,他疯狂地、反复地敲击某个房间的门(不断访问相邻的内存行)。这种剧烈的“震动”会导致隔壁房间里的东西(数据)发生错位或损坏(比特翻转)。
  • 后果:一旦隔壁房间的数据(比如你的密码、系统权限)被震坏了,黑客就能利用这个漏洞控制你的电脑,甚至获得最高权限。
  • 现状:以前的防御方法就像是在门口装个锁,或者只盯着特定的几个房间。但现在的黑客手段升级了,他们能利用各种复杂的“按摩”手法(Memory Massaging),不管怎么排列房间,总能找到那个脆弱的邻居。

2. MAD 是怎么工作的?(核心比喻)

MAD 的核心思想是:“让房间分配变得不可预测,像洗牌一样。”

传统的内存分配就像一个死板的图书管理员

  • 如果你借书(申请内存),他总按顺序给你第 1 号、第 2 号、第 3 号书架。
  • 如果你还书(释放内存),他总把书放回原来的位置。
  • 黑客的对策:黑客只要摸清了这个规律,就能精准地计算出:“如果我借了 A 和 B,还了 C,下一次系统一定会把 D 放在我想要的隔壁位置。”这就是所谓的“内存按摩”。

MAD 引入了两个新招数,把管理员变成了一个“疯狂的魔术师”:

招数一:水平多样性(Horizontal Diversity)—— “借书不还,原地打转”

  • 传统做法:你借了书,还了,管理员立刻把书放回原处。下次你再借,可能还是同一本书,或者隔壁的书。
  • MAD 的做法
    • 管理员准备了两组书架:“借出书架”(Allocation Caches)和**“归还书架”**(Shadow Caches)。
    • 当你还书时,书不会马上回到原来的位置,而是被随机扔进“归还书架”的某个角落。
    • 当你再次借书时,管理员优先从“归还书架”里随机抓一本书给你,而不是去仓库(底层内存)拿新书。
    • 效果:即使你反复借还,你拿到的书(内存块)总是在一个小的、随机的圈子里打转,而不是按顺序遍历整栋楼。黑客想通过“借 - 还 - 借”来摸清规律,发现根本摸不着头脑。

招数二:垂直多样性(Vertical Diversity)—— “把大房间拆小,把小房间拼大”

  • 问题:如果“归还书架”满了怎么办?或者管理员没书给你了怎么办?
  • MAD 的做法
    • 拼凑(合并):如果在“归还书架”里发现两个相邻的小空房间,管理员会主动把它们拼成一个大房间,随机放到另一个地方。
    • 拆分(分割):如果“借出书架”空了,管理员会从仓库里拿一个大房间,随机拆成两个小房间给你。
    • 效果:这就像是在玩俄罗斯方块,房间的大小和位置时刻在变。黑客原本计划好的“完美邻居”布局,瞬间就被打乱了。

3. MAD 带来的好处

  1. 让黑客“晕头转向”
    以前黑客只需要尝试几千次就能找到漏洞。现在,因为房间分配是随机且不断循环的,黑客可能需要尝试几百亿次才能碰巧找到那个脆弱的邻居。这就像让黑客在迷宫里找出口,但迷宫的墙壁每走一步就随机移动一次。

  2. 像“烟雾报警器”一样检测攻击
    如果黑客真的在疯狂地“借书”和“还书”(试图耗尽内存来制造漏洞),MAD 会发现“归还书架”和“借出书架”的状态变得非常奇怪(比如书架总是满的或总是空的)。这种异常就像触发了烟雾报警器,系统可以立刻警觉:“嘿,有人在搞鬼!”然后采取重启或分析等行动。

  3. 不需要换硬件
    以前的防御往往需要更换特殊的内存条(硬件)。MAD 纯粹是软件层面的魔法,不需要改动电脑硬件,任何电脑装上它就能用。

4. 总结

这篇论文提出的 MAD 就像给电脑内存分配系统装上了一个随机的、会跳舞的管家

  • 以前:管家按部就班,黑客容易预测。
  • 现在:管家把内存块像洗牌一样随机分发、合并、拆分。
  • 结果:黑客想通过“行锤击”震坏数据变得极其困难,因为他在敲错门之前,门的位置已经变了。即使黑客真的成功了,MAD 也能通过观察管家的异常忙碌来发现攻击。

简单来说,MAD 用混乱(多样性)战胜了秩序(可预测性),让黑客的精密计算变得毫无用处。