Seneca: Taint-Based Call Graph Construction for Java Object Deserialization
Object serialization and deserialization is widely used for storing and preserving objects in files, memory, or database as well as for transporting them across machines, enabling remote interaction among processes and many more. This mechanism relies on reflection, a dynamic language that introduces serious challenges for static analyses. Current state-of-the-art call graph construction algorithms does not fully support object serialization/deserialization, i.e., they are unable to uncover the callback methods that are invoked when objects are serialized and deserialized. Since call graphs are a core data structure for multiple type of analysis (e.g., vulnerability detection), an appropriate analysis cannot be performed since the call graph does not capture hidden (vulnerable) paths that occur via callback methods. In this paper, we present Seneca, an approach for handling serialization with improved soundness in the context of call graph construction. Our approach relies on taint analysis and API modeling to construct sound call graphs. We evaluated our approach with respect to soundness, precision, performance, and usefulness in detecting untrusted object deserialization vulnerabilities. Our results show that Seneca can create sound call graphs with respect to serialization features. The resulting call graphs do not incur significant overhead and were shown to be useful for performing identification of vulnerable paths caused by untrusted object deserialization.
Wed 23 OctDisplayed time zone: Pacific Time (US & Canada) change
16:00 - 17:40 | Static Analysis and Program Verification 3OOPSLA 2024 at IBR East Chair(s): Frank Tip Northeastern University | ||
16:00 20mTalk | Enhancing Static Analysis for Practical Bug Detection: An LLM-Integrated Approach OOPSLA 2024 Haonan Li University of California at Riverside, USA, Yu Hao University of California at Riverside, USA, Yizhuo Zhai University of California at Riverside, USA, Zhiyun Qian University of California at Riverside, USA DOI | ||
16:20 20mTalk | PP-CSA: Practical Privacy-Preserving Software Call Stack Analysis OOPSLA 2024 Zhaoyu Wang HKUST, Pingchuan Ma HKUST, Huaijin Wang , Shuai Wang Hong Kong University of Science and Technology DOI | ||
16:40 20mTalk | Semantic-Type-Guided Bug Finding OOPSLA 2024 Kelvin Qian Johns Hopkins University, Scott F. Smith The Johns Hopkins University, Brandon Stride Johns Hopkins University, Shiwei Weng Johns Hopkins University, Ke Wu Johns Hopkins University DOI | ||
17:00 20mTalk | Seneca: Taint-Based Call Graph Construction for Java Object Deserialization OOPSLA 2024 Joanna C. S. Santos University of Notre Dame, Mehdi Mirakhorli Rochester Institute of Technology, Ali Shokri Virginia Tech DOI | ||
17:20 20mTalk | VeriEQL: Bounded Equivalence Verification for Complex SQL Queries with Integrity ConstraintsOOPSLA 2024 Distinguished Paper Award OOPSLA 2024 Yang He Simon Fraser University, Pinhan Zhao University of Michigan, Xinyu Wang University of Michigan, Yuepeng Wang Simon Fraser University DOI Pre-print |