中文

基于受控故障注入的软件基于故障隔离的实证安全分析

密码学与安全 2025-09-11 v2

摘要

我们日常使用浏览器访问各种信息。由于浏览器通常处理来自未知来源的脚本、媒体和可执行代码,它们构成了用户与对手之间安全边界。常见的攻击向量是JavaScript,由于现代JavaScript引擎的复杂性,它暴露了巨大的攻击面。为缓解这些威胁,现代引擎越来越采用软件基于故障隔离(SFI)。一个突出的例子是Google的V8堆沙箱,它代表了最广泛部署的SFI机制,保护数十亿用户遍及所有基于Chromium的浏览器以及诸多基于Node.js和Electron的应用程序。堆沙箱将地址空间分为两个部分:一个包含受信任、安全敏感的元数据,另一个包含可访问给不受信任代码的堆内存。在技术层面,沙箱通过删除原始指针并使用转换表来解析对受信任对象的引用来强制执行隔离。因此,除非代码处理来自受沙箱堆内存数据的方式存在缺陷,否则攻击者无法通过对受控沙箱数据的完全控制来破坏受信任数据。尽管如此类SFI机制广泛应用,但却见于很少的安全测试。在本工作中,我们提出了一种新的测试技术,用于建模现代SFI实现的安全边界。遵循SFI威胁模型,我们假设攻击者对沙箱的内存拥有强大的控制权。我们通过对来自受信任域的内存加载进行仪器化,并访问受攻击者控制的沙箱内存来实现这一点。然后我们注入故障以触发受信任域中的内存损坏。在全面评估中,我们在V8中识别出19个安全缺陷,使攻击者能够绕过沙箱。

关键词

引用

@article{arxiv.2509.07757,
  title  = {Empirical Security Analysis of Software-based Fault Isolation through Controlled Fault Injection},
  author = {Nils Bars and Lukas Bernhard and Moritz Schloegel and Thorsten Holz},
  journal= {arXiv preprint arXiv:2509.07757},
  year   = {2025}
}