信息网络安全 ›› 2024, Vol. 24 ›› Issue (2): 282-292.doi: 10.3969/j.issn.1671-1122.2024.02.011

• 技术研究 • 上一篇    下一篇

多维深度导向的Java Web模糊测试方法

王鹃1,2, 龚家新1,2, 蔺子卿3(), 张晓娟3   

  1. 1.武汉大学国家网络安全学院,武汉 430072
    2.武汉大学空天信息安全与可信计算教育部重点实验室,武汉 430072
    3.中国电力科学研究院有限公司信息通信研究所,北京 100192
  • 收稿日期:2023-04-12 出版日期:2024-02-10 发布日期:2024-03-06
  • 通讯作者: 蔺子卿 E-mail:linziqing@epri.sgcc.com.cn
  • 作者简介:王鹃(1976—),女,湖北,教授,博士,CCF高级会员,主要研究方向为系统和软件安全、可信计算、人工智能安全、云计算、物联网安全|龚家新(1999—),男,安徽,硕士研究生,主要研究方向为软件安全、漏洞挖掘与利用|蔺子卿(1996—),女,北京,工程师,硕士,主要研究方向为电力工控安全和网络安全|张晓娟(1988—),女,北京,高级工程师,博士,主要研究方向为数据安全、密码学和网络安全
  • 基金资助:
    国家电网有限公司科技项目(520940210009)

Multidimensional Depth Oriented Fuzzing Method of Java Web Applications

WANG Juan1,2, GONG Jiaxin1,2, LIN Ziqing3(), ZHANG Xiaojuan3   

  1. 1. School of Cyber Science and Engineering, Wuhan University, Wuhan 430072, China
    2. Key Laboratory of Aerospace Information Security and Trusted Computing of Ministry of Education, Wuhan University, Wuhan 430072, China
    3. Institute of Information and Communication, China Electric Power Research lnstitute Co., Ltd., Beijing 100192, China
  • Received:2023-04-12 Online:2024-02-10 Published:2024-03-06
  • Contact: LIN Ziqing E-mail:linziqing@epri.sgcc.com.cn

摘要:

随着Java Web的广泛应用,其安全问题日益突出。模糊测试作为一种有效的漏洞挖掘方法,目前已经被用于Java漏洞的检测。然而,由于Java Web应用代码规模庞大、业务逻辑复杂,现有的漏洞挖掘工具在模糊测试中存在随机性高、代码检测深度低的问题,导致漏洞挖掘的准确率较低。因此,文章提出基于多维深度导向的Java Web模糊测试方法。该方法使用Jimple作为待测Java Web应用字节码的三地址码中间表示,并生成代码对应的函数间调用图和函数内控制流图,在此基础上分析每个基本块的多维深度。同时,根据多维深度和模糊测试执行时间优化模糊测试指导策略,设计相应的输入结构解析策略、能量分配策略和变异算法调度策略,提升模糊测试的准确性。实验结果表明,相较于现有的模糊测试工具Peach和Kelinci,该方法能够在性能消耗较低的情况下取得更好的漏洞检测效果。

关键词: 模糊测试, Java Web, 漏洞挖掘

Abstract:

With the popularity of Java language, the security issue of these applications is becoming more and more serious. As an effective vulnerability mining method, fuzzing has been used to detect Java application vulnerabilities. However, due to the huge code scale and complex business logic of Java Web application, existing vulnerability mining tools suffer from high randomness in testing and low depth of code detection, resulting in low accuracy of vulnerability mining. To solve these problems, this paper designed and implemented a multidimensional depth oriented fuzzing method of Java Web applications. This method generated the three address codes of the application bytecode to be tested, and then obtained the corresponding inter function call graph and intra function control flow graph. According to this information, an algorithm was designed to obtain the multidimensional depth of each basic block. Then, according to the multidimensional depth and fuzzing execution time, the fuzzing guidance strategy of the system was designed, and the corresponding input structure analysis strategy, energy allocation strategy and mutation algorithm scheduling strategy were designed to improve the efficiency of fuzzing. Compared with the existing widely used fuzzing tool Peach and Kelinci, it shows that this method can achieve better vulnerability mining effect under the condition of low performance consumption.

Key words: fuzzing, Java Web, vulnerability mining

中图分类号: