WebAssembly的存储安全保护
Memory Safety Preservation for WebAssembly
摘要:
WebAssembly(Wasm)是下一代可移植编译目标,用于在Web上部署用高级语言编写的应用程序。为了保护其内存免受不可信代码的攻击,Web浏览器引擎将编译后的Wasm程序的执行限制在内存安全的沙箱中。不幸的是,传统的内存安全漏洞(例如,缓冲区溢出和释放后使用)仍然可以破坏沙箱内的内存,并允许Wasm代码进行严重的攻击。为了防止这些攻击,我们研究了一类安全的编译器,消除(不同种类的)内存安全违规。遵循严格的方法,我们讨论内存安全的超安全属性,这让我们确定合适的安全编译标准,内存安全保护编译器。我们推测,除了在模块边界的一些限制,现有的安全机制的WASM可能足以执行内存安全保护,在短期内。从长远来看,我们观察到,在Wasm的内存安全变体的设计中提出的某些功能可以允许编译器解除这些限制,并实施宽松形式的内存安全。
英文摘要:
WebAssembly (Wasm) is a next-generation portable compilation target for deploying applications written in high-level languages on the web. In order to protect their memory from untrusted code, web browser engines confine the execution of compiled Wasm programs in a memory-safe sandbox. Unfortunately, classic memory-safety vulnerabilities (e.g., buffer overflows and use-after-free) can still corrupt the memory within the sandbox and allow Wasm code to mount severe attacks. To prevent these attacks, we study a class of secure compilers that eliminate (different kinds of) of memory safety violations. Following a rigorous approach, we discuss memory safety in terms of hypersafety properties, which let us identify suitable secure compilation criteria for memory-safety-preserving compilers. We conjecture that, barring some restrictions at module boundaries, the existing security mechanisms of Wasm may suffice to enforce memory-safety preservation, in the short term. In the long term, we observe that certain features proposed in the design of a memory-safe variant of Wasm could allow compilers to lift these restrictions and enforce relaxed forms of memory safety.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。