Improving Java Deserialization Gadget Chain Mining via Overriding-Guided Object Generation
Java (de)serialization is prone to causing security-critical vulnerabilities that attackers can invoke existing methods (gadgets) in an application’s scope to construct a gadget chain to perform malicious behaviors. Several techniques have been proposed to statically identify suspicious gadget chains and dynamically generate injection objects for fuzzing. However, due to their incomplete support for dynamic program features (e.g., Java runtime polymorphism) and ineffective injection object generation for fuzzing, the existing techniques are still far from satisfactory. In this paper, we first performed an empirical study to investigate the characteristics of Java deserialization vulnerabilities based on our manually collected 86 publicly known gadget chains. The empirical results show that 1) Java deserialization gadgets are usually introduced by abusing runtime polymorphism, which enables attackers to reuse serializable overriding methods; and 2) attackers usually invoke exploitable overriding methods (gadgets) via dynamic binding to generate injection objects for gadget chain construction. Based on our empirical findings, we propose a novel gadget chain mining approach, GCMiner, which captures both explicit and implicit method calls to identify more gadget chains, and adopts an overriding-guided object generation approach to generate valid injection objects for fuzzing. The evaluation results show that GCMiner significantly outperforms the state-of-the-art techniques, and discovers 56 unique gadget chains that cannot be identified by the baseline approaches.
Wed 17 MayDisplayed time zone: Hobart change
13:45 - 15:15 | Fuzzing: techniques and toolsTechnical Track / Journal-First Papers / SEIP - Software Engineering in Practice at Meeting Room 101 Chair(s): Mike Papadakis University of Luxembourg, Luxembourg | ||
13:45 7mTalk | Neural Network Guided Evolutionary Fuzzing for Finding Traffic Violations of Autonomous Vehicles Journal-First Papers Ziyuan Zhong Columbia University, Gail Kaiser Columbia University, Baishakhi Ray Columbia University | ||
13:52 15mTalk | Reachable Code Coverage Technical Track Danushka Liyanage Monash University, Australia, Marcel Böhme MPI-SP, Germany and Monash University, Australia, Kla Tantithamthavorn Monash University, Stephan Lipp Technical University of Munich | ||
14:07 15mTalk | Learning Seed-Adaptive Mutation Strategies for Greybox Fuzzing Technical Track | ||
14:22 15mTalk | Improving Java Deserialization Gadget Chain Mining via Overriding-Guided Object Generation Technical Track Sicong Cao Yangzhou University, Xiaobing Sun Yangzhou University, Xiaoxue Wu Yangzhou University, Lili Bo Yangzhou University, Bin Li Yangzhou University, Rongxin Wu Xiamen University, Wei Liu Nanjing University, Biao He Ant Group, Yu Ouyang Ant Group, Jiajia Li Ant Group | ||
14:37 15mTalk | Evaluating and Improving Hybrid Fuzzing Technical Track Ling Jiang Southern University of Science and Technology, Hengchen Yuan Southern University of Science and Technology, Mingyuan Wu Southern University of Science and Technology, Lingming Zhang University of Illinois at Urbana-Champaign, Yuqun Zhang Southern University of Science and Technology | ||
14:52 15mTalk | DAISY: Effective Fuzz Driver Synthesis with Object Usage Sequence Analysis SEIP - Software Engineering in Practice Mingrui Zhang Tsinghua University, Beijing, China, Chijin Zhou Tsinghua University, Jianzhong Liu ShanghaiTech University, Mingzhe Wang Tsinghua University, Jie Liang , Juan Zhu , Yu Jiang Tsinghua University |