arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 1802.01050cs.CR
收藏

TaintAssembly:基于污点的WebAssembly信息流控制跟踪

TaintAssembly: Taint-Based Information Flow Control Tracking for WebAssembly

William Fu, Raymond Lin, Daniel Inge

摘要:

WebAssembly(WASM)最近已经成为一种有希望的可移植,大小有效,快速和安全的Web二进制格式。由于WebAssembly可以自由地与JavaScript库交互,因此可能会出现不良行为。因此,重要的是能够检测何时可能发生这种情况。一种方法是通过污点跟踪,我们通过将污点标签应用于数据来跟踪信息流。在本文中,我们描述了TaintAssembly,一个用于解释WebAssembly的污点跟踪引擎,我们通过修改V8 JavaScript引擎创建了它。我们实现了基本的污点跟踪功能,线性内存中的污点,以及污点的概率变体。然后,我们通过将TaintAssembly引擎合并到Chromium构建中并在自定义测试脚本和各种真实世界的WebAssembly应用程序上运行它来对它进行基准测试。我们发现,我们对V8引擎的修改不会导致vanilla V8的解释WebAssembly的显着开销,使TaintAssembly适合开发和调试。

英文摘要:

WebAssembly (wasm) has recently emerged as a promisingly portable, size-efficient, fast, and safe binary format for the web. As WebAssembly can interact freely with JavaScript libraries, this gives rise to a potential for undesirable behavior to occur. It is therefore important to be able to detect when this might happen. A way to do this is through taint tracking, where we follow the flow of information by applying taint labels to data. In this paper, we describe TaintAssembly, a taint tracking engine for interpreted WebAssembly, that we have created by modifying the V8 JavaScript engine. We implement basic taint tracking functionality, taint in linear memory, and a probabilistic variant of taint. We then benchmark our TaintAssembly engine by incorporating it into a Chromium build and running it on custom test scripts and various real world WebAssembly applications. We find that our modifications to the V8 engine do not incur significant overhead with respect to vanilla V8's interpreted WebAssembly, making TaintAssembly suitable for development and debugging.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