https://arxiv.org/abs/2409.02292

这篇论文挺有意思,研究的是一个非常反直觉的安全问题:

一台完全没有联网、没有 Wi-Fi、没有蓝牙的电脑,能不能偷偷把数据发送出去?

答案是:可以。甚至不需要额外安装无线发射器,攻击者就能利用计算机内部的内存硬件,让电脑自己产生无线电信号。

论文标题是:

RAMBO: Leaking Secrets from Air-Gap Computers by Spelling Covert Radio Signals from Computer RAM

作者:Mordechai Guri,以色列本-古里安大学安全研究团队的研究人员。

论文发表于 2024 年,相关工作被 Nordic Conference on Secure IT Systems 2023 接收。

它研究的是一种叫做 Air-Gap Covert Channel(物理隔离环境中的隐蔽通信信道) 的攻击。

先说结论:这不是黑客远程攻破一台断网电脑,而是攻击者已经设法在这台电脑上植入恶意程序,然后利用硬件运行时产生的电磁辐射,把数据偷偷传出去。

一、核心原理:RAM 为什么能变成无线电发射器?

先理解一个基础知识:计算机只要有电流变化,就会产生电磁场。

这不是 RAM 特有的现象,CPU、GPU、主板、内存总线、电源等都会产生电磁辐射。

RAMBO 利用的是内存总线(Memory Bus)的电磁辐射。

我们知道,CPU 和 RAM 之间需要通过内存总线交换数据。

例如 CPU 要向内存写入数据:

  1. CPU 发出内存写入请求。
  2. 内存总线上的数据线发生电压变化。
  3. 电压和电流的快速变化产生电磁场。
  4. 电路板上的导线会产生一定的电磁辐射。

正常情况下,这些辐射只是计算机运行过程中不可避免的副产品。

但论文的关键发现是:

如果我们能够控制内存访问的时间和频率,就能够有规律地改变电磁辐射,从而把它变成一种可以携带数据的信号。

这就相当于把 RAM 变成了一台非常简陋的无线电发射器。

1. 如何用 RAM 发送 0 和 1?

论文使用了一种非常经典的数字调制技术:OOK(On-Off Keying,通断键控)。

它的逻辑很简单:

  • 发送 1:持续执行内存写入操作,产生相应的电磁辐射。
  • 发送 0:让线程休眠,停止产生这种有规律的辐射。

举个例子,要发送一个字节:

10110010

恶意程序就按照这个序列控制内存访问:

有信号 → 无信号 → 有信号 → 有信号
       → 无信号 → 无信号 → 有信号 → 无信号

接收端只要能够检测到信号的有无,就能还原出 0 和 1。

这里有个很有意思的细节:论文使用了 x86 指令 MOVNTI。

这是一个非临时存储指令(Non-Temporal Store),主要用于将数据写入内存,避免不必要的缓存污染。研究人员利用它维持内存总线活动,产生更明显的电磁信号。

2. 为什么还需要 Manchester 编码?

论文还使用了 Manchester Encoding(曼彻斯特编码)。

因为无线电接收端存在一个问题:它怎么知道每一个比特从哪里开始、在哪里结束?

如果连续发送很多个 1,接收端可能很难确定比特边界。

曼彻斯特编码通过在每个比特周期中间制造一次信号跳变,帮助接收端同步时钟。

它的代价是占用更多带宽,但同步和抗干扰能力更好。

所以,整个过程其实非常像传统无线通信系统:

无线通信概念RAMBO 中的实现
发射器被感染的计算机 RAM 总线
信号源内存读写操作
调制OOK
编码Manchester
接收器SDR 软件无线电
天线普通天线
解码软件解调、恢复二进制数据

这里最值得注意的是:整个无线信号的产生过程,是通过软件控制普通硬件完成的,并没有增加专门的无线发射模块。

二、攻击者究竟如何接收数据?

论文使用的是 SDR(Software Defined Radio,软件定义无线电)。

具体实验设备包括:

  • Ettus USRP B210 软件无线电设备。
  • 普通天线。
  • 一台运行接收和解调程序的计算机。

SDR 可以理解成一台能够通过软件处理无线电信号的通用接收设备。

