CN110633221B - 一种模糊测试自动化漏洞定位方法 - Google Patents

一种模糊测试自动化漏洞定位方法 Download PDF

Info

Publication number
CN110633221B
CN110633221B CN201910915436.6A CN201910915436A CN110633221B CN 110633221 B CN110633221 B CN 110633221B CN 201910915436 A CN201910915436 A CN 201910915436A CN 110633221 B CN110633221 B CN 110633221B
Authority
CN
China
Prior art keywords
test
vulnerability
tested equipment
tested
equal
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.)
Active
Application number
CN201910915436.6A
Other languages
English (en)
Other versions
CN110633221A (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.)
Xinlian Technology Nanjing Co ltd
Original Assignee
Xinlian Technology Nanjing 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 Xinlian Technology Nanjing Co ltd filed Critical Xinlian Technology Nanjing Co ltd
Priority to CN201910915436.6A priority Critical patent/CN110633221B/zh
Publication of CN110633221A publication Critical patent/CN110633221A/zh
Application granted granted Critical
Publication of CN110633221B publication Critical patent/CN110633221B/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/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Abstract

本发明涉及一种模糊测试自动化漏洞定位方法,采用全新自动化逻辑架构,不需要人工手动干预,能够在测试的同时,高效针对触发漏洞的测试用例进行定位,其中,在测试过程中,若被测设备出现漏洞,则保存当前测试进度,自动回退,使用设计算法重放变异报文,直到探测被测设备不响应,出现漏洞;这样不经可以节省漏洞定位时间,提高测试效率,而且节省人力,降低成本;同时可以多任务并发,便于批量测试和连续测试,降低应用难度,便于推广。

Description

