Software Vulnerability Fuzz Testing: A Mutation-Selection Optimization Systematic Review

Authors

  • Fatmah Yousef Assiri Software Engineering Department, College of Computer Science and Engineering, University of Jeddah, Saudi Arabia
  • Asia Othman Aljahdali Cybersecurity Department, College of Computer Sciences and Engineering, University of Jeddah, Saudi Arabia
Volume: 14 | Issue: 4 | Pages: 14961-14969 | August 2024 | https://doi.org/10.48084/etasr.6971

Abstract

As software vulnerabilities can cause cybersecurity threats and have severe consequences, it is necessary to develop effective techniques to discover such vulnerabilities. Fuzzing is one of the most widely employed approaches that has been adapted for software testing. The mutation-based fuzzing approach is currently the most popular. The state-of-the-art American Fuzzy Lop (AFL) selects mutations randomly and lacks knowledge of mutation operations that are more helpful in a particular stage. This study performs a systematic review to identify and analyze existing approaches that optimize the selection of mutation operations. The main contributions of this work are to draw attention to the importance of mutation operator selection, identify optimization algorithms for mutation operator selection, and investigate their impact on fuzzing testing in terms of code coverage and finding new vulnerabilities. The investigation shows the effectiveness and advantages of optimizing the selection of mutation operations to achieve higher code coverage and find more vulnerabilities.

Keywords:

Software testing, Software security, Fuzz testing, Vulnerabilities, Mutation operator selection

Downloads

Download data is not yet available.

References

M. N. A. Khan, A. M. Mirza, R. A. Wagan, M. Shahid, and I. Saleem, "A Literature Review on Software Testing Techniques for Smartphone Applications," Engineering, Technology & Applied Science Research, vol. 10, no. 6, pp. 6578–6583, Dec. 2020. DOI: https://doi.org/10.48084/etasr.3844

W. Alkaberi and F. Assiri, "Predicting the Number of Software Faults using Deep Learning," Engineering, Technology & Applied Science Research, vol. 14, no. 2, pp. 13222–13231, Apr. 2024. DOI: https://doi.org/10.48084/etasr.6798

D. Song et al., "PeriScope: An Effective Probing and Fuzzing Framework for the Hardware-OS Boundary," in Proceedings 2019 Network and Distributed System Security Symposium, San Diego, CA, USA, 2019. DOI: https://doi.org/10.14722/ndss.2019.23176

Y. Zheng, A. Davanian, H. Yin, C. Song, H. Zhu, and L. Sun, "FIRM-AFL: High-Throughput Greybox Fuzzing of IoT Firmware via Augmented Process Emulation," presented at the 28th USENIX Security Symposium (USENIX Security 19), Santa Clara, CA, USA, 2019, pp. 1099–1114.

S. Gorbunov and A. Rosenbloom, "AutoFuzz: Automated Network Protocol Fuzzing Framework," International Journal of Computer Science and Network Security, vol. 10, no. 8, pp. 239–245, 2010.

X. Zhu, S. Wen, S. Camtepe, and Y. Xiang, "Fuzzing: A Survey for Roadmap," ACM Computing Surveys, vol. 54, no. 11s, Jun. 2022, Art. no. 230. DOI: https://doi.org/10.1145/3512345

H. Liang, X. Pei, X. Jia, W. Shen, and J. Zhang, "Fuzzing: State of the Art," IEEE Transactions on Reliability, vol. 67, no. 3, pp. 1199–1218, Sep. 2018. DOI: https://doi.org/10.1109/TR.2018.2834476

M. Zalewski, "American Fuzzy Lop: A Security Oriented Fuzzer." Google, May 18, 2024, [Online]. Available: https://github.com/google/AFL.

C. Chen, B. Cui, J. Ma, R. Wu, J. Guo, and W. Liu, "A systematic review of fuzzing techniques," Computers & Security, vol. 75, pp. 118–137, Jun. 2018. DOI: https://doi.org/10.1016/j.cose.2018.02.002

V. J. M. Manès et al., "The Art, Science, and Engineering of Fuzzing: A Survey," IEEE Transactions on Software Engineering, vol. 47, no. 11, pp. 2312–2331, Nov. 2021. DOI: https://doi.org/10.1109/TSE.2019.2946563