它接收计算机 RAM 产生的电磁信号,然后进行:

  1. 采集无线电信号。
  2. 分析信号强度变化。
  3. 识别 OOK 信号。
  4. 根据 Manchester 编码恢复比特。
  5. 重新组合成原始数据。

最终,接收端就能够还原被盗取的信息。

注意,这里不需要目标电脑拥有 Wi-Fi 或蓝牙功能。接收端也不需要与目标电脑建立任何网络连接。

三、实验结果:到底能传多远、传多快?

这是论文最值得关注的部分。

研究人员在三台工作站上进行了实验:

  • Intel i7 3.6GHz CPU
  • 16GB RAM
  • 内存频率 2133~2400MHz
  • Ubuntu 18.04.6

论文测试了不同发送速度和接收距离。

1. 传输距离

论文实验中的信噪比(SNR)

距离平均 SNR
0.5 米38 dB
1 米30 dB
2 米27 dB
3 米22 dB
4 米17 dB
5 米15 dB
6 米12 dB
7 米8 dB

可以看到,距离越远,信号质量越差。

2. 传输速度与错误率

论文测试了三种传输速度:

单比特时间理论速率最远测试距离
10ms100 bit/s7 米
5ms200 bit/s4.5 米
1ms1000 bit/s3 米

这里有个很重要的工程权衡:

传输速度越快,距离越短,信号错误率也越容易上升。

在 1000 bit/s 的设置下,论文报告的 3 米距离误码率约为 2%~4%。

研究人员还尝试了 5000 bit/s 甚至更高的速度,但误码率大多超过 5%,实用性明显下降。

3. 能偷走什么数据?

论文给出了一些实际数据量的传输时间:

数据数据大小100 bit/s200 bit/s1000 bit/s
128-bit 密码128 bit1.28秒0.64秒0.128秒
RSA 密钥4096 bit41秒20秒4秒
生物特征数据10000 bit100秒50秒10秒
小图片25000 bit250秒125秒25秒
文档40000 bit400秒200秒40秒

这就很有意思了。

你可能觉得 1000 bit/s 很慢,但对于窃取密码、密钥、键盘输入记录来说,其实已经相当够用了。

攻击者并不需要通过这个信道传输整个硬盘。

他只需要把最有价值的信息传出去。

以上数据是论文给出的实验估算,不代表所有类型数据在任意距离和环境下都能达到这些速度。

四、如何防御?断网为什么还不够?

论文给出了几种防御方案。

1. 法拉第笼(Faraday Cage)

这是最直接的办法。

使用金属屏蔽机箱或者专门的屏蔽房间,阻止电磁辐射向外传播。

论文使用铜箔进行了屏蔽实验,报告其能够有效阻断 RAMBO 信号。

但这种方法成本较高,而且设备的散热、供电和数据接口都需要考虑屏蔽设计。

2. 无线电频谱监控

在涉密区域部署频谱分析设备,持续监控异常无线电信号。

如果一台没有无线通信需求的计算机,突然在特定频率产生有规律的信号,就值得调查。

问题是,计算机本身就会产生大量电磁辐射,识别恶意信号并不容易。

3. 监控异常内存操作

可以从操作系统、内核或者虚拟机管理器层面,监控异常的内存读写行为。

例如,一个普通程序突然持续进行大量非临时内存写入,就可能值得关注。

但论文也指出,这种检测存在误报问题,因为正常操作系统本来就有大量内存活动。

4. 隔离涉密设备

这实际上是更重要的措施。

  • 限制外部无线电接收设备进入涉密区域。
  • 对不同安全等级的设备进行物理隔离。
  • 严格控制 USB 等外部介质。
  • 限制人员和设备的物理接触权限。

这里有个容易忽略的事实:

空气隔离(Air Gap)解决的是网络连接问题,不等于解决了所有信息泄露问题。

五、我认为这篇论文最值得思考的三个问题

1. 这不是 RAM 的漏洞,而是物理世界的副作用

这是我觉得整篇论文最有价值的地方。

我们平时理解计算机安全,通常是这样的:

软件安全:
漏洞 → 攻击 → 数据泄露