一种模糊测试自动化漏洞定位方法
技术领域
本发明涉及一种模糊测试自动化漏洞定位方法,属于模糊化测试技术领域。
背景技术
工业自动化控制系统和物联网系统在享受开放、互联技术带来的进步、效率与利益的同时,也面临着日益严重的安全威胁。针对这些安全威胁,目前模糊测试工具就应运而生,用来挖掘设备的未知漏洞、并验证已知漏洞。模糊测试工具采用测试-探测-测试的串行模式,通过创建测试任务,针对协议不同的功能子类创建不同的测试脚本,然后对协议的功能子类中需要做变异的字段进行错误注入、结构变异、洪泛攻击等,进而生成成千上万的测试用例,然后对被测设备发送变异报文,并探测被测设备的响应情况来完成测试。
模糊测试工具应用多个用例对被测设备进行测试,然后对其进行探测,如果探测到被测设备不响应正常的请求报文,则被测设备就产生了漏洞,假设探测区间范围的用例数是50,触发被测设备漏洞的变异报文保存在这50个用例中。人工手动定位,对于单包漏洞,每一个用例报文重放一次,需要重放50次才能定位出来;对于多包漏洞,尝试重放所有连续的序列,2个包的需要重放49次,3个包的需要重放48次,……,50个包的需要重放1次;综上所述,在极端的情况下定位一个漏洞需要重放50+49+48+…+1=1275次才能定位出来。
综上所述,现有模糊测试产品在测试过程中出现漏洞往往是靠人工经验,或者程序辅助的方法来定位,人工定位的成分比较大,没有依靠程序算法来自动化定位,这样的做法往往耗时又费力,而且还定位不准甚至定位不到,导致应用难度大,测试效率低下。
发明内容
本发明所要解决的技术问题是提供一种模糊测试自动化漏洞定位方法,采用全新自动化逻辑架构,能够在测试的同时,高效针对触发漏洞的测试用例进行定位。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种模糊测试自动化漏洞定位方法,用于查找使得被测设备产生漏洞的测试用例,包括如下步骤:
步骤A.针对全部排序的N个测试用例,按预设探测区间长度d,将预设第n1个测试用例至第N个测试用例,顺序划分为各个探测区间,即探测区间的数目A等于
Figure BDA0002215994710000011
然后初始化a=1,并进入步骤B;其中,1≤n1≤N;
步骤B.应用模糊测试平台,发送第a个探测区间中各个测试用例的变异报文、至被测设备进行测试,然后进入步骤C;
步骤C.应用模糊测试平台向被测设备发送正常报文,并探测被测设备是否响应,是则表示被测设备正常,并进入步骤D;否则表示被测设备出现漏洞,则暂停测试,重启被测设备,并进入步骤E;
步骤D.判断a是否等于A,是则表示被测设备正常,不存在使得被测设备产生漏洞的测试用例,漏洞定位方法结束;否则针对a的值进行加1更新,并返回步骤B;
步骤E.判断a是否等于A,是则定义n2=N,否则定义n2=n1+a*d-1,完成判断后,进入步骤F;
步骤F.针对第a个探测区间中的各个测试用例,即第[n1+(a-1)*d]个测试用例至第n2个测试用例,确定使得被测设备产生漏洞的测试用例。
作为本发明的一种优选技术方案,所述步骤F包括如下步骤:
步骤F1.初始化步长s=1,k=n2,并进入步骤F2;
步骤F2.若步长s等于1,应用模糊测试平台,发送第k个测试用例的变异报文、至被测设备进行测试,然后进入步骤F3;
若步长s不等于1,应用模糊测试平台,发送第(k-s+1)个测试用例至第k个测试用例的变异报文、至被测设备进行测试,然后进入步骤F3;
步骤F3.应用模糊测试平台向被测设备发送正常报文,并探测被测设备是否响应,是则表示被测设备正常,并进入步骤F4;否则表示被测设备出现漏洞,定位使得被测设备产生漏洞的测试用例,即为本次循环、步骤F2中向被测设备发送的各测试用例,漏洞定位方法结束;
步骤F4.若步长s等于1,判断k的值是否等于[n1+(a-1)*d],是则进入步骤F5;否则针对k的值进行减1更新,并返回步骤F2;
若步长s不等于1,判断(k-s+1)的值是否等于[n1+(a-1)*d],是则进入步骤F5;否则针对k的值进行减1更新,并返回步骤F2;
步骤F5.判断s是否等于d,是则表示不存在使得被测设备产生漏洞的测试用例,漏洞定位方法结束;否则针对s的值进行加1更新,并置k的值等于n2,然后返回步骤F2。
作为本发明的一种优选技术方案:所述步骤F3中,在确定被测设备出现漏洞,定位使得被测设备产生漏洞的测试用例,即为本次循环、步骤F2中向被测设备发送的各测试用例后,然后进入步骤F4。
本发明所述一种模糊测试自动化漏洞定位方法,采用以上技术方案与现有技术相比,具有以下技术效果:
本发明所设计模糊测试自动化漏洞定位方法,采用全新自动化逻辑架构,不需要人工手动干预,能够在测试的同时,高效针对触发漏洞的测试用例进行定位,其中,在测试过程中,若被测设备出现漏洞,则保存当前测试进度,自动回退,使用设计算法重放变异报文,直到探测被测设备不响应,出现漏洞;这样不经可以节省漏洞定位时间,提高测试效率,而且节省人力,降低成本;同时可以多任务并发,便于批量测试和连续测试,降低应用难度,便于推广。
附图说明
图1是本发明设计模糊测试自动化漏洞定位方法的应用架构图;
图2是本发明设计模糊测试自动化漏洞定位方法的流程示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
本发明设计了一种模糊测试自动化漏洞定位方法,用于查找使得被测设备产生漏洞的测试用例,实际应用当中,基于图1所示,按图2的流程规划,具体执行如下步骤A至步骤F。
步骤A.针对全部排序的N个测试用例,按预设探测区间长度d,将预设第n1个测试用例至第N个测试用例,顺序划分为各个探测区间,即探测区间的数目A等于
Figure BDA0002215994710000031
然后初始化a=1,并进入步骤B;其中,1≤n1≤N。
步骤B.应用模糊测试平台,发送第a个探测区间中各个测试用例的变异报文、至被测设备进行测试,然后进入步骤C。
模糊测试平台采用测试-探测-测试的串行模式,这就决定了漏洞往往是由于最近的一个探测区间范围内测试用例的变异报文所触发的,所以就在这个探测区间范围内对触发被测设备漏洞的测试用例进行定位。
步骤C.应用模糊测试平台向被测设备发送正常报文,并探测被测设备是否响应,是则表示被测设备正常,并进入步骤D;否则表示被测设备出现漏洞,则暂停测试,重启被测设备,并进入步骤E。
步骤D.判断a是否等于A,是则表示被测设备正常,不存在使得被测设备产生漏洞的测试用例,漏洞定位方法结束;否则针对a的值进行加1更新,并返回步骤B。
步骤E.判断a是否等于A,是则定义n2=N,否则定义n2=n1+a*d-1,完成判断后,进入步骤F。
步骤F.针对第a个探测区间中的各个测试用例,即第[n1+(a-1)*d]个测试用例至第n2个测试用例,确定使得被测设备产生漏洞的测试用例。
实际应用当中,上述步骤F具体执行如下步骤F1至步骤F5。
步骤F1.初始化步长s=1,k=n2,并进入步骤F2。
步骤F2.若步长s等于1,应用模糊测试平台,发送第k个测试用例的变异报文、至被测设备进行测试,然后进入步骤F3;
若步长s不等于1,应用模糊测试平台,发送第(k-s+1)个测试用例至第k个测试用例的变异报文、至被测设备进行测试,然后进入步骤F3。
步骤F3.应用模糊测试平台向被测设备发送正常报文,并探测被测设备是否响应,是则表示被测设备正常,并进入步骤F4;否则表示被测设备出现漏洞,定位使得被测设备产生漏洞的测试用例,即为本次循环、步骤F2中向被测设备发送的各测试用例,漏洞定位方法结束。
步骤F4.若步长s等于1,判断k的值是否等于[n1+(a-1)*d],是则进入步骤F5;否则针对k的值进行减1更新,并返回步骤F2;
若步长s不等于1,判断(k-s+1)的值是否等于[n1+(a-1)*d],是则进入步骤F5;否则针对k的值进行减1更新,并返回步骤F2。
步骤F5.判断s是否等于d,是则表示不存在使得被测设备产生漏洞的测试用例,漏洞定位方法结束;否则针对s的值进行加1更新,并置k的值等于n2,然后返回步骤F2。
上述步骤F1至步骤F5的执行过程当中,步骤F3中,在确定被测设备出现漏洞,定位使得被测设备产生漏洞的测试用例,即为本次循环、步骤F2中向被测设备发送的各测试用例后,进一步设计进入步骤F4,如此即可针对全部测试用例执行上述步骤F的探测过程,虽然此过程会增加运算量,但是可以更加全面的实现多测试用例的覆盖性探测,更加完整定位出全部触发被测设备出现漏洞的测试用例。
将上述设计所设计模糊测试自动化漏洞定位方法,应用于具体实际当中,假设探测区间的长度是20,在第100个测试用例处触发被测设备的漏洞,步长设置为1至20,首先步长设置为1,从第100个测试用例到第81个测试用例、倒序逐步执行各测试用例发包,执行一个测试用例发包一次,然后做一次探测,同时捕获这次测试用例执行的pcap包,如果探测失败,则保存漏洞信息,漏洞信息包含了出现漏洞的pcap数据包,漏洞定位描述(脚本名称、变异策略、变异函数、变异字段、变异值),然后测试人员在任务执行页面下载漏洞信息。比如某厂商的家庭网关单包漏洞,是由一个IP首部变异报文产生的,执行一个测试用例、探测一次,在20个探测区间范围内回退执行5次以后出现漏洞。
如果步长为1的测试-探测没有发现漏洞,就会进入步长为2测试,从第100个测试用例到第81个测试用例倒序逐步执行用例发包,执行两个测试用例发包,然后做一次探测。比如某厂商的PLC两个包触发的漏洞,是由2个连续的ARP变异报文产生的,执行两个测试用例、探测一次,在20个探测区间范围内回退执行2次以后出现漏洞。
重复上面的步骤,直到步长增长为20的测试,从第100个测试用例到第81个测试用例倒序逐步执行用例发包,执行20个测试用例发包,然后做一次探测,漏洞定位逻辑结束。比如某厂商的交换机18个包触发的漏洞,是由18个连续的ICMP变异报文产生的,执行18个测试用例探测一次,在20个探测区间范围内回退执行1次以后出现漏洞。
如果执行上面的漏洞定位逻辑没有定位出漏洞,则退出漏洞定位逻辑,从当前保存的测试上下文处继续测试。如果定位出来漏洞了,则重启被测设备恢复响应能力,然后从当前保存的测试上下文处继续测试。
实际应用中,当漏洞定位结束后,重启被测设备使其恢复响应能力以便继续测试,然后恢复漏洞定位前保存的测试进度的上下文信息(当前总测试用例数、当前脚本数、当前总脚本用例数)继续执行测试用例。对在漏洞定位过程中保存的变异报文进行二次分析,便于产品研发人员对产品在漏洞分析、漏洞修复上提供技术支持。
实际实施应用本发明所设计模糊测试自动化漏洞定位方法,与现有技术相比较,比如某次入网安全测试,针对一批入网设备中的三个设备,测试效果如下表1所示,其中,测试参数设置:探测区间长度为20,探测周期为2秒。
Figure BDA0002215994710000051
Figure BDA0002215994710000061
表1
如上表1所示,横向对比,本发明设计定位方式比人工定位效率更高,更节省时间;纵向对比,多包漏洞比单包漏洞更难定位,更耗时;综上所述,无论单包漏洞、还是多包漏洞,本发明设计定位耗时都比人工定位耗时短,效率高。
上述技术方案所设计模糊测试自动化漏洞定位方法,采用全新自动化逻辑架构,不需要人工手动干预,能够在测试的同时,高效针对触发漏洞的测试用例进行定位,其中,在测试过程中,若被测设备出现漏洞,则保存当前测试进度,自动回退,使用设计算法重放变异报文,直到探测被测设备不响应,出现漏洞;这样不经可以节省漏洞定位时间,提高测试效率,而且节省人力,降低成本;同时可以多任务并发,便于批量测试和连续测试,降低应用难度,便于推广。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

