RumFuzz: Coverage-guided Greybox Fuzzing with Reasonable Use of Memory

被引:0
作者
Xu, Jiangyun [1 ,2 ]
Wang, Jinbo [2 ]
Ma, Yunyun [2 ]
Li, Lu [2 ]
Jia, Chang [2 ]
机构
[1] Univ Chinese Acad Sci, Beijing, Peoples R China
[2] Chinese Acad Sci, Technol & Engn Ctr Space Utilizat, Beijing, Peoples R China
来源
2024 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY AND SECURITY, QRS | 2024年
关键词
fuzzing; software testing; seed scheduling; exp3; multi-armed bandits;
D O I
10.1109/QRS62785.2024.00059
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Coverage-guided Greybox Fuzzing (CGF) is one of the most popular vulnerability detection methods. AFL-based fuzzers typically use a fixed-size 64KB bitmap to record edge coverage information. However, for small programs, 64KB is larger than their execution space. This will waste memory and limit the number of fuzzers that can run on one device at the same time, which will increase the time and resource cost of vulnerability detection. For large programs, this relatively small bitmap size will inevitably increase the probability of collision and limit the performance of the fuzzer. To solve this problem, we modify the instrumentation algorithm to set the appropriate bitmap size at compile time based on the number of Basic Blocks (BBs) in the program. This size is sensitive to the target program. However, reducing bitmap size according to the BB number directly will increase the probability of collision and hurt the fuzzer performance. In order to reduce memory consumption under the premise of ensuring the performance of the fuzzer, we design a metric to measure the distance between seed and crash seed set, and combine it with the modified Exp3 algorithm to optimize seed scheduling and energy allocation of CGF with lightweight algorithms. We implement the proposed method on the basis of MOPT-AFL and evaluate it on the LAVA-M dataset and real-world programs. The results show that for small programs, the proposed method finds 1.49x, 1.52x, and 1.31x more unique bugs and achieves 43.37%, 55.11%, and 13.66% more coverage with 4.32%, 6.37%, and 14.57% less average memory consumption than AFL, AFLFast, and MOPT-AFL, respectively. For large programs, the proposed method finds 58.06x, 6.46x, and 98.92% more unique bugs and achieves 2.27x, 92.01%, and 27.21% more coverage than AFL, AFLFast, and MOPT-AFL, respectively.
引用
收藏
页码:526 / 535
页数:10
相关论文
共 23 条
[1]  
Almagableh A, 2017, International Journal of Performability Engineering, V13, P73, DOI [10.23940/ijpe.17.01.p6.7386, DOI 10.23940/ijpe.17.01.p6.7386, 10.23940/ijpe.17.01.p6.7386, DOI 10.23940/IJPE.17.01.P6.7386, 10.1515/polyeng-2013-0244]
[2]  
Auer P, 1995, AN S FDN CO, P322, DOI 10.1109/SFCS.1995.492488
[3]   Coverage-Based Greybox Fuzzing as Markov Chain [J].
Bohme, Marcel ;
Van-Thuan Pham ;
Roychoudhury, Abhik .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2019, 45 (05) :489-506
[4]   Regret Analysis of Stochastic and Nonstochastic Multi-armed Bandit Problems [J].
Bubeck, Sebastien ;
Cesa-Bianchi, Nicolo .
FOUNDATIONS AND TRENDS IN MACHINE LEARNING, 2012, 5 (01) :1-122
[5]   Angora: Efficient Fuzzing by Principled Search [J].
Chen, Peng ;
Chen, Hao .
2018 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2018, :711-725
[6]   LAVA: Large-scale Automated Vulnerability Addition [J].
Dolan-Gavitt, Brendan ;
Hulin, Patrick ;
Kirda, Engin ;
Leek, Tim ;
Mambretti, Andrea ;
Robertson, Wil ;
Ulrich, Frederick ;
Whelan, Ryan .
2016 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2016, :110-121
[7]  
Huang HQ, 2022, P IEEE S SECUR PRIV, P36, DOI [10.1109/SP46214.2022.00007, 10.1109/SP46214.2022.9833751]
[8]   Evaluating Fuzz Testing [J].
Klees, George ;
Ruef, Andrew ;
Cooper, Benji ;
Wei, Shiyi ;
Hicks, Michael .
PROCEEDINGS OF THE 2018 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'18), 2018, :2123-2138
[9]  
Kun Jeremy, 2024, Adversarial bandits and the exp3 algorithm
[10]   CEREBRO: Context-Aware Adaptive Fuzzing for Effective Vulnerability Detection [J].
Li, Yuekang ;
Xue, Yinxing ;
Chen, Hongxu ;
Wu, Xiuheng ;
Zhang, Cen ;
Xie, Xiaofei ;
Wang, Haijun ;
Liu, Yang .
ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, :533-544