Clear Sky Science · zh

理解运行时移动靶防御在物联网与网络物理系统中的适用性

· 返回目录

为什么微小计算设备需要强大防护

从智能恒温器到工业机器人,日常生活越来越依赖那些默默测量、控制并自动化我们世界的小型联网设备。但这些设备也可能被黑客利用长期已知的软件缺陷劫持并夺取控制权。本文探讨一种强有力的安全策略——移动靶防御(moving target defense)——在为大多数物联网(IoT)和网络物理系统(CPS)提供算力的有限硬件上是否真正有效,以及这对保护我们日益自动化世界安全意味着什么。

Figure 1
Figure 1.

为黑客设立一个不断移动的靶心

传统安全工具如防火墙或杀毒软件大多在攻击已经开始后作出反应。移动靶防御采取不同策略:它不断改变系统的关键部分,使攻击者无法确定应当瞄准何处。这里研究的具体技术是地址空间布局随机化(Address Space Layout Randomization,ASLR),它在每次程序运行时打乱程序和库在内存中的位置。这样,即使攻击者知道存在某个脆弱点,也难以再次准确定位其地址。ASLR 已成为主流操作系统的标准,但它在资源受限的小型设备——即常见于物联网和网络物理系统的设备——上的表现尚未被充分理解。

对三种系统的测试

作者比较了 ASLR 在三种基于 Linux 的环境中的效果:运行在典型 Intel 处理器上的 64 位 Kali Linux 系统,以及两台运行 Raspberry Pi OS 和 OpenWRT 的 32 位 ARM 系统,这些后者更接近边缘设备、路由器和网关中常见的硬件。研究并非盲目尝试入侵,而是采用科学家的视角:他们重复记录一个常见系统库(libc)在内存中的位置,构建大量真实地址的数据集。接着分析这些地址的分布范围、地址各字节随每次运行的变化情况,以及使用熵(entropy)这一度量评估整体模式的不可预测性。由此可以量化攻击者猜中正确位置的难度。

“足够随机”到底有多随机?

结果显示 64 位系统与 32 位设备之间存在明显差异。在 64 位 Kali Linux 上,地址几乎在广泛范围内均匀分布:地址的大多数字节变化丰富,很少有位置重复,统计测试也表明这些选择接近真正随机。对攻击者而言,这意味着巨大的搜索空间,难以快速猜中正确位置。相比之下,在 32 位系统上,即使收集到 100,000 个样本,实际上只出现了约 256 个不同地址中的一小部分。若干字节几乎不变,这主要由体系结构约束以及内存页对齐的要求所致。实际上,这意味着攻击者可能只需几百次尝试——而非数百万或数十亿次——就能命中正确地址。

Figure 2
Figure 2.

真实世界攻击与低成本代价

为检验这些差异在实践中是否重要,研究者在三种系统上都实现了一类称为返回导向编程(return-oriented programming,ROP)的控制劫持攻击。当一个关键的加固选项——位置无关可执行(Position Independent Executable,PIE)被关闭时,攻击成功:程序的正常执行流被劫持并转向由攻击者选择的隐藏函数。但一旦启用 PIE,使主程序的位置也可移动并与 ASLR 配合,攻击就可靠地导致程序崩溃而不是被接管——这一点在强大的 64 位机器和较弱的 32 位 ARM 设备上均有效。测量还显示,启用 ASLR、栈保护和不可执行内存仅在内存使用和执行时间上带来小幅开销,约在百分之一量级。

对日常设备的意义

研究结论是:尽管 32 位 ARM 系统上的 ASLR 在数学上比 64 位桌面和服务器上的更弱、随机性更低,但它仍提供了类似于早期 32 位 PC 的保护,并且在与其他内置防御结合时可以成功阻挡直接的攻击。对于极小的物联网传感器,ASLR 往往不可行,因为硬件缺乏必要的内存特性;在这些场景下,安全启动和轻量级加密等技术更为合适。但对于路由器和 Raspberry Pi 级别的边缘设备,启用 ASLR、PIE 及相关防护既可行又值得推广。将这些平台迁移到 64 位架构,并在网络和软件层面配合其它移动靶策略,可以显著提高攻击者将日常物件变为武器的难度。

引用: Gurung, D., Pradhan, M.P. & Gurung, S. Towards understanding the applicability of runtime moving target defense for the internet of things and cyber physical systems. Sci Rep 16, 5907 (2026). https://doi.org/10.1038/s41598-026-36797-4

关键词: 移动靶防御, ASLR, 物联网安全, 网络物理系统, 缓冲区溢出攻击