Claims (3)

1.一种模糊测试自动化漏洞定位方法,用于查找使得被测设备产生漏洞的测试用例,其特征在于,包括如下步骤:
步骤A.针对全部排序的N个测试用例,按预设探测区间长度d,将预设第n1个测试用例至第N个测试用例,顺序划分为各个探测区间,即探测区间的数目A等于
Figure FDA0003567596390000011
然后初始化a=1,并进入步骤B;其中,1≤n1≤N;
步骤B.应用模糊测试平台,发送第a个探测区间中各个测试用例的变异报文、至被测设备进行测试,然后进入步骤C;
步骤C.应用模糊测试平台向被测设备发送正常报文,并探测判断被测设备是否响应,是则表示被测设备正常,并进入步骤D;否则表示被测设备出现漏洞,则暂停测试,重启被测设备,并进入步骤E;
步骤D.判断a是否等于A,是则表示被测设备正常,不存在使得被测设备产生漏洞的测试用例,漏洞定位方法结束;否则针对a的值进行加1更新,并返回步骤B;
步骤E.判断a是否等于A,是则定义n2=N,否则定义n2=n1+a*d-1,完成判断后,进入步骤F;
步骤F.针对第a个探测区间中的各个测试用例,即第[n1+(a-1)*d]个测试用例至第n2个测试用例,确定使得被测设备产生漏洞的测试用例。
2.根据权利要求1所述一种模糊测试自动化漏洞定位方法,其特征在于,所述步骤F包括如下步骤:
步骤F1.初始化步长s=1,k=n2,并进入步骤F2;
步骤F2.若步长s等于1,应用模糊测试平台,发送第k个测试用例的变异报文、至被测设备进行测试,然后进入步骤F3;
若步长s不等于1,应用模糊测试平台,发送第(k-s+1)个测试用例至第k个测试用例的变异报文、至被测设备进行测试,然后进入步骤F3;
步骤F3.应用模糊测试平台向被测设备发送正常报文,并探测被测设备是否响应,是则表示被测设备正常,并进入步骤F4;否则表示被测设备出现漏洞,定位使得被测设备产生漏洞的测试用例,即为本次循环、步骤F2中向被测设备发送的各测试用例,漏洞定位方法结束;
步骤F4.若步长s等于1,判断k的值是否等于[n1+(a-1)*d],是则进入步骤F5;否则针对k的值进行减1更新,并返回步骤F2;
若步长s不等于1,判断(k-s+1)的值是否等于[n1+(a-1)*d],是则进入步骤F5;否则针对k的值进行减1更新,并返回步骤F2;
步骤F5.判断s是否等于d,是则表示不存在使得被测设备产生漏洞的测试用例,漏洞定位方法结束;否则针对s的值进行加1更新,并置k的值等于n2,然后返回步骤F2。
3.根据权利要求2所述一种模糊测试自动化漏洞定位方法,其特征在于:所述步骤F3中,在确定被测设备出现漏洞,定位使得被测设备产生漏洞的测试用例,即为本次循环、步骤F2中向被测设备发送的各测试用例后,然后进入步骤F4。
CN201910915436.6A 2019-09-26 2019-09-26 一种模糊测试自动化漏洞定位方法 Active CN110633221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910915436.6A CN110633221B (zh) 2019-09-26 2019-09-26 一种模糊测试自动化漏洞定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910915436.6A CN110633221B (zh) 2019-09-26 2019-09-26 一种模糊测试自动化漏洞定位方法

