GitHub 用户 pIat0n 上传了一个只有几百行汇编代码的项目:BareMetal-RAM-Dumper。它不需要操作系统,靠 BIOS 中断从 U 盘直接启动,用途写得很直白——把电脑内存冷冻到零下几十度后迅速重启,在数据消失前把整块 RAM 转存到磁盘上,借此提取还残留在内存里的磁盘加密密钥。

这类攻击有个正式名字,叫冷启动攻击(Cold Boot Attack)。听起来像是新玩法,但它的技术骨架其实相当古老。

裸机U盘怎么把内存搬到磁盘上

项目的实现思路不复杂,但每一步都踩在 BIOS 时代的老规矩上。启动扇区先把第二阶段代码从磁盘读进内存,随后靠unreal mode这个古老技巧绕开1MB以上地址访问不了的限制,再用 BIOS 的 INT 0x15 E820 接口拿到内存映射表,避开保留区和内存映射I/O区域。

拿到映射之后,工具以32KB为单位循环搬运物理内存,每搬一块就用扩展写入指令INT 0x13 AH=0x43,把数据直接怼到启动盘的LBA 64扇区起。整个过程边跑边在屏幕上打进度百分比,跑到100%就说明这块内存被完整搬空了。

项目文档里写明了使用场景:把笔记本内存冷冻到约-60℃,然后马上用带这个工具的U盘重启,在电荷彻底衰减前把内存内容抢救下来。

这套打法2008年就被验证过一次

冷启动攻击能成立,靠的是DRAM的一个物理特性:断电之后,内存里的数据不会立刻清零,而是会残留一小段时间,这个现象叫remanence。温度越低,电荷泄漏越慢,可恢复的窗口就越长。

这不是这个项目的新发现。2008年,J. Alex Halderman团队在USENIX Security上发表论文《Lest We Remember: Cold Boot Attacks on Encryption Keys》,第一次系统验证了这条路——他们把DRAM冷却到约-50℃至-60℃,实测部分内存模块在这个温度下数据能保持可恢复长达数十秒到几分钟,并成功从BitLocker、FileVault、dm-crypt、TrueCrypt里全部提取出了密钥。

BareMetal-RAM-Dumper用的冷却区间,跟16年前这篇论文的实验参数几乎重合。这更像是一次民间对经典学术攻击的独立复现,而不是什么突破。

  • 结论.这是一个16年前就被证明可行的攻击手法,被一个人用汇编重新写了一遍,本质是复现而非创新。

现代电脑还怕这一套吗

这才是读者更该关心的问题:这个工具对我现在用的电脑有威胁吗?

答案要分设备看。冷启动攻击要成立,前提相当苛刻:系统得支持Legacy BIOS/CSM启动,内存得是可拆卸的DIMM模块,而且没有开启足够强的内存加密或清零机制。这几条现在的主流笔记本基本都不满足了。

近几年的设备普遍上了内存加扰/加密(比如AMD的SME/SEV、Intel的TME),密钥可能还绑定在TPM硬件里,很多笔记本干脆用焊死在主板上的LPDDR内存,物理上就没法把内存条拆下来冻。更关键的是,不少新机型已经是UEFI-only,压根不支持Legacy CSM引导,这个工具连启动都启动不起来。

这套攻击对新机型基本失效,对老设备依然是真实风险
  • 提醒.企业和IT团队真正该排查的,是那些还在服役的老款Legacy BIOS笔记本和边缘服务器——这些才是这个工具的实际打击面。

放进取证工具生态里,它算哪一档

拿这个工具跟内存取证圈里已有的选手比一比,位置就清楚了。PCILeech靠PCIe/DMA硬件在线抓内存,MemProcFS把内存镜像挂载成虚拟文件系统方便分析,LiME通过加载Linux内核模块获取内存,是取证圈用了多年的经典方案——但LiME在启用内核锁定或安全启动的系统上也常常水土不服。

裸机BIOS引导的冷启动式dumper,在这个生态里长期被认为更偏学术实验,可重复性和标准化程度都不如上面这几个工具。BareMetal-RAM-Dumper更像是一个教学级的PoC,适合安全研究者和红队拿来做演练,而不是取代成熟取证工作流的实战工具。

还有一个容易被忽略的细节:这个工具会直接覆写启动介质从LBA 64开始的数据。对搞数字取证的人来说,这意味着一旦拿它当真实取证手段用,证据的保全和链条完整性立刻成了问题——这本质上是个会自己"毁尸灭迹"的工具,只适合在受控实验环境里跑。

对普通用户而言,现在的主流设备基本免疫这套老把戏;但如果你的全盘加密方案跑在一台还支持Legacy BIOS、内存可拆的老机器上,休眠时是否清空密钥、是否启用了TPM+PIN绑定,值得认真查一遍。