Understanding the Challenges in Detecting Vulnerabilities of Rust Applications
Memory safety is crucial for system software, as memory corruption can lead to exploitation like remote code execution. Rust is prominent among memory-safe languages due to its widespread use in rewriting system software, such as the Linux kernel and the Tor project. Rust enforces strict compile-time policies that promote safe memory usage but allow unsafe code for compatibility reasons. The RustSec database shows developers’ reckless use of unsafe in Rust code brings back old memory issues. Moreover, industries are increasingly adopting Rust alongside C/C++ code-bases, highlighting the need to automatically detect Rust vulnerabilities or memory isolation techniques. Because the latter is expensive, there is an increasing need to develop efficient methods for detecting Rust vulnerabilities.In this study, we explore the scope and practicality of the most popular Rust vulnerability detectors to identify the challenges in developing an ideal vulnerability detector for the Rust language. We prepare a list of known memory safety vulnerabilities and select six scalable Rust vulnerability tools compatible with most Rust projects. Our toolset consists of three static and two dynamic analysis detectors, including a fuzzer assistant. In addition, we will cover the significance of prioritizing vulnerability and exploitation. Finally, we discuss a symbolic analysis method to automatically produce exploitation with the help of fuzzer and RULF.
Authors
- Mustakimur Rahman Khandaker (ORCID: https://orcid.org/0000-0003-1854-3794)
- Diane Beightol Stephens
- Kawkab Aldoshan
Institutions
- University of Georgia (US)
Publication Details
- Published
- 2024-10-07
- DOI
- https://doi.org/10.1109/secdev61143.2024.00012
- Citations
- 1
- Primary Topic
- Electrostatic Discharge in Electronics
- Type
- article
- Field-Weighted Citation Impact
- 0.21