Publications (2)

Publication Number Publication Date
CN110633221A CN110633221A (zh) 2019-12-31
CN110633221B true CN110633221B (zh) 2022-06-28

Family

ID=68974136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910915436.6A Active CN110633221B (zh) 2019-09-26 2019-09-26 一种模糊测试自动化漏洞定位方法

Country Status (1)

Country Link
CN (1) CN110633221B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380542B (zh) * 2021-01-18 2021-04-27 杭州弈鸽科技有限责任公司 基于错误场景生成的物联网固件漏洞挖掘方法及系统
CN113992433B (zh) * 2021-12-24 2022-03-25 杭州海康威视数字技术股份有限公司 基于变异策略的网络设备并发模糊测试方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721230B (zh) * 2014-11-30 2017-03-22 中国科学院沈阳自动化研究所 一种面向Modbus协议的模糊测试方法
CN106326119A (zh) * 2016-08-19 2017-01-11 北京匡恩网络科技有限责任公司 测试用例生成方法及装置
CN109597767B (zh) * 2018-12-19 2021-11-12 中国人民解放军国防科技大学 一种基于遗传变异的模糊测试用例生成方法及系统

Also Published As

Publication number Publication date
CN110633221A (zh) 2019-12-31

Similar Documents

Publication Publication Date Title
CN110633221B (zh) 一种模糊测试自动化漏洞定位方法
Zeng et al. Libra: Divide and conquer to verify forwarding tables in huge networks
Voyiatzis et al. A modbus/tcp fuzzer for testing internetworked industrial systems
CN103970650B (zh) 分布式测试方法和装置
US9654490B2 (en) System and method for fuzzing network application program
CN108733569B (zh) 一种接口自动化测试方法、装置、存储介质及设备
CN107947972B (zh) 一种感知节点异常运行状态检测方法及检测装置
CN103973858B (zh) 移动终端的自动测试系统
CN105068900A (zh) 一种远程控制服务器cold reboot的测试方法
CN113709126A (zh) 网络协议安全模糊测试方法、装置、设备以及存储介质
CN104615519A (zh) 一种linux系统下检测服务器内存容量是否缺失的方法
CN105721203A (zh) 升级处理方法及装置
Kushik et al. On testing against partial non-observable specifications
CN106326089B (zh) 一种自动化测试的方法、装置及系统
CN111949548B (zh) 一种自动化越权渗透测试方法和存储设备
CN101706752B (zh) 一种软件错误现场定位的方法及装置
CN112596934A (zh) 一种故障测试方法及装置
CN106230658B (zh) 一种监控网络设备的方法和装置
CN112615848A (zh) 漏洞修复状态检测方法及系统
CN111078484A (zh) 系统升级的断电测试方法、装置、设备及存储介质
CN111176970A (zh) 一种区块链测试架构及系统
Kun et al. Software test case generation based on the fault propagation path coverage
CN105447389A (zh) 基于Peach平台的漏洞定位与快速重现
CN113326194A (zh) 一种基于变异报文随机排序的模糊测试方法、装置和存储介质
Hu et al. Adaptive software testing in the context of an improved controlled Markov chain model

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
GR01 Patent grant
GR01 Patent grant