网络安全:
网络连接 → 通信 → 数据泄露

但 RAMBO 展示的是另一种情况:

程序执行
   ↓
控制硬件行为
   ↓
产生物理信号
   ↓
信号携带信息
   ↓
外部设备接收
   ↓
数据泄露

这里没有利用传统意义上的软件漏洞,也没有利用网络协议。

它利用的是计算机正常运行过程中不可避免的物理现象。

这类攻击有一个专业名称:Side-Channel Attack(侧信道攻击)。

侧信道攻击的核心思想是:

不直接攻击系统存储的数据,而是通过系统运行过程中产生的额外信息,推断或者恢复原本不应该公开的信息。

例如:

  • CPU 功耗变化,可以推测加密运算过程。
  • 执行时间差异,可以推测密钥信息。
  • 声音变化,可以推测硬件运行状态。
  • 电磁辐射,可以恢复处理过程中的数据。

RAMBO 就是利用电磁辐射建立一个隐蔽的数据传输通道。

2. 物理隔离的安全边界,可能比我们想象的复杂

过去我们可能认为:

一台电脑没有网卡,没有 Wi-Fi,没有蓝牙,拔掉网线,就基本上无法向外传输数据。

但实际上,电脑还有很多物理输出:

硬件可以利用的物理信号
RAM电磁辐射
CPU电磁辐射、功耗
GPU 风扇声音
屏幕光信号
键盘 LED光信号
电源电磁辐射、声音
SATA 线缆电磁辐射

这些都曾经成为相关安全研究的对象。

换句话说,计算机不是一个纯粹的软件系统,而是一个物理系统。

软件运行的结果,最终会反映在电流、电压、温度、声音、光线和电磁场上。

只要能够控制其中某种物理现象,就可能构建一条隐蔽通信信道。

3. 这类攻击的真正门槛在哪里?

这里需要特别冷静。

RAMBO 并不是说黑客站在办公室外面,就能随便读取附近电脑的内存。

它有非常严格的前提:

  1. 攻击者必须先通过 USB、供应链或者内部人员等方式感染目标电脑。
  2. 恶意程序必须能够执行并控制内存操作。
  3. 攻击者需要在附近部署 SDR 接收设备和天线。
  4. 接收端需要知道如何解调和恢复数据。
  5. 传输距离、环境干扰和误码率都会限制实际效果。

另外,论文的实验平台是 Intel i7、DDR4 内存以及 Ubuntu 18.04,不能直接把实验数据推广到所有现代计算机,尤其不能认为 DDR5、不同主板设计和不同机箱都具有相同的传输效果。

还有一点:论文主要证明了这条信道的可行性,并没有证明现实世界中已经存在大规模利用 RAMBO 的攻击活动。

所以它更接近一项安全研究和攻击技术验证,而不是一个正在普遍发生的安全威胁。

六、我的总结

值得了解的安全研究

我认为这篇论文最有意思的不是 1000 bit/s,也不是 7 米的传输距离。

而是它揭示了一个计算机安全领域很重要的事实:

我们以为计算机没有对外通信能力,但实际上,计算机运行本身就在不断向物理世界释放信息。

RAMBO 把这种原本无意产生的电磁辐射,变成了一种可以编码、调制、接收和解码的数据传输通道。

从工程角度看,它也让我想到一个问题:

我们现在越来越重视软件层面的安全,比如沙箱、权限控制、容器隔离、网络隔离、零信任。

但这些安全机制主要解决的是软件和逻辑层面的边界问题。

如果攻击者已经控制了底层硬件行为,那么信息仍然可能通过逻辑边界之外的物理信道泄露。

这也是为什么真正高等级的涉密环境,不仅需要网络隔离,还需要考虑电磁屏蔽、物理区域划分和设备管理。

最终,计算机安全的边界不只是网络边界,而是整个物理世界。

论文原文:RAMBO – arXiv:2409.02292

如果想进一步深入,我建议研究一个相关方向:TEMPEST(电磁信息泄漏防护)。它比 RAMBO 历史更悠久,也涉及一个很有意思的问题:能不能通过显示器、线缆产生的电磁辐射,还原屏幕上显示的文字和图像?