ERASAN: Efficient Rust Address Sanitizer

Jiun Min, Dongyeon Yu, Seongyun Jeong, Dokyung Song, Yuseok Jeon

IEEE Symposium on Security and Privacy 2024 · Day 3 · Continental Ballroom 4

Rust has rapidly gained traction in systems programming due to its powerful memory safety guarantees, enforced through mechanisms like **ownership**, **borrow checking**, **lifetime inference**, and **bound checking**. These features are designed to prevent common memory-related vulnerabilities that plague languages like C and C++. However, Rust provides an escape hatch: `unsafe` blocks. These blocks allow developers to perform low-level operations that bypass Rust's strict safety rules, which are sometimes necessary for specific functionalities or performance optimizations. Unfortunately, this flexibility comes at a cost, as `unsafe` Rust is susceptible to the very memory bugs that Rust aims to eliminate. The Rust security database has reported 581 memory bugs in Rust programs over the past seven years, highlighting a critical gap in its otherwise robust security posture.

AI review

This talk introduces ERASAN, a highly efficient Address Sanitizer for Rust that targets memory bugs specifically within `unsafe` code. By leveraging MIR-level analysis to track raw pointers and their aliases, ERASAN drastically reduces instrumentation overhead while maintaining full detection capabilities for critical vulnerabilities. This is a crucial advancement for hardening Rust applications.

Watch on YouTube