J. Li, B. Zhao, and C. Zhang, "Fuzzing: a survey," Cybersecurity, vol. 1, no. 1, Jun. 2018, Art. no. 6. DOI: https://doi.org/10.1186/s42400-018-0002-y

Y. Wang, P. Jia, L. Liu, C. Huang, and Z. Liu, "A systematic review of fuzzing based on machine learning techniques," PLOS ONE, vol. 15, no. 8, 2020, Art. no. e0237749. DOI: https://doi.org/10.1371/journal.pone.0237749

C. Zhang, Y. Wang, and L. Wang, "Firmware Fuzzing: The State of the Art," in Proceedings of the 12th Asia-Pacific Symposium on Internetware, Singapore, Apr. 2021, pp. 110–115. DOI: https://doi.org/10.1145/3457913.3457934

K. Dewey, J. Roesch, and B. Hardekopf, "Language fuzzing using constraint logic programming," in Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, Vasteras, Sweden, Jun. 2014, pp. 725–730. DOI: https://doi.org/10.1145/2642937.2642963

K. Dewey, J. Roesch, and B. Hardekopf, "Fuzzing the Rust Typechecker Using CLP (T)," in 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), Lincoln, NE, USA, Aug. 2015, pp. 482–493. DOI: https://doi.org/10.1109/ASE.2015.65

M. Zalewski, "AFL: American Fuzzy Lop." [Online]. Available: https://lcamtuf.coredump.cx/afl/.

V. Ganesh, T. Leek, and M. Rinard, "Taint-based directed whitebox fuzzing," in 2009 IEEE 31st International Conference on Software Engineering, Vancouver, Canada, May 2009, pp. 474–484. DOI: https://doi.org/10.1109/ICSE.2009.5070546

C. Cadar, D. Dunbar, and D. Engler, "KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs," in 8th USENIX Symposium on Operating Systems Design and Implementation, San Diego, CA, USA, Dec. 2008, pp. 209–224.

P. Godefroid, M. Y. Levin, and D. Molnar, "Automated Whitebox Fuzz Testing," Network and Distributed System Security (NDSS), vol. 8, pp. 151–166, 2008.

D. Aitel, "An Introduction to SPIKE, the Fuzzer Creation Kit."

S. Hocevar, "Zzuf: Application Fuzzer." [Online]. Available: https://github.com/samhocevar/zzuf.

C. Chen, H. Xu, and B. Cui, "PSOFuzzer: A Target-Oriented Software Vulnerability Detection Technology Based on Particle Swarm Optimization," Applied Sciences, vol. 11, no. 3, Jan. 2021, Art. no. 1095. DOI: https://doi.org/10.3390/app11031095

X. Zhao, H. Qu, W. Lv, S. Li, and J. Xu, "MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer," Mathematics, vol. 9, no. 3, Jan. 2021, Art. no. 205. DOI: https://doi.org/10.3390/math9030205

Y. Fu, S. Tong, X. Guo, L. Cheng, Y. Zhang, and D. Feng, "Improving the Effectiveness of Grey-box Fuzzing By Extracting Program Information," in 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom), Guangzhou, China, Dec. 2020, pp. 434–441. DOI: https://doi.org/10.1109/TrustCom50675.2020.00066

R. Shakya and A. Rahman, "A preliminary taxonomy of techniques used in software fuzzing," in Proceedings of the 7th Symposium on Hot Topics in the Science of Security, Jun. 2020. DOI: https://doi.org/10.1145/3384217.3384219

B. Kitchenham, "Procedures for Performing Systematic Reviews," Keele University, Technical Report TR/SE-0401, Jul. 2004.

S. Karamcheti, G. Mann, and D. Rosenberg, "Adaptive Grey-Box Fuzz-Testing with Thompson Sampling," in Proceedings of the 11th ACM Workshop on Artificial Intelligence and Security, Toronto, Canada, Jan. 2018, pp. 37–47. DOI: https://doi.org/10.1145/3270101.3270108

