[论文解读] ADsafety: Type-Based Verification of JavaScript Sandboxing
本文提出 ADsafety,一种用于验证 ADsafe 语言级 Web sandbox 中 JavaScript sandboxing 安全属性的类型系统。通过将安全属性直接编码到轻量级且 sound 的类型系统中,作者形式化验证了 ADsafe 的安全保证,并发现了其实现中此前未被察觉的错误和弱点。
Web sites routinely incorporate JavaScript programs from several sources into a single page. These sources must be protected from one another, which requires robust sandboxing. The many entry-points of sandboxes and the subtleties of JavaScript demand robust verification of the actual sandbox source. We use a novel type system for JavaScript to encode and verify sandboxing properties. The resulting verifier is lightweight and efficient, and operates on actual source. We demonstrate the effectiveness of our technique by applying it to ADsafe, which revealed several bugs and other weaknesses.
研究动机与目标
- 为解决对 JavaScript sandboxing 机制进行形式化验证的迫切需求,这些机制对保护 mashup Web 应用至关重要。
- 开发一种轻量级、可扩展的类型系统,能够验证实际 JavaScript 源代码中的安全属性,而非依赖非正式的代码审查。
- 使用一种捕捉运行时检查和能力衰减的类型系统,形式化定义并验证 ADsafe 的安全属性。
- 通过系统化的基于类型的验证,识别并修复 ADsafe 框架中此前未被发现的错误和设计缺陷。
提出的方法
- 设计一种新颖的、sound 的 JavaScript 通用类型系统,支持 sandboxing 库中常见的模式,包括动态检查和对象包装。
- 在类型系统中正式指定 ADsafe 的安全属性,如能力衰减和防止直接访问 DOM。
- 将类型系统与直接作用于源代码的静态验证器集成,实现轻量但精确的验证。
- 使用该类型系统检测 ADsafe 运行时库中的缺陷,例如对 DOM 引用的错误包装和不安全的回调处理。
- 利用源自 ML-ART 和先前 JavaScript 类型系统的流类型和对象建模技术,处理 JavaScript 的动态特性,如原型和函数对象。
- 证明该类型系统相对于完整 JavaScript 语言的 sound 性,确保所有类型检查保证在所有可能的执行中均成立。
实验结果
研究问题
- RQ1能否设计一种类型系统,以形式化方式验证如 ADsafe 这类真实世界 JavaScript sandboxing 框架的安全属性?
- RQ2如何在不牺牲可扩展性或表达力的前提下,有效编码并强制执行 JavaScript 中的能力衰减和运行时检查?
- RQ3通过形式化的基于类型的验证,能够发现 ADsafe 实现中的哪些具体安全弱点?
- RQ4基于类型的验证在在多大程度上可以替代手动代码审查来保护复杂的 sandboxing 库?
主要发现
- ADsafety 类型系统成功验证了 ADsafe 的所有预期安全属性,包括对 DOM 引用的正确包装和对直接能力访问的阻止。
- 在验证过程中,系统发现了 ADsafe 运行时库中多个此前未被察觉的错误和设计缺陷,例如对事件回调的错误处理和不恰当的对象包装。
- 该类型系统检测出 ADsafe 未能强制执行一种理想的信道流属性,表明存在潜在的数据泄露安全漏洞。
- 验证过程揭示,ADsafe 的静态检查器(JSLint)本身不足以应对所有情况,因为它无法捕获某些动态安全违规。
- 该类型系统被证明对完整 JavaScript 语言是 sound 的,提供了形式化保证:所有通过类型检查的程序在定义的安全模型下都是安全的。
- 该方法表明,基于类型的验证在真实世界的 sandboxing 代码中既实用又有效,为手动审查提供了一种可扩展的替代方案。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。