当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Platform-Independent Dynamic Taint Analysis for JavaScript
IEEE Transactions on Software Engineering ( IF 6.5 ) Pub Date : 2020-12-01 , DOI: 10.1109/tse.2018.2878020
Rezwana Karim , Frank Tip , Alena Sochurkova , Koushik Sen

Previous approaches to dynamic taint analysis for JavaScript are implemented directly in a browser or JavaScript engine, limiting their applicability to a single platform and requiring ongoing maintenance as platforms evolve, or they require nontrivial program transformations. We present an approach that relies on instrumentation to encode taint propagation as instructions for an abstract machine. Our approach has two key advantages: it is platform-independent and can be used with any existing JavaScript engine, and it can track taint on primitive values without requiring the introduction of wrapper objects. Furthermore, our technique enables multiple deployment scenarios by varying when and where the generated instructions are executed and it supports indirect taint sources, i.e., situations where taint enters an application via arguments passed to dynamically registered event-listener functions. We implemented the technique for the ECMAScript 5 language in a tool called Ichnaea, and evaluated it on 22 NPM modules containing several types of injection vulnerabilities, including 4 modules containing vulnerabilities that were not previously discovered and reported. On these modules, run-time overheads range from 3.17x to 38.42x, which is significantly better than a previous transformation-based technique. We also report on a case study that shows how Ichnaea can be used to detect privacy leaks in a Tizen web application for the Samsung Gear S2 smart watch.

中文翻译:

与平台无关的 JavaScript 动态污点分析

以前的 JavaScript 动态污点分析方法是直接在浏览器或 JavaScript 引擎中实现的,将它们的适用性限制在单个平台上,并且随着平台的发展需要持续维护,或者它们需要非平凡的程序转换。我们提出了一种方法,该方法依赖于检测将污点传播编码为抽象机器的指令。我们的方法有两个关键优势:它与平台无关,可以与任何现有的 JavaScript 引擎一起使用,并且它可以跟踪原始值的污点,而无需引入包装对象。此外,我们的技术通过改变生成指令的执行时间和地点来实现多种部署场景,并且它支持间接污染源,即,污点通过传递给动态注册的事件侦听器函数的参数进入应用程序的情况。我们在名为 Ichnaea 的工具中实现了 ECMAScript 5 语言的技术,并在包含多种类型注入漏洞的 22 个 NPM 模块上对其进行了评估,其中包括 4 个包含以前未发现和报告的漏洞的模块。在这些模块上,运行时开销从 3.17 倍到 38.42 倍不等,这明显优于之前基于转换的技术。我们还报告了一个案例研究,该研究展示了如何使用 Ichnaea 检测三星 Gear S2 智能手表的 Tizen Web 应用程序中的隐私泄漏。并在包含多种类型注入漏洞的 22 个 NPM 模块上对其进行了评估,其中包括 4 个包含以前未发现和报告的漏洞的模块。在这些模块上,运行时开销从 3.17 倍到 38.42 倍不等,这明显优于之前基于转换的技术。我们还报告了一个案例研究,该研究展示了如何使用 Ichnaea 检测三星 Gear S2 智能手表的 Tizen Web 应用程序中的隐私泄漏。并在包含多种类型注入漏洞的 22 个 NPM 模块上对其进行了评估,其中 4 个模块包含以前未发现和报告的漏洞。在这些模块上,运行时开销从 3.17 倍到 38.42 倍不等,这明显优于之前基于转换的技术。我们还报告了一个案例研究,该研究展示了如何使用 Ichnaea 检测三星 Gear S2 智能手表的 Tizen Web 应用程序中的隐私泄漏。
更新日期:2020-12-01
down
wechat
bug