P. Godefroid, H. Peleg, and R. Singh, "Learn&Fuzz: Machine learning for input fuzzing," in 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), Urbana, IL, USA, Oct. 2017, pp. 50–59. DOI: https://doi.org/10.1109/ASE.2017.8115618

D. She, K. Pei, D. Epstein, J. Yang, B. Ray, and S. Jana, "NEUZZ: Efficient Fuzzing with Neural Program Smoothing," in 2019 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 2019, pp. 803–817. DOI: https://doi.org/10.1109/SP.2019.00052

X. Xie et al., "DeepHunter: a coverage-guided fuzz testing framework for deep neural networks," in Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, Beijing, China, Apr. 2019, pp. 146–157. DOI: https://doi.org/10.1145/3293882.3330579

K. Böttinger, P. Godefroid, and R. Singh, "Deep Reinforcement Fuzzing," in 2018 IEEE Security and Privacy Workshops (SPW), San Francisco, CA, USA, 2018, pp. 116–122. DOI: https://doi.org/10.1109/SPW.2018.00026

Z. Zhang, B. Cui, and C. Chen, "Reinforcement Learning-Based Fuzzing Technology," in Innovative Mobile and Internet Services in Ubiquitous Computing, 2021, pp. 244–253. DOI: https://doi.org/10.1007/978-3-030-50399-4_24

H. Xu, B. Cui, and C. Chen, "Fuzzing with Multi-dimensional Control of Mutation Strategy," in Innovative Mobile and Internet Services in Ubiquitous Computing, Asan, Korea (South), 2022, pp. 276–284. DOI: https://doi.org/10.1007/978-3-030-79728-7_27

C. Lyu et al., "MOPT: Optimized Mutation Scheduling for Fuzzers," presented at the 28th USENIX Security Symposium (USENIX Security 19), Santa Clara, CA, USA, 2019, pp. 1949–1966.

M. E. Garbelini, C. Wang, and S. Chattopadhyay, "Greyhound: Directed Greybox Wi-Fi Fuzzing," IEEE Transactions on Dependable and Secure Computing, vol. 19, no. 2, pp. 817–834, Aug. 2022. DOI: https://doi.org/10.1109/TDSC.2020.3014624

X. Zhu and M. Böhme, "Regression Greybox Fuzzing," in Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security, Aug. 2021, pp. 2169–2182. DOI: https://doi.org/10.1145/3460120.3484596

S. Rawat, V. Jain, A. Kumar, L. Cojocar, C. Giuffrida, and H. Bos, "VUzzer: Application-aware Evolutionary Fuzzing," in NDSS Symposium 2017, San Diego, CA, USA, Feb. 2017. DOI: https://doi.org/10.14722/ndss.2017.23404

T. Yue, Y. Tang, B. Yu, P. Wang, and E. Wang, "LearnAFL: Greybox Fuzzing With Knowledge Enhancement," IEEE Access, vol. 7, pp. 117029–117043, 2019. DOI: https://doi.org/10.1109/ACCESS.2019.2936235

C. Lemieux, R. Padhye, K. Sen, and D. Song, "PerfFuzz: automatically generating pathological inputs," in Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, Amsterdam, Netherlands, Apr. 2018, pp. 254–265. DOI: https://doi.org/10.1145/3213846.3213874

L. Sun, X. Li, H. Qu, and X. Zhang, "AFLTurbo: Speed up Path Discovery for Greybox Fuzzing," in 2020 IEEE 31st International Symposium on Software Reliability Engineering (ISSRE), Oct. 2020, pp. 81–91. DOI: https://doi.org/10.1109/ISSRE5003.2020.00017

I. Nikolić, R. Mantu, S. Shen, and P. Saxena, "Refined Grey-Box Fuzzing with Sivo," in Detection of Intrusions and Malware, and Vulnerability Assessment, 2021, pp. 106–129. DOI: https://doi.org/10.1007/978-3-030-80825-9_6

J. Deng, X. Zhu, X. Xiao, S. Wen, Q. Li, and S. Xia, "Fuzzing With Optimized Grammar-Aware Mutation Strategies," IEEE Access, vol. 9, pp. 95061–95071, 2021. DOI: https://doi.org/10.1109/ACCESS.2021.3093904

V. T. Pham, M. Böhme, A. E. Santosa, A. R. Căciulescu, and A. Roychoudhury, "Smart Greybox Fuzzing," IEEE Transactions on Software Engineering, vol. 47, no. 9, pp. 1980–1997, Sep. 2019.

L. Situ, L. Wang, X. Li, L. Guan, W. Zhang, and P. Liu, "Energy Distribution Matters in Greybox Fuzzing," in 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion), Montreal, Canada, May 2019, pp. 270–271. DOI: https://doi.org/10.1109/ICSE-Companion.2019.00109

C. Lemieux and K. Sen, "FairFuzz: a targeted mutation strategy for increasing greybox fuzz testing coverage," in Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, Montpellier, France, Jun. 2018, pp. 475–485. DOI: https://doi.org/10.1145/3238147.3238176

U. Kargén and N. Shahmehri, "Speeding Up Bug Finding using Focused Fuzzing," in Proceedings of the 13th International Conference on Availability, Reliability and Security, Hamburg, Germany, May 2018, pp. 1–10. DOI: https://doi.org/10.1145/3230833.3230867

Y. Hu, W. Yang, B. Cui, X. Zhou, Z. Mao, and Y. Wang, "Fuzzing Method Based on Selection Mutation of Partition Weight Table for 5G Core Network NGAP Protocol," in Innovative Mobile and Internet Services in Ubiquitous Computing, Asan, Korea (South), 2022, pp. 144–155. DOI: https://doi.org/10.1007/978-3-030-79728-7_15

P. Chen and H. Chen, "Angora: Efficient Fuzzing by Principled Search," in 2018 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, May 2018, pp. 711–725. DOI: https://doi.org/10.1109/SP.2018.00046

X. Wang, C. Hu, R. Ma, D. Tian, and J. He, "CMFuzz: context-aware adaptive mutation for fuzzers," Empirical Software Engineering, vol. 26, no. 1, Jan. 2021, Art. no. 10. DOI: https://doi.org/10.1007/s10664-020-09927-3

V. Jain, S. Rawat, C. Giuffrida, and H. Bos, "TIFF: Using Input Type Inference To Improve Fuzzing," in Proceedings of the 34th Annual Computer Security Applications Conference, San Juan, PR, USA, Sep. 2018, pp. 505–517. DOI: https://doi.org/10.1145/3274694.3274746

Z. Cai, H. Wang, and X. Qin, "A Heuristic Guided Optimized Strategy for Non-Deterministic Mutation," in Proceedings of the 3rd International Conference on Computer Science and Application Engineering, Sanya, China, Oct. 2019. DOI: https://doi.org/10.1145/3331453.3361295

R. Padhye, C. Lemieux, and K. Sen, "JQF: coverage-guided property-based testing in Java," in Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, Beijing, China, Jul. 2019, pp. 398–401. DOI: https://doi.org/10.1145/3293882.3339002

L. J. Moukahal, M. Zulkernine, and M. Soukup, "Vulnerability-Oriented Fuzz Testing for Connected Autonomous Vehicle Systems," IEEE Transactions on Reliability, vol. 70, no. 4, pp. 1422–1437, Oct. 2021. DOI: https://doi.org/10.1109/TR.2021.3112538

J. Liang et al., "DeepFuzzer: Accelerated Deep Greybox Fuzzing," IEEE Transactions on Dependable and Secure Computing, vol. 18, no. 6, pp. 2675–2688, Aug. 2021.

J. Wang, B. Chen, L. Wei, and Y. Liu, "Superion: Grammar-Aware Greybox Fuzzing," in 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), Montreal, Canada, May 2019, pp. 724–735. DOI: https://doi.org/10.1109/ICSE.2019.00081

Downloads

How to Cite

[1]
Assiri, F.Y. and Aljahdali, A.O. 2024. Software Vulnerability Fuzz Testing: A Mutation-Selection Optimization Systematic Review. Engineering, Technology & Applied Science Research. 14, 4 (Aug. 2024), 14961–14969. DOI:https://doi.org/10.48084/etasr.6971.

Metrics

Abstract Views: 286
PDF Downloads: 394

Metrics Information

Most read articles by the same author(s)