A Context-Sensitive Pointer Analysis Framework for Rust and Its Application to Call Graph Construction

PROCEEDINGS OF THE 33RD ACM SIGPLAN INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, CC 2024(2024)

Cited 1|Views18
No score
Abstract
Existing program analysis tools for Rust lack the ability to effectively detect security vulnerabilities due to the absence of an accurate call graph and precise points-to information. We present Rupta, the first context-sensitive pointer analysis framework designed for Rust, with a particular focus on its role in constructing call graphs. Operating on Rust MIR, Rupta employs callsite-based context-sensitivity and on the-fly call graph construction to address a range of pointer analysis challenges, including method/function calls, pointer casts, and nested structs, while preserving type information. Our assessment of Rupta against two state-of-the-art call graph construction techniques, Rurta (Rapid Type Analysisbased) and Ruscg (static dispatch-only), across 13 real-world Rust programs demonstrates its high effciency and precision. In particular, our results reveal that Rupta surpasses Ruscg in soundness by discovering 29% more call graph edges and outperforms Rurta in precision by eliminating approximately 70% of spurious dynamic call edges. Consequently, Rupta has the potential to enhance existing security analysis tools, enabling them to identify a greater number of security vulnerabilities in Rust programs.
More
Translated text
Key words
Rust,Pointer Analysis,Call Graph Construction
AI Read Science
Must-Reading Tree
Example
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined