Proceedings 2021 Network and Distributed System Security Symposium 2021
DOI: 10.14722/ndss.2021.24078
|View full text |Cite
|
Sign up to set email alerts
|

Доверя́й, но проверя́й: SFI safety for native-compiled Wasm

Abstract: WebAssembly (Wasm) is a platform-independent bytecode that offers both good performance and runtime isolation. To implement isolation, the compiler inserts safety checks when it compiles Wasm to native machine code. While this approach is cheap, it also requires trust in the compiler's correctness-trust that the compiler has inserted each necessary check, correctly formed, in each proper place. Unfortunately, subtle bugs in the Wasm compiler can break-and have broken-isolation guarantees. To address this probl… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
6
2

Relationship

4
4

Authors

Journals

citations
Cited by 12 publications
(16 citation statements)
references
References 43 publications
0
5
0
Order By: Relevance
“…The Wasm execution engine must also be trusted to correctly execute a binary, so that a computation is faithfully executed according to the published bytecode semantics [80,93], and that the program is unable to escape its sandbox, damage or spy on a delegate, or have any other side-effect than allowed by the Veracruz sandboxing model. Recent techniques have been developed that use post-compilation verification to establish this trust [48]-we briefly discuss our ongoing experiments in this area in §6. Compiler verification could be used to engender trust in the Wasm execution engine, though we are not aware of any verified, highperformance Wasm interpreters or JITs suitable for use with Veracruz at the time of writing (see [94] for progress toward this, however).…”
Section: Threat Modelmentioning
confidence: 99%
See 1 more Smart Citation
“…The Wasm execution engine must also be trusted to correctly execute a binary, so that a computation is faithfully executed according to the published bytecode semantics [80,93], and that the program is unable to escape its sandbox, damage or spy on a delegate, or have any other side-effect than allowed by the Veracruz sandboxing model. Recent techniques have been developed that use post-compilation verification to establish this trust [48]-we briefly discuss our ongoing experiments in this area in §6. Compiler verification could be used to engender trust in the Wasm execution engine, though we are not aware of any verified, highperformance Wasm interpreters or JITs suitable for use with Veracruz at the time of writing (see [94] for progress toward this, however).…”
Section: Threat Modelmentioning
confidence: 99%
“…SFI systems, such as Wasm, add runtime checks to loads, stores, and control flow transfers to ensure sandboxed code cannot escape from its address space region, though bugs in SFI compilers can (and do) incorrectly remove these checks and introduce bugs that let untrusted code escape its sandbox [12,43]. To address this-following other SFI systems [65,99,102]-we have built a static verifier for binary code executed by Veracruz, implemented as an extension of VeriWasm [49], an open-source SFI verifier for compiled Wasm code. To adapt VeriWasm to Veracruz, we added support for AArch64, and ported VeriWasm from the Lucet [17] toolchain to Wasmtime, as used by Veracruz.…”
Section: Related Workmentioning
confidence: 99%
“…Our work includes the compiler in the TCB. Previous work on SFI (e.g., [2], [4], [9], [62]) instead uses a verifier (a small verified trusted program) or a theorem prover [23], [63] to validate the relevant SFI properties of compiled sandbox code. However these verifiers do not currently establish sufficient properties for zero-cost transitions.…”
Section: Related Workmentioning
confidence: 99%
“…9 For example, they showed that some Wasm runtimes fail to properly separate the stack and heap. Though they did not identify such bugs in Lucet, these classes of bugs are inevitable-and, while identifying such bugs is important, this class of bugs is orthogonal and well-understood in the SFI literature (and addressed, for example, by VeriWasm [44]). We focus on addressing Spectre attacks, which can fundamentally undermine the guarantees of even bug-free Wasm toolchains.…”
Section: Implementation Bugs In Wasmmentioning
confidence: 99%

Swivel: Hardening WebAssembly against Spectre

Narayan,
Disselkoen,
Moghimi
et al. 2021
Preprint
Self Cite