CN112052156A - 一种模糊测试方法、装置和系统 - Google Patents

一种模糊测试方法、装置和系统 Download PDF

Info

Publication number
CN112052156A
CN112052156A CN202010682441.XA CN202010682441A CN112052156A CN 112052156 A CN112052156 A CN 112052156A CN 202010682441 A CN202010682441 A CN 202010682441A CN 112052156 A CN112052156 A CN 112052156A
Authority
CN
China
Prior art keywords
data
dom
state machine
dom format
format
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010682441.XA
Other languages
English (en)
Other versions
CN112052156B (zh
Inventor
胡悦
雷濛
郭宾
杨杰
马远洋
赵宇
章渠丰
罗怡靓
朱奕辉
向昶宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Wooden Chain Internet Of Things Technology Co ltd
Original Assignee
Hangzhou Wooden Chain Internet Of Things Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Wooden Chain Internet Of Things Technology Co ltd filed Critical Hangzhou Wooden Chain Internet Of Things Technology Co ltd
Priority to CN202010682441.XA priority Critical patent/CN112052156B/zh
Publication of CN112052156A publication Critical patent/CN112052156A/zh
Application granted granted Critical
Publication of CN112052156B publication Critical patent/CN112052156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/026Development tools for entering the parameters of a fuzzy system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Fuzzy Systems (AREA)
  • Biomedical Technology (AREA)
  • Computational Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种模糊测试方法、装置和系统。所述方法包括:将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。采用本方法能够提高测试效率。

Description

一种模糊测试方法、装置和系统
技术领域
本申请涉及软件测试技术领域,特别是涉及一种模糊测试方法、装置和系统。
背景技术
随着经济与信息技术的发展,现代工业控制信息系统面临越来越多安全威胁,比如工业控制系统将会面临变体多样勒索病毒、潜匿深处的木马病毒以及各种各样形形色色的黑客入侵。模糊安全测试技术是安全测试应用技术的一种,模糊安全测试技术通过模糊构造软件中畸形输入的数据,从而构造出软件可能发生的异常,如系统崩溃等,由此来精准定位出软件中存在的安全隐患问题。模糊安全测试技术会因为模糊测试本身具有遍历各种模糊后的变异数据特性从而具有遍历所有输入的特性,因此对比于其它安全漏洞挖掘的方法,模糊安全测试技术发现安全隐患和技术漏洞的效率会更高,并且模糊安全测试技术能披露许多传统手段无法触及的盲点。
现有的模糊测试场景包括黑盒测试场景、灰盒测试场景和白盒测试场景,在黑盒测试场景中,现有的黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用,在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,判断程序是否能适当地接收输入数据而产生正确的输出信息,现有部分黑盒测试采用代码覆盖率作为参数选择种子,通过种子对程序接口进行测试能够提高测试效率,然而,在很多应用环境比如远程测试的情况下,无法获取代码覆盖率,导致测试效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提供测试效率的模糊测试方法、装置和系统。
一种模糊测试方法,所述方法包括:
将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
在其中一个实施例中,在根据状态机覆盖率作为能量分配算法的参数选择DOM格式待变异种子数据之前,包括:获取初始DOM格式待变异种子数据;将所述初始DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;将DOM格式变异数据输入被测试机,获得初始测试执行结果;其中,所述初始测试执行结果包括所述状态机覆盖率和所述状态机覆盖率的执行频率数据。
在其中一个实施例中,在获取初始DOM格式待变异种子数据之前,包括:获取Json、Xml或Ymal语法的模糊测试对象文件;将所述模糊测试对象文件输入解析器,获得Json、Xml或Ymal语法的DOM对象;将所述DOM对象输入引擎处理,获得初始DOM格式待变异种子数据。
在其中一个实施例中,在所述将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据之前,包括:根据所述测试执行结果通过哈希函数,计算所述DOM格式变异数据在所述被测试机的状态机中产生的状态机覆盖率;统计每种所述状态机覆盖率的频率。
在其中一个实施例中,在将DOM格式变异数据输入被测试机,获得测试执行结果之后,包括:根据所述测试执行结果计算状态机覆盖率和所述状态机覆盖率的执行频率数据,重复执行将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,将DOM格式变异数据输入被测试机,获得测试执行结果的步骤。
在其中一个实施例中,在将DOM格式变异数据输入被测试机,获得测试执行结果之后,包括:观察器根据所述测试执行结果,获取异常数据包。
一种模糊测试装置,所述装置包括:
变异种子数据选择模块,用于将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
变异数据获得模块,用于将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
测试模块,用于将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
一种模糊测试系统,所述系统包括:权利要求1-6任一项所述的模糊器、引擎、解析器、观察器、收发器;
其中,所述解析器,用于根据输入Json、Xml或Ymal语法的的模糊测试对象文件进行解析,获得DOM对象;
所述引擎,用于根据DOM对象处理,获得初始DOM格式待变异种子数据;
所述模糊器,用于根据初始DOM格式待变异种子数据进行处理,获得DOM格式变异数据;
所述收发器,用于将DOM格式变异数据发送至被测试机,所述被测试机返回初始测试执行结果;
所述观察器,用于根据所述初始测试执行结果,获取异常数据包。
在其中一个实施例中,所述引擎包括通用文件,所述通用文件用于存放各种工具类可复用的通用函数。
在其中一个实施例中,所述引擎的目录下保存解析器、模糊器、观察器、收发器的抽象类。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
上述模糊测试方法、装置和系统,通过将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,能够在无法获取代码覆盖率的情况下通过计算状态机覆盖率,并快速获得DOM格式待变异种子数据,并且通过DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,从而进行测试,能够优先选择未进行测试或者未进行充分测试的种子数据对待测试机进行测试,避免对已经测试过的种子数据进行重复测试,提高了测试效率。
附图说明
图1为一个实施例中模糊测试方法的流程示意图;
图2为一个实施例中解析器的运行流程示意图;
图3为一个实施例中模糊测试方法的总体运行流程示意图;
图4为一个实施例中模糊测试装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种模糊测试方法,包括以下步骤:
S110,将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据。
其中,状态机覆盖率为状态机中访问的状态在全部状态中的占比,所述状态机覆盖率的执行频率数据为在被测试机历史执行过程中获得所述状态机覆盖率的次数,例如,被测试机第一次执行获得状态机覆盖率A,被测试机第二次执行获得状态机覆盖率B,被测试机第三次执行获得状态机覆盖率A,则此时状态机覆盖率A的执行频率数据为2,状态机覆盖率B的执行频率数据为1。能量分配算法(Power Schedule)为一种巧妙地调节种子生成的输入数量的算法,能量分配算法包括AFLFast的能量分配算法,公式如下:
Figure BDA0002586328230000051
其中,f(s)表示变异种子数据引发特定结果的次数,a为约束指数针,对不同的模糊测试对象可以取不同的a值使得算法更为高效适用范围更广,s为种子,e(s)为种子s分配的能量。通过能量分配算法选择DOM格式待变异种子数据,能够将优先选择被选次数较小的DOM格式待变异种子数据,因为被选择次数多的DOM格式待变异种子数据已被充分测试,其剩余价值没有被选次数较少的DOM格式待变异种子数据价值高。
S120,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据。
其中,模糊器中设置变异器和其它待拓展的模糊算法,变异器包括生成器和能量分配算法,生成器包括二进制生成器、数字生成器、十六进制生成器和字符串生成器,生成器具体类型根据需要进行选择,能量分配算法包括默认能量分配算法、线性能量分配算法、平方能量分配算法、AFLFast能量分配算法,能量分配算法根据需要进行选择。
例如,DOM格式待变异种子数据是aaaaa,输入模糊器经过随机的变异可能变成DOM格式变异数据abaaa,当然此处为其中一种情况,实际有很多种变异可能。
S130,将DOM格式变异数据输入被测试机,获得测试执行结果。
其中,被测试机即被测试的程序,测试执行结构包括所述被测试机的执行日志,在执行日志中会显示异常数据,并且程序开发人员根据执行日志发现被测试机的执行漏洞。
上述模糊测试方法中,通过将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,能够在无法获取代码覆盖率的情况下通过计算状态机覆盖率,并快速获得DOM格式待变异种子数据,并且通过DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,从而进行测试,能够优先选择未进行测试或者未进行充分测试的种子数据对待测试机进行测试,避免对已经测试过的种子数据进行重复测试,提高了测试效率。
在其中一个实施例中,在根据状态机覆盖率作为能量分配算法的参数选择DOM格式待变异种子数据之前,包括:获取初始DOM格式待变异种子数据;将所述初始DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;将DOM格式变异数据输入被测试机,获得初始测试执行结果;其中,所述初始测试执行结果包括所述状态机覆盖率和所述状态机覆盖率的执行频率数据。
其中,初始DOM格式待变异种子数据是根据模糊测试对象文件处理后获得的数据。将初始DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,与将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据处理的方式相同,均是对初始DOM格式待变异种子数据的某一个或者多个数据位进行随机变换,获得DOM格式变异数据。
在其中一个实施例中,在获取初始DOM格式待变异种子数据之前,包括:获取Json、Xml或Ymal语法的模糊测试对象文件;将所述模糊测试对象文件输入解析器,获得DOM对象;将所述DOM对象输入引擎处理,获得初始DOM格式待变异种子数据。
其中,模糊测试对象文件为应用层与被测试机(被测程序)之间的通信数据,本申请能够支持多种语法的模糊测试对象文件的解析和转化。在DOM对象包含了初始DOM格式待变异种子数据,通过引擎处理,将初始DOM格式待变异种子数据从DOM对象中提取出来。
在其中一个实施例中,在所述将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据之前,包括:根据所述测试执行结果通过哈希函数,计算所述DOM格式变异数据在所述被测试机的状态机中产生的状态机覆盖率;统计每种所述状态机覆盖率的频率。
其中,状态机覆盖率是状态机中访问的状态在全部状态中的占比,所述状态机覆盖率的执行频率数据为在被测试机历史执行过程中获得所述状态机覆盖率的次数。此处,通过收发器哈希函数计算和每种所述状态机覆盖率的频率的统计。
在其中一个实施例中,在将DOM格式变异数据输入被测试机,获得测试执行结果之后,包括:根据所述测试执行结果计算状态机覆盖率和所述状态机覆盖率的执行频率数据,重复执行将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,将DOM格式变异数据输入被测试机,获得测试执行结果的步骤。
本实施例中,通过多次执行通过状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,再将DOM格式变异数据输入被测试机进行测试的过程,能够对多种种子进行充分测试,保证被测试机测试更充分,全面进行漏洞挖掘。
在其中一个实施例中,在将DOM格式变异数据输入被测试机,获得测试执行结果之后,包括:观察器根据所述测试执行结果,获取异常数据包。
其中,观察器根据所述测试执行结果,自动获取异常数据包,提醒测试人员程序存在异常,以便及时对程序进行修改和更正。
在一个具体实施例中,如图2所示,提供了一种解析器运行流程图,解析器根据模糊测试对象文件首先确定文件格式,然后根据文件格式从高阶解析器分配给对应低阶解析器,低阶解析器返回Json格式给高阶解析器,高阶解析器返回DOM结构。
在一个具体的实施例中,如图3所示,通过流量分析、逆向解析和协议解析从应用层与被测程序之间获取模糊测试对象文件,将模糊测试对象文件输入解析器,解析器输出DOM对象,引擎从DOM对象中获取DOM格式待变异种子数据,DOM格式待变异种子数据通过模糊器处理获得DOM格式变异数据,DOM格式变异数据通过收发器发送至被测试机,被测试机返回初始测试执行数据,模糊器根据初始测试执行数据计算出状态机覆盖率和所述状态机覆盖率的执行频率数据,并将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,然后再次进行测试过程,获得测试执行结果,根据所述测试执行结果计算状态机覆盖率和所述状态机覆盖率的执行频率数据,重复执行将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,将DOM格式变异数据输入被测试机,获得测试执行结果的步骤,重复执行预设次数,最后观察器获取执行日志进行分析,获得异常数据。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种模糊测试装置,包括:变异种子数据选择模块210、变异数据获得模块220和测试模块230,其中:
变异种子数据选择模块210,用于将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据。
变异数据获得模块220,用于将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据。
测试模块230,用于将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
在其中一个实施例中,所述模糊测试装置,还包括:初始待变异种子数据获取模块,用于获取初始DOM格式待变异种子数据;所述变异数据获得模块220,还用于将所述初始DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;所述测试模块230,还用于将DOM格式变异数据输入被测试机,获得初始测试执行结果;其中,所述初始测试执行结果包括所述状态机覆盖率和所述状态机覆盖率的执行频率数据。
在其中一个实施例中,所述模糊测试装置,还包括:模糊测试对象文件获取模块,用于获取Json、Xml或Ymal语法的模糊测试对象文件;解析模块,用于将所述模糊测试对象文件输入解析器获得DOM对象;数据提取模块,用于将所述DOM对象输入引擎处理,获得初始DOM格式待变异种子数据。
在其中一个实施例中,所述模糊测试装置,还包括:计算模块,用于根据所述测试执行结果通过哈希函数,计算所述DOM格式变异数据在所述被测试机的状态机中产生的状态机覆盖率;统计模块,用于统计每种所述状态机覆盖率的频率。
在其中一个实施例中,所述模糊测试装置,还包括:重复执行模块,用于根据所述测试执行结果计算状态机覆盖率和所述状态机覆盖率的执行频率数据,重复执行将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,将DOM格式变异数据输入被测试机,获得测试执行结果的步骤。
在其中一个实施例中,所述模糊测试装置,还包括:异常数据包获取模块,用于观察器根据所述测试执行结果,获取异常数据包。
关于模糊测试装置的具体限定可以参见上文中对于模糊测试方法的限定,在此不再赘述。上述模糊测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种模糊测试系统,所述系统包括:上述实施例所述的模糊器、引擎、解析器、观察器、收发器;其中,所述解析器,用于根据输入Json、Xml或Ymal语法的的模糊测试对象文件进行解析,获得DOM对象;所述引擎,用于根据DOM对象处理,获得初始DOM格式待变异种子数据;所述模糊器,用于根据初始DOM格式待变异种子数据进行处理,获得DOM格式变异数据;所述收发器,用于将DOM格式变异数据发送至被测试机,所述被测试机返回初始测试执行结果;所述观察器,用于根据所述初始测试执行结果,获取异常数据包。
其中,引擎用于统筹协调剩余各个模块以保证模糊测试框架的正常运行。解析器,支持多种现今生产开发环境常用的结构化文本格式,以保证在未来多变的生产开发环境中仍然具有良好的可用性,在支持Json和Ymal语法文件的基础上还对Peach模糊测试框架的Xml语法文件进行支持,使得一些已经被开发的PitFile能快速在新的引擎上进行测试,以提升复用和降低测试开发负担。模糊器包含了负责生成的生成器和负责变异的编译器,以及调用生成器和编译器负责实际模糊的模糊算法;生成器主要针对于数据的格式进行异常生成,主要策略采用异常生成和格式异常生成;编译器主要针对于数据的内容,对于不同的数据内容调用生成器产生变异结果。收发器的用途与传统模糊测试框架保持不变,但做抽象优化,收发器分为两类通用发布器收发器和专用发布器收发器,通用收发器用于收发如TCP、UDP、HTTP、HTTPS等常见的协议,专用收发器用于收发如Modbus、Umas、S7Comm、S7CommPlus等仅存于工控环境且为环境私有的协议。观察器用于观察模糊测试框架运行和数据包收发时是否出现异常,并实例化了不同类型的观察者有专门针对于网络协议的观察器也有专门针对于控制台的观察器甚至有复用观察器,通过观察器能够根据执行日志获取异常数据。
在其中一个实施例中,所述引擎包括通用文件,所述通用文件用于存放各种工具类可复用的通用函数。将通用函数存放在通用文件下,一方面是为了保证应用方便,另一方面是为了保证模糊测试框架中的层级结构明确并减少其他模块间的相互应用,以保证在之后迭代时能保证开发效率。
在其中一个实施例中,所述引擎的目录下保存解析器Paser.py、模糊器Fuzzer.py、观察器Watcher.py、收发器Publisher.py的抽象类。
其中,如图3所示,Common.py为通用文件,位于图片右下角的Engine.py文件是新型模糊测试框架的运行核心,其中的Engine类可类比于其他项目中的启动类,而该下的run方法函数同等可类比于启动类下的启动函数,大致运行流程为调用解析器解析输入的格式化与语言模糊测试对象文件并生成DOM对象,并将DOM对象分配给模糊器、观察器和收发器并让这些对象协同运行,以达到模糊测试的目的。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储DOM格式待变异种子数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种模糊测试方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取初始DOM格式待变异种子数据;将所述初始DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;将DOM格式变异数据输入被测试机,获得初始测试执行结果;其中,所述初始测试执行结果包括所述状态机覆盖率和所述状态机覆盖率的执行频率数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取Json、Xml或Ymal语法的模糊测试对象文件;将所述模糊测试对象文件输入解析器获得DOM对象;将所述DOM对象输入引擎处理,获得初始DOM格式待变异种子数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取初始DOM格式待变异种子数据;将所述初始DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;将DOM格式变异数据输入被测试机,获得初始测试执行结果;其中,所述初始测试执行结果包括所述状态机覆盖率和所述状态机覆盖率的执行频率数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取Json、Xml或Ymal语法的模糊测试对象文件;将所述模糊测试对象文件输入解析器获得DOM对象;将所述DOM对象输入引擎处理,获得初始DOM格式待变异种子数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种模糊测试方法,其特征在于,所述方法包括:
将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
2.根据权利要求1所述的方法,其特征在于,在根据状态机覆盖率作为能量分配算法的参数选择DOM格式待变异种子数据之前,包括:
获取初始DOM格式待变异种子数据;
将所述初始DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
将DOM格式变异数据输入被测试机,获得初始测试执行结果;
其中,所述初始测试执行结果包括所述状态机覆盖率和所述状态机覆盖率的执行频率数据。
3.根据权利要求1所述的方法,其特征在于,在获取初始DOM格式待变异种子数据之前,包括:
获取Json、Xml或Ymal语法的模糊测试对象文件;
将所述模糊测试对象文件输入解析器获得DOM对象;
将所述DOM对象输入引擎处理,获得初始DOM格式待变异种子数据。
4.根据权利要求1所述的方法,其特征在于,在所述将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据之前,包括:
根据所述测试执行结果通过哈希函数,计算所述DOM格式变异数据在所述被测试机的状态机中产生的状态机覆盖率;
统计每种所述状态机覆盖率的频率。
5.根据权利要求1所述的方法,其特征在于,在将DOM格式变异数据输入被测试机,获得测试执行结果之后,包括:
根据所述测试执行结果计算状态机覆盖率和所述状态机覆盖率的执行频率数据,重复执行将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据,将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据,将DOM格式变异数据输入被测试机,获得测试执行结果的步骤。
6.根据权利要求1-5任一项所述的方法,其特征在于,在将DOM格式变异数据输入被测试机,获得测试执行结果之后,包括:
观察器根据所述测试执行结果,获取异常数据包。
7.一种模糊测试装置,其特征在于,所述装置包括:
变异种子数据选择模块,用于将状态机覆盖率和所述状态机覆盖率的执行频率数据作为能量分配算法的参数,选择DOM格式待变异种子数据;
变异数据获得模块,用于将所述DOM格式待变异种子数据输入模糊器,获得DOM格式变异数据;
测试模块,用于将DOM格式变异数据输入被测试机,获得测试执行结果;其中,所述测试执行结果包括所述被测试机的执行日志。
8.一种模糊测试系统,其特征在于,所述系统包括:权利要求1-6任一项所述的模糊器、引擎、解析器、观察器、收发器;
其中,所述解析器,用于根据输入Json、Xml或Ymal语法的的模糊测试对象文件进行解析,获得DOM对象;
所述引擎,用于根据DOM对象处理,获得初始DOM格式待变异种子数据;
所述模糊器,用于根据初始DOM格式待变异种子数据进行处理,获得DOM格式变异数据;
所述收发器,用于将DOM格式变异数据发送至被测试机,所述被测试机返回初始测试执行结果;
所述观察器,用于根据所述初始测试执行结果,获取异常数据包。
9.根据权利要求8所述的系统,其特征在于,所述引擎包括通用文件,所述通用文件用于存放各种工具类可复用的通用函数。
10.根据权利要求8所述的系统,其特征在于,所述引擎的目录下保存解析器、模糊器、观察器、收发器的抽象类。
CN202010682441.XA 2020-07-15 2020-07-15 一种模糊测试方法、装置和系统 Active CN112052156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010682441.XA CN112052156B (zh) 2020-07-15 2020-07-15 一种模糊测试方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010682441.XA CN112052156B (zh) 2020-07-15 2020-07-15 一种模糊测试方法、装置和系统

Publications (2)

Publication Number Publication Date
CN112052156A true CN112052156A (zh) 2020-12-08
CN112052156B CN112052156B (zh) 2022-07-29

Family

ID=73601778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010682441.XA Active CN112052156B (zh) 2020-07-15 2020-07-15 一种模糊测试方法、装置和系统

Country Status (1)

Country Link
CN (1) CN112052156B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113114534A (zh) * 2021-04-08 2021-07-13 苏煜程 一种基于神经网络的混合网络模糊测试工具
CN114553490A (zh) * 2022-01-25 2022-05-27 浙江木链物联网科技有限公司 工业用被动模糊测试方法、系统和可读存储介质
CN115774677A (zh) * 2022-12-20 2023-03-10 上海安般信息科技有限公司 一种基于多参数输入的模糊测试方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010069587A1 (en) * 2008-12-18 2010-06-24 Nec Europe Ltd. Method and device for supporting penetration testing of a computer system
CN102087631A (zh) * 2011-03-09 2011-06-08 中国人民解放军国发科学技术大学 一种面向状态协议实现软件的模糊测试方法
US20150319072A1 (en) * 2014-05-05 2015-11-05 Ixia Methods, systems, and computer readable media for providing fuzz testing functionality
CN105095075A (zh) * 2015-07-16 2015-11-25 北京理工大学 基于有限状态机网络协议半合法化模糊测试用例生成方法
CN107656864A (zh) * 2016-11-09 2018-02-02 华东师范大学 一种基于概率模型的移动应用自动化测试方法
CN109117367A (zh) * 2018-07-24 2019-01-01 北京理工大学 一种模糊测试变异数量确定方法和装置
CN110232012A (zh) * 2018-03-06 2019-09-13 国家计算机网络与信息安全管理中心 一种基于xml的模糊测试语言协议测试脚本和测试引擎
CN111124926A (zh) * 2019-12-25 2020-05-08 支付宝(杭州)信息技术有限公司 模糊测试方法、装置、电子设备及存储介质
WO2020104265A1 (en) * 2018-11-23 2020-05-28 Koninklijke Philips N.V. Coverage-based fuzzing of interactive applications
CN111400165A (zh) * 2020-02-11 2020-07-10 中国人民解放军战略支援部队信息工程大学 一种基于前向探针的离线符号执行路径搜索方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010069587A1 (en) * 2008-12-18 2010-06-24 Nec Europe Ltd. Method and device for supporting penetration testing of a computer system
CN102087631A (zh) * 2011-03-09 2011-06-08 中国人民解放军国发科学技术大学 一种面向状态协议实现软件的模糊测试方法
US20150319072A1 (en) * 2014-05-05 2015-11-05 Ixia Methods, systems, and computer readable media for providing fuzz testing functionality
CN105095075A (zh) * 2015-07-16 2015-11-25 北京理工大学 基于有限状态机网络协议半合法化模糊测试用例生成方法
CN107656864A (zh) * 2016-11-09 2018-02-02 华东师范大学 一种基于概率模型的移动应用自动化测试方法
CN110232012A (zh) * 2018-03-06 2019-09-13 国家计算机网络与信息安全管理中心 一种基于xml的模糊测试语言协议测试脚本和测试引擎
CN109117367A (zh) * 2018-07-24 2019-01-01 北京理工大学 一种模糊测试变异数量确定方法和装置
WO2020104265A1 (en) * 2018-11-23 2020-05-28 Koninklijke Philips N.V. Coverage-based fuzzing of interactive applications
CN111124926A (zh) * 2019-12-25 2020-05-08 支付宝(杭州)信息技术有限公司 模糊测试方法、装置、电子设备及存储介质
CN111400165A (zh) * 2020-02-11 2020-07-10 中国人民解放军战略支援部队信息工程大学 一种基于前向探针的离线符号执行路径搜索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张洪泽; 洪征; 周胜利; 冯文博: "基于协议状态机遍历的模糊测试优化方法", 《计算机工程与应用》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113114534A (zh) * 2021-04-08 2021-07-13 苏煜程 一种基于神经网络的混合网络模糊测试工具
CN114553490A (zh) * 2022-01-25 2022-05-27 浙江木链物联网科技有限公司 工业用被动模糊测试方法、系统和可读存储介质
CN114553490B (zh) * 2022-01-25 2024-02-09 浙江木链物联网科技有限公司 工业用被动模糊测试方法、系统和可读存储介质
CN115774677A (zh) * 2022-12-20 2023-03-10 上海安般信息科技有限公司 一种基于多参数输入的模糊测试方法及装置
CN115774677B (zh) * 2022-12-20 2024-02-23 上海安般信息科技有限公司 一种基于多参数输入的模糊测试方法及装置

Also Published As

Publication number Publication date
CN112052156B (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN112052156B (zh) 一种模糊测试方法、装置和系统
US11381599B2 (en) Cyber chaff using spatial voting
CN112560045A (zh) 应用程序漏洞检测方法、装置、计算机设备和存储介质
CN112351031B (zh) 攻击行为画像的生成方法、装置、电子设备和存储介质
CN110704816B (zh) 接口破解的识别方法、装置、设备及存储介质
US8161329B2 (en) Generating random sequences based on stochastic generative model having multiple random variates
US10496818B2 (en) Systems and methods for software security scanning employing a scan quality index
CN110543427B (zh) 测试用例存储方法、装置、电子设备及存储介质
CN111708771A (zh) 数据查重方法、装置、设备及计算机存储介质
CN111382067A (zh) 一种模糊测试中高质量种子生成方法及系统
CN116662177A (zh) 一种面向电力系统终端的测试用例自动化生成方法及系统
CN113360300A (zh) 接口调用链路生成方法、装置、设备及可读存储介质
CN114968750A (zh) 基于人工智能的测试用例生成方法、装置、设备和介质
US11809310B2 (en) Homomorphic encryption-based testing computing system
CN109040089B (zh) 网络策略审计方法、设备及计算机可读存储介质
CN110826074A (zh) 一种应用漏洞检测方法、装置和计算机可读存储介质
Garatti et al. A simulation-based approach to the approximation of stochastic hybrid systems
CN114416531A (zh) 一种测试数据生成方法、装置、设备及介质
CN113987515A (zh) 一种基于智能匹配的漏洞威胁发现方法及系统
CN113742721B (zh) 漏洞扫描的处理方法、装置、系统、电子装置和存储介质
CN116700727B (zh) 一种跨平台的数据处理方法及系统
KR102426889B1 (ko) 대용량 이벤트 로그에 대한 로그 타입별 데이터 분석 처리 장치, 방법 및 프로그램
Cangussu et al. A segment based approach for the reduction of the number of test cases for performance evaluation of components
Gupta et al. SEC‐H5: secure and efficient integration of settings of enhanced HTML5 XSS vector defensive framework on edge network of fog nodes
CN110633445A (zh) 一种自动分层报告的查看方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 10 / F, building 4, 188 Lianchuang street, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province 310000

Applicant after: Zhejiang Mulian Internet of things Technology Co.,Ltd.

Address before: 10 / F, building 4, 188 Lianchuang street, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province 310000

Applicant before: Hangzhou wooden chain Internet of things Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Fuzzy Testing Method, Device, and System

Effective date of registration: 20231108

Granted publication date: 20220729

Pledgee: Guotou Taikang Trust Co.,Ltd.

Pledgor: Zhejiang Mulian Internet of things Technology Co.,Ltd.

Registration number: Y2023980064454