WebKit JavaScript 字节码中的信息流控制
密码学与安全
2014-01-22 v2 编程语言
摘要
当今网站通常将来自多个来源的 JavaScript 代码进行组合,这些来源既包括可信的也包括不可信的。因此,JavaScript 安全性至关重要。一个具体且有趣的问题是 JavaScript 的信息流控制(IFC)。在本文中,我们为生产级 Web 浏览器的 JavaScript 引擎(具体为 Safari 的 WebKit 引擎)开发、形式化并实现了一种动态 IFC 机制。我们的 IFC 机制工作在 JavaScript 字节码层面,因此能够利用业界在优化源码到字节码编译器及字节码解释器方面多年的成果。我们同时跟踪显式流和隐式流,并观察到仅存在中等的性能开销。在字节码层面工作带来了新的挑战,包括字节码中非结构化控制流的广泛使用(这使程序上下文污点的降低变得复杂)、非结构化异常(进一步使问题复杂化)以及使 IFC 分析保持宽松性的需求。我们阐述了如何应对这些挑战,形式化地建模了 JavaScript 字节码语义及其插桩,证明了终止不敏感非干扰这一标准性质,并展示了在优化原型上的实验结果。
引用
@article{arxiv.1401.4339,
title = {Information Flow Control in WebKit's JavaScript Bytecode},
author = {Abhishek Bichhawat and Vineet Rajani and Deepak Garg and Christian Hammer},
journal= {arXiv preprint arXiv:1401.4339},
year = {2014}
}