Evaluating seed selection for fuzzing Java']JavaScript engines

被引:0
|
作者
Wen, Ming [1 ,2 ]
Wang, Yongcong [1 ,2 ]
Xia, Yifan [3 ]
Jin, Hai [1 ,4 ]
机构
[1] Natl Engn Res Ctr Big Data Technol & Syst, Serv Comp Technol & Syst Lab,Cluster & Grid Comp L, Hubei Key Lab Distributed Syst Secur, Hubei Engn Res Ctr Big Data Secur, Wuhan, Peoples R China
[2] Huazhong Univ Sci & Technol, Sch Cyber Sci & Engn, Wuhan, Peoples R China
[3] Zhejiang Univ, Hangzhou, Peoples R China
[4] Huazhong Univ Sci & Technol, Sch Comp Sci & Technol, Wuhan, Peoples R China
基金
中国国家自然科学基金;
关键词
Fuzzing; !text type='Java']Java[!/text]Script engines; Seed selection; Empirical study; CONTINUAL PREDICTION; FORGET;
D O I
10.1007/s10664-023-10340-9
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
JavaScript (JS), as a platform-independent programming language, remains to be the most popular language over the years. However, popular JavaScript engines that have been widely utilized by web browsers to interpret JS code, have become the most common targets for attackers. Thus ensuring the security and reliability of JS engines is significant. Fuzzing is a simple yet effective method to unveil vulnerabilities. However, existing JS fuzzers focus more on the design of effective mutation mechanisms to generate diverse and valid seeds while they often ignore the importance of the initial seed corpus selected to drive the fuzzing process. In this paper, we performed extensive experiments to systematically evaluate the impact of seed selection on fuzzing JavaScript engines. In particular, we investigate seed selections from three main dimensions, their collected sources (e.g., CVE PoCs, Regression tests, etc.), the number and sizes, as well as a set of concerned code properties. Our major findings reveal that seeds collected from different sources can cast a significant impact on the fuzzing effectiveness (i.e., CVE PoC is significantly better than the other types of seeds), and seed files containing those concerned code structures can lead existing fuzzers to achieve superior results in terms of both code coverage and unique crashes identified. Inspired by our observations, we devised a simple heuristic to prioritize JavaScript files when selecting seed corpus. Our experiments show that when driven by our selected seed corpus, the existing state-of-art fuzzer is able to achieve significantly higher code coverage and identify more crashes.
引用
收藏
页数:35
相关论文
共 50 条
  • [1] Evaluating seed selection for fuzzing JavaScript engines
    Ming Wen
    Yongcong Wang
    Yifan Xia
    Hai Jin
    [J]. Empirical Software Engineering, 2023, 28
  • [2] Fuzzing Java']JavaScript Engines with Aspect-preserving Mutation
    Park, Soyeon
    Xu, Wen
    Yun, Insu
    Jang, Daehee
    Kim, Taesoo
    [J]. 2020 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2020), 2020, : 1628 - 1642
  • [3] SoFi: Reflection-Augmented Fuzzing for Java']JavaScript Engines
    He, Xiaoyu
    Xie, Xiaofei
    Li, Yuekang
    Sun, Jianwen
    Li, Feng
    Zou, Wei
    Liu, Yang
    Yu, Lei
    Zhou, Jianhua
    Shi, Wenchang
    Huo, Wei
    [J]. CCS '21: PROCEEDINGS OF THE 2021 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2021, : 2229 - 2242
  • [4] A lightweight and high-precision approach for bulky Java']JavaScript engines fuzzing
    Zhou, Lianpei
    Xiao, Xi
    Hu, Guangwu
    Li, Hao
    Wu, Xiangbo
    Zhou, Tao
    [J]. 2023 IEEE 22ND INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS, TRUSTCOM, BIGDATASE, CSE, EUC, ISCI 2023, 2024, : 982 - 989
  • [5] Automated Conformance Testing for Java']JavaScript Engines via Deep Compiler Fuzzing
    Ye, Guixin
    Tang, Zhanyong
    Tan, Shin Hwei
    Huang, Songfang
    Fang, Dingyi
    Sun, Xiaoyang
    Bian, Lizhong
    Wang, Haibo
    Wang, Zheng
    [J]. PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 435 - 450
  • [6] Fuzzing Java']JavaScript engines with a syntax-aware neural program model
    Xu, Haoran
    Wang, Yongjun
    Jiang, Zhiyuan
    Fan, Shuhui
    Fu, Shaojing
    Xie, Peidai
    [J]. COMPUTERS & SECURITY, 2024, 144
  • [7] Fuzzing Java']JavaScript Engine APIs
    Hodovan, Renata
    Kiss, Akos
    [J]. INTEGRATED FORMAL METHODS (IFM 2016), 2016, 9681 : 425 - 438
  • [8] Favocado: Fuzzing the Binding Code of Java']JavaScript Engines Using Semantically Correct Test Cases
    Sung Ta Dinh
    Cho, Haehyun
    Martin, Kyle
    Oest, Adam
    Zeng, Kyle
    Kapravelos, Alexandros
    Ahn, Gail-Joon
    Bao, Tiffany
    Wang, Ruoyu
    Doupe, Adam
    Shoshitaishvili, Yan
    [J]. 28TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2021), 2021,
  • [9] Fuzzing Java']JavaScript Environment APIs with Interdependent Function Calls
    Hodovan, Renata
    Vince, Daniel
    Kiss, Akos
    [J]. INTEGRATED FORMAL METHODS, IFM 2019, 2019, 11918 : 212 - 226
  • [10] An empirical study on bugs in Java']JavaScript engines
    Wang, Ziyuan
    Bu, Dexin
    Wang, Nannan
    Yu, Sijie
    Gou, Shanyi
    Sun, Aiyue
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2023, 155