CN113572760A - 一种设备协议漏洞检测方法及装置 - Google Patents
一种设备协议漏洞检测方法及装置 Download PDFInfo
- Publication number
- CN113572760A CN113572760A CN202110829772.6A CN202110829772A CN113572760A CN 113572760 A CN113572760 A CN 113572760A CN 202110829772 A CN202110829772 A CN 202110829772A CN 113572760 A CN113572760 A CN 113572760A
- Authority
- CN
- China
- Prior art keywords
- detected
- protocol
- test case
- equipment
- state
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Abstract
本发明提供了一种设备协议漏洞检测方法及装置,其中,该方法包括:确定待检测设备的待检测协议类型,获取待检测设备所在系统中的与待检测协议类型相对应的协议报文;获取协议报文中各字段之间的关系;根据协议报文对待检测设备所在系统进行协议状态机学习,获取待检测设备所在系统的状态机路径;根据状态路径确定测试用例生成方法,按照测试用例生成方法,结合各字段之间的关系生成与各状态路径对应的测试用例;将测试用例输入待检测设备,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果。本发明结合协议报文中各字段之间的关系以及状态路径生成测试用例,避免产生大量冗余的测试用例,提高了代码覆盖率,从而提高了漏洞检测效率。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种设备协议漏洞检测方法及装置。
背景技术
电力系统在应用工业自动化控制技术与物联网技术后,获得了效率与利益的同时,也面临着严重的安全威胁。电力设备协议可能存在漏洞,利用此类漏洞针对电力系统诸如智能电表等下游设备的攻击有可能突破电力系统防护措施,对电力系统主干网络造成影响,引起更大范围的故障。因此,发掘当前电力系统下游设备协议及系统漏洞,对于电力系统安全防护是极为必要的。
应用传统的模糊测试技术能够检测出待检测设备中的程序漏洞,但是目前能够应用于电力物联网的基于模糊测试的漏洞挖掘技术,均属于黑箱测试,即在不清楚待检测设备所采用的协议的情况下进行测试。这样的方法虽然能够极大地提升测试方法的普适性,但是同样也会造成代码覆盖率低和产生大量无效样本的情况。大量的无效样本和较低的代码覆盖率导致测试效率的低下。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中的大量的无效样本和较低的代码覆盖率导致测试效率低下的缺陷,从而提供一种设备协议漏洞检测方法及装置。
本发明第一方面提供了一种设备协议漏洞检测方法,包括:确定待检测设备的待检测协议类型,获取待检测设备所在系统中的与待检测协议类型相对应的协议报文;获取协议报文中各字段之间的关系;根据协议报文对待检测设备所在系统进行协议状态机学习,获取待检测设备所在系统的状态机路径,状态机路径包括多种不同的状态路径;根据状态路径确定测试用例生成方法,按照测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例;将测试用例输入待检测设备,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果。
可选地,在本发明提供的设备协议漏洞检测方法中,根据状态路径确定测试用例生成方法,按照测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例,包括:若状态路径为常用路径,将测试用例生成方法确定为生成方式,按照生成方式,结合各字段之间的关系生成与状态路径对应的测试用例。
可选地,在本发明提供的设备协议漏洞检测方法中,若状态路径为非常用路径,将测试用例生成方法确定为生成方式和变异方式,分别按照生成方式和变异方式,结合各字段之间的关系生成与状态路径对应的测试用例。
可选地,在本发明提供的设备协议漏洞检测方法中,按照生成方式,结合各字段之间的关系生成与状态路径对应的测试用例,包括:根据与待检测协议类型相对应的协议知识和各字段之间的关系生成测试用例模板;根据与待检测协议类型相对应的畸变知识形成畸形报文生成规则;根据测试用例模板和畸形报文生成规则生成测试用例。
可选地,在本发明提供的设备协议漏洞检测方法中,按照变异方式,结合各字段之间的关系生成与状态路径对应的测试用例,包括:根据与待检测协议类型相对应的协议知识和各字段之间的关系生成测试用例模板;根据各字段之间的关系和状态机路径,结合与待检测类型对应的变异知识,对测试用例模板进行报文变异,形成测试用例。
可选地,在本发明提供的设备协议漏洞检测方法中,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果,包括:获取待检测设备处理测试用例时存储的数据量;若待检测设备处理测试用例时存储的数据量大于目标区域存储量,则判定待检测设备存在协议漏洞。
可选地,在本发明提供的设备协议漏洞检测方法中,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果,包括:获取待检测设备处理测试用例时堆栈中寄存器的数值,若堆栈中寄存器的数值被堆栈读写覆盖更新,则判定待检测设备存在协议漏洞;获取待检测设备处理测试用例时,待检测设备的堆栈段存储数据,若堆栈段存储数据被执行,则判定待检测设备存在协议漏洞。
本发明第二方面提供了一种设备协议漏洞检测装置,包括:协议报文获取模块,用于确定待检测设备的待检测协议类型,获取待检测设备所在系统中的与待检测协议类型相对应的协议报文;报文特征学习模块,用于获取协议报文中各字段之间的关系,以及根据协议报文对待检测设备所在系统进行协议状态机学习,获取待检测设备所在系统的状态机路径,状态机路径包括多种不同的状态路径;测试用例生成模块,用于根据状态路径确定测试用例生成方法,按照测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例;漏洞检测模块,用于将测试用例输入待检测设备,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果。
本发明第三方面提供了一种计算机设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,从而执行如本发明第一方面提供的设备协议漏洞检测方法。
本发明第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如本发明第一方面提供的设备协议漏洞检测方法。
本发明技术方案,具有如下优点:
本发明提供的设备协议漏洞检测方法及装置,先确定待检测设备的待检测协议类型,然后获取待检测设备所在系统中与待检测协议类型相对应的协议报文,根据与待检测协议类型相对应的协议报文生成的测试用例,能够更有针对性地对待检测设备的协议漏洞进行检测,从而可以提高检测效率,并且,本发明提供的设备协议漏洞检测方法及装置中,结合协议报文中各字段之间的关系以及状态路径指导生成测试用例,能够避免产生大量冗余不符合要求的测试用例,提高了代码覆盖率,从而进一步提高了漏洞检测效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中设备协议漏洞检测方法的一个具体示例的流程图;
图2为本发明实施例中设备协议漏洞检测装置的一个具体示例的原理框图;
图3为本发明实施例中对智能电表终端和MQTT网关的协议漏洞进行检测时的示意图;
图4为本发明实施例中计算机设备的原理框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例提供了一种设备协议漏洞检测方法,包括:
步骤S10:确定待检测设备的待检测协议类型,获取待检测设备所在系统中的与待检测协议类型相对应的协议报文。在一可选实施例中,待检测设备可以为终端设备通信模块,也可以为网关通信模块,示例性地,可以为智能电表终端通信模块、MQTT网关通信模块等。
在一可选实施例中,对于基于不同协议实现的待检测设备,所确定的待检测协议类型是不同的,如,若待检测设备是基于MQTT协议实现的,则确定的待检测协议类型为MQTT协议,则对待检测设备进行漏洞检测时,所获取的协议报文也是MQTT协议报文。
在一可选实施例中,在获取与待检测协议类型相对应的协议报文时,先利用报文抓取工具捕获网络中的报文,然后,使用协议解析器对捕获的报文进行协议的分析,得到与待检测协议类型相对应的协议报文。示例性地,若待检测协议类型为MQTT协议,则使用协议解析器对捕获的报文进行协议的分析,得到MQTT协议报文。
在一可选实施例中,报文抓取工具与报文解析器可以使用wireshark、tcpdump等集成软件来进行报文的抓取和分析,当待检测协议类型为MQTT协议时,也可以使用单独MQTT协议模板来进行MQTT协议报文的检测,提高检测效率。在实际应用中,测试人员可以根据具体情况选择报文采集方式。
在一可选实施例中,若待检测协议类型为MQTT协议,在获取到MQTT协议报文后,可以使用不同格式的MQTT协议报文作为输入文件,将输入文件作为知识补充输入到知识库中,其中文件输入格式包含pcap、pcapng、dmp、cap、trc、ncf、txt等常见数据包存储格式。
步骤S20:获取协议报文中各字段之间的关系。
步骤S30:根据协议报文对待检测设备所在系统进行协议状态机学习,获取待检测设备所在系统的状态机路径,状态机路径包括多种不同的状态路径。
在一可选实施例中,可以使用netzob框架对协议报文进行分析、学习和推断,借助netzob的符号协议模型对报文进行符号生成,然后根据不同字段进行字段关系的推断,获得字段之间的关系,使用netzob框架进行协议状态机的学习,生成待检测设备所在系统使用的状态机路径。
在一可选实施例中,状态机路径是指待检测设备与其他设备之间交互时能够产生的所有交互过程,状态路径是指其中某一个交互过程。
步骤S40:根据状态路径确定测试用例生成方法,按照测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例。
在一可选实施例中,测试用例生成方法包括通过生成方式形成测试用例,以及通过变异方式形成测试用例。
步骤S50:将测试用例输入待检测设备,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果。
在一可选实施例中,在根据待检测设备的工作状态确定待检测设备是否存在协议漏洞时,可以先判断待检测设备的程序是否发生崩溃,如果程序发生崩溃,则证明待检测设备的程序存在协议漏洞。在一可选实施例中,在将测试用例输入到待检测设备中后,可以向待检测设备发送心跳报文,根据心跳报文确认待检测设备是否正常运转,从而判断待检测设备的程序是否发生奔溃。
以待检测设备的程序是否崩溃为判断待检测设备是否存在协议漏洞的依据显然颗粒度过大,而且一般只能检测到内存崩溃漏洞,如果存在守护近程则效果更加不明显,因此,在一可选实施例中,可以采用系统日志和gbd调试检测的方式对被测设备的运行状态进行监控。系统日志通过dmesg等日志信息检测程序异常,查看系统日志时一般会将debug信息级别调成最高,gdb调试监测程序运行时,可以通过脚本检测所需状态信息。
本发明实施例提供的设备协议漏洞检测方法,先确定待检测设备的待检测协议类型,然后获取待检测设备所在系统中与待检测协议类型相对应的协议报文,根据与待检测协议类型相对应的协议报文生成的测试用例,能够更有针对性地对待检测设备的协议漏洞进行检测,从而可以提高检测效率,并且,本发明实施例提供的设备协议漏洞检测方法中,结合协议报文中各字段之间的关系以及状态路径指导生成测试用例,能够避免产生大量冗余不符合要求的测试用例,提高了代码覆盖率,从而进一步提高了漏洞检测效率。
在一可选实施例中,在将测试用例输入到待检测设备中前,还需要重新计算测试用例的报文长度与校验和,然后再通过网络适配器发送到网络中,通过网络传入待检测设备中。
在待检测设备处理报文时,会先根据报文长度和校验和对报文进行初步验证,若报文中携带的报文长度和校验和与该报文实际的报文长度和校验和不符,则待检测设备会因为报文中携带的报文长度和校验和与该报文实际的报文长度和校验和不符而将测试用例舍弃,无法检测到待检测设备是否存在协议漏洞。
因此,在将测试用例输入到待检测设备中之前,先重新计算测试用例的报文长度和校验和,当待检测设备过滤掉测试用例时,则表示待检测设备检测到测试用例是非正常报文而将待测试用例舍弃,表明待检测设备不存在漏洞,当待检测设备未舍弃测试用例,并且在处理测试用例时工作状态出现异常时,则表示待检测设备存在协议漏洞。
如上述步骤S40中记载,测试用例生成方法包括通过生成方式形成测试用例,以及通过变异方式形成测试用例,在一可选实施例中,若状态路径为常用路径,将测试用例生成方法确定为生成方式,按照生成方式,结合各字段之间的关系生成与状态路径对应的测试用例;
若状态路径为非常用路径,将测试用例生成方法确定为生成方式和变异方式,分别按照生成方式和变异方式,结合各字段之间的关系生成与状态路径对应的测试用例。
常用路径是指发生频率较高的交互过程,非常用路径是指发生频率较低的交互过程,在一可选实施例中,可以在获取到状态机路径后,计算各状态路径的出现频率,将出现频率大于或等于预设值的路径确定为常用路径,将出现频率小于预设值的路径确定为非常用路径。示例性地,可以计算各状态路径的出现次数,将出现次数从大到小排序,将排名前六位的路径确定为常用路径,将排名后四位的路径确定为非常用路径。在一可选实施例中,在待检测设备使用使用过程中,也会不断采集新的协议报文,并根据新的协议报文形成新的测试用例,若新的协议报文对应的状态路径之前并未使用过,也将该状态路径确定为非常用路径。
在应用过程中,由于待检测设备与其他设备交互时常用路径的出现次数较多,待检测设备中存在的与常用路径对应的协议漏洞更容易被发现且修正,但是,待检测设备与其他设备交互时非常用路径出现次数较少,待检测设备中存在的与非常用路径对应的协议漏洞不容易被发现。因此,为了使得对待检测设备的协议漏洞检测能够覆盖到不常用的遗留功能,在本发明实施例中,当状态路径为非常用路径时,分别按照生成方式和变异方式,结合各字段之间的关系生成与状态路径对应的测试用例,选择不同的方式生成更多更全面的测试用例,使得检测结果更全面。
在一可选实施例中,按照生成方式,结合各字段之间的关系生成与状态路径对应的测试用例的步骤,包括:
首先,根据与待检测协议类型相对应的协议知识和各字段之间的关系生成测试用例模板。协议知识包括报文存在哪些字段、报文实例等信息。
然后,根据与待检测协议类型相对应的畸变知识形成畸形报文生成规则。畸变知识包括:按位翻转,即0->1,或,1->0;算数变异,按位对报文进行加或减;替换,把特殊内容或者token替换到报文实例中;拼接,将两个报文拼接起来;大量变异,对原报文实例进行大量变异等。
最后,根据测试用例模板和畸形报文生成规则生成测试用例。
在一可选实施例中,按照变异方式,结合各字段之间的关系生成与状态路径对应的测试用例的步骤,包括:
首先,根据与待检测协议类型相对应的协议知识和各字段之间的关系生成测试用例模板;
然后,根据各字段之间的关系和状态机路径,结合与待检测类型对应的变异知识,对测试用例模板进行报文变异,形成测试用例。
在一可选实施例中,当待检测协议类型为MQTT协议时,MQTT协议知识包括MQTT报文格式、MQTT协议语法等协议知识。变异知识包括对字符串类型、整型数据类型、布尔型、浮点型、等常见类型的变异知识。测试用例模板库包含MQTT协议常见的报文格式,比如连接、发布、订阅等常见报文。
在一可选实施例中,上述步骤S50中,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果,具体包括:
首先,获取待检测设备处理测试用例时存储的数据量;
然后,判断待检测设备处理测试用例时存储的数据量是否大于目标区域存储量,若待检测设备处理测试用例时存储的数据量大于目标区域存储量,则判定待检测设备存在协议漏洞。
数据量超过目标区域存储量时,会破坏程序的堆栈,使程序转而执行其他指令,从而达到供给程序的目的,因此,当检测到待检测设备处理测试用例时存储的数据量大于目标区域存储量时,表明待检测设备存在协议漏洞。
在一可选实施例中,上述步骤S50中,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果,具体包括:
首先,获取待检测设备处理测试用例时堆栈中寄存器的数值,
然后,判断堆栈中寄存器的数值是否被堆栈读写覆盖更新,若堆栈中寄存器的数值被堆栈读写覆盖更新,则判定待检测设备存在协议漏洞。
在一可选实施例中,在判断堆栈中寄存器的数值是否被堆栈读写覆盖更新时,可以先读取目标存储区和数据缓存区内数据大小,若数据缓存区内的数据大于目标存储区内的数据,并且溢出部分到达寄存器部分,则可以确定寄存器中的数值被覆盖更新,又由于寄存器可以控制程序执行流程,当寄存器中的数值被覆盖更新时,可以对待检测设备进行攻击,因此,当检测到寄存器中的数值被覆盖更新时,可以判定待检测设备存在协议漏洞。
在一可选实施例中,上述步骤S50中,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果,具体包括:
首先,获取待检测设备处理测试用例时,待检测设备的堆栈段存储数据。
然后,获取待检测设备的堆栈段存储数据是否被执行,若堆栈段存储数据被执行,则判定待检测设备存在协议漏洞。
由于堆栈段存储数据是只可以被读取,不可以被执行的,因此,当堆栈段存储数据被执行时,则表示待检测设备存在协议漏洞。
除了上述实施例中提供的通过判断待检测设备是否崩溃来确定待检测设备是否存在协议漏洞外,还对待检测设备的程序操作行为进行监控,从宏观行为特征和微观程序执行两个方面捕获目标程序异常,提高了异常的捕获率,从而提高了漏洞检测效率。
在一可选实施例中,本发明实施例提供的设备协议漏洞检测方法还包括:
若判定待检测设备存在协议漏洞,获取异常发生现场的调试信息,对待测设备重新执行可能导致异常发生的测试用例,并根据提取待检测设备发生异常时的特征,确定异常发生原因以及安全漏洞可利用状况。
本发明实施例还提供了一种设备协议漏洞检测装置,如图2所示,包括:
协议报文获取模块10,用于确定待检测设备的待检测协议类型,获取待检测设备所在系统中的与待检测协议类型相对应的协议报文,详细内容参见上述实施例中对步骤S10的描述。
报文特征学习模块20,用于获取协议报文中各字段之间的关系,以及根据协议报文对待检测设备所在系统进行协议状态机学习,获取待检测设备所在系统的状态机路径,状态机路径包括多种不同的状态路径,详细内容参见上述实施例中对步骤S20和步骤S30的描述。
测试用例生成模块30,用于根据状态路径确定测试用例生成方法,按照测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例,详细内容参见上述实施例中对步骤S40的描述。
漏洞检测模块40,用于将测试用例输入待检测设备,根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果,详细内容参见上述实施例中对步骤S50的描述。
在一可选实施例中,当本发明实施例提供的设备协议漏洞检测装置用于检测智能电表终端和MQTT网关是否存在MQTT协议漏洞时,如图3所示:
协议报文获取模块10包括报文采集模块和协议解析模块,报文采集模块用于采集智能电表终端和MQTT所在系统中的报文,将采集的报文传到协议解析模块中,通过协议解析模块获取MQTT协议报文。
协议解析模块将获取到的MQTT协议报文输入到报文特征学习模块20中,通过报文特征学习模块20获取协议报文中各字段之间的关系,以及状态机路径。
测试用例生成模块30根据协议报文中各字段之间的关系、状态机路径,以及测试用例知识库中的相关知识生成测试用例。
漏洞检测模块40包括测试用例执行模块和待检测设备监控模块,测试用例执行模块用于将测试用例输入到智能电表终端和MQTT网关中,待检测设备监控模块用于根据待检测设备的工作状态得到待检测设备的协议漏洞检测结果。
当待检测设备监控模块检测到待检测设备存在协议漏洞时,通过异常验证模块确定异常发生原因以及安全漏洞可利用状况。
本发明实施例提供了一种计算机设备,如图4所示,该计算机设备主要包括一个或多个处理器51以及存储器52,图4中以一个处理器51为例。
该计算机设备还可以包括:输入装置53和输出装置54。
处理器51、存储器52、输入装置53和输出装置54可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器51可以为中央处理器(Central Processing Unit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据设备协议漏洞检测装置的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至设备协议漏洞检测装置。输入装置53可接收用户输入的计算请求(或其他数字或字符信息),以及产生与设备协议漏洞检测装置有关的键信号输入。输出装置54可包括显示屏等显示设备,用以输出计算结果。
本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的设备协议漏洞检测方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种设备协议漏洞检测方法,其特征在于,包括:
确定待检测设备的待检测协议类型,获取待检测设备所在系统中的与所述待检测协议类型相对应的协议报文;
获取所述协议报文中各字段之间的关系;
根据所述协议报文对待检测设备所在系统进行协议状态机学习,获取所述待检测设备所在系统的状态机路径,所述状态机路径包括多种不同的状态路径;
根据状态路径确定测试用例生成方法,按照所述测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例;
将所述测试用例输入所述待检测设备,根据所述待检测设备的工作状态得到所述待检测设备的协议漏洞检测结果。
2.根据权利要求1所述的设备协议漏洞检测方法,其特征在于,根据状态路径确定测试用例生成方法,按照所述测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例,包括:
若所述状态路径为常用路径,将测试用例生成方法确定为生成方式,按照生成方式,结合各字段之间的关系生成与所述状态路径对应的测试用例。
3.根据权利要求1所述的设备协议漏洞检测方法,其特征在于,根据状态路径确定测试用例生成方法,按照所述测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例,包括:
若所述状态路径为非常用路径,将测试用例生成方法确定为生成方式和变异方式,分别按照生成方式和变异方式,结合各字段之间的关系生成与所述状态路径对应的测试用例。
4.根据权利要求2或3所述的设备协议漏洞检测方法,其特征在于,按照生成方式,结合各字段之间的关系生成与所述状态路径对应的测试用例,包括:
根据与所述待检测协议类型相对应的协议知识和各字段之间的关系生成测试用例模板;
根据与所述待检测协议类型相对应的畸变知识形成畸形报文生成规则;
根据所述测试用例模板和畸形报文生成规则生成所述测试用例。
5.根据权利要求3所述的设备协议漏洞检测方法,其特征在于,按照变异方式,结合各字段之间的关系生成与所述状态路径对应的测试用例,包括:
根据与所述待检测协议类型相对应的协议知识和各字段之间的关系生成测试用例模板;
根据所述各字段之间的关系和状态机路径,结合与所述待检测类型对应的变异知识,对所述测试用例模板进行报文变异,形成所述测试用例。
6.根据权利要求1所述的设备协议漏洞检测方法,其特征在于,根据所述待检测设备的工作状态得到所述待检测设备的协议漏洞检测结果,包括:
获取所述待检测设备处理所述测试用例时存储的数据量;
若所述待检测设备处理所述测试用例时存储的数据量大于目标区域存储量,则判定所述待检测设备存在协议漏洞。
7.根据权利要求1所述的设备协议漏洞检测方法,其特征在于,根据所述待检测设备的工作状态得到所述待检测设备的协议漏洞检测结果,包括:
获取所述待检测设备处理所述测试用例时堆栈中寄存器的数值,若所述堆栈中寄存器的数值被堆栈读写覆盖更新,则判定所述待检测设备存在协议漏洞;
获取所述待检测设备处理所述测试用例时,所述待检测设备的堆栈段存储数据,若所述堆栈段存储数据被执行,则判定所述待检测设备存在协议漏洞。
8.一种设备协议漏洞检测装置,其特征在于,包括:
协议报文获取模块,用于确定待检测设备的待检测协议类型,获取待检测设备所在系统中的与所述待检测协议类型相对应的协议报文;
报文特征学习模块,用于获取所述协议报文中各字段之间的关系,以及根据所述协议报文对待检测设备所在系统进行协议状态机学习,获取所述待检测设备所在系统的状态机路径,所述状态机路径包括多种不同的状态路径;
测试用例生成模块,用于根据状态路径确定测试用例生成方法,按照所述测试用例生成方法,结合各字段之间的关系,生成与各状态路径对应的测试用例;
漏洞检测模块,用于将所述测试用例输入所述待检测设备,根据所述待检测设备的工作状态得到所述待检测设备的协议漏洞检测结果。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如权利要求1-7中任一项所述的设备协议漏洞检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-7中任一项所述的设备协议漏洞检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110829772.6A CN113572760B (zh) | 2021-07-22 | 2021-07-22 | 一种设备协议漏洞检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110829772.6A CN113572760B (zh) | 2021-07-22 | 2021-07-22 | 一种设备协议漏洞检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113572760A true CN113572760A (zh) | 2021-10-29 |
CN113572760B CN113572760B (zh) | 2023-05-30 |
Family
ID=78166221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110829772.6A Active CN113572760B (zh) | 2021-07-22 | 2021-07-22 | 一种设备协议漏洞检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113572760B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174441A (zh) * | 2022-09-06 | 2022-10-11 | 中国汽车技术研究中心有限公司 | 基于状态机的tcp模糊测试方法、设备和存储介质 |
CN115174194A (zh) * | 2022-06-30 | 2022-10-11 | 浙江极氪智能科技有限公司 | 系统漏洞挖掘方法、装置、设备及存储介质 |
CN115622754A (zh) * | 2022-09-29 | 2023-01-17 | 四川启睿克科技有限公司 | 一种检测并防止mqtt漏洞的方法、系统和装置 |
CN117544332A (zh) * | 2023-02-09 | 2024-02-09 | 开元华创科技(集团)有限公司 | 一种便携式电动汽车充电桩信息安全智能检测装置及方法 |
CN117610027A (zh) * | 2024-01-23 | 2024-02-27 | 上海齐同信息科技有限公司 | 一种私有协议漏洞检测方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083854A1 (en) * | 2007-09-20 | 2009-03-26 | Mu Security, Inc. | Syntax-Based Security Analysis Using Dynamically Generated Test Cases |
CN104142888A (zh) * | 2014-07-14 | 2014-11-12 | 北京理工大学 | 一种有状态协议的规则化状态机模型设计方法 |
CN105095075A (zh) * | 2015-07-16 | 2015-11-25 | 北京理工大学 | 基于有限状态机网络协议半合法化模糊测试用例生成方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
US20200351191A1 (en) * | 2019-05-02 | 2020-11-05 | National Chiao Tung University | Automatic protocol test method by reverse engineering from packet traces to extended finite state machine |
-
2021
- 2021-07-22 CN CN202110829772.6A patent/CN113572760B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083854A1 (en) * | 2007-09-20 | 2009-03-26 | Mu Security, Inc. | Syntax-Based Security Analysis Using Dynamically Generated Test Cases |
CN104142888A (zh) * | 2014-07-14 | 2014-11-12 | 北京理工大学 | 一种有状态协议的规则化状态机模型设计方法 |
CN105095075A (zh) * | 2015-07-16 | 2015-11-25 | 北京理工大学 | 基于有限状态机网络协议半合法化模糊测试用例生成方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
US20200351191A1 (en) * | 2019-05-02 | 2020-11-05 | National Chiao Tung University | Automatic protocol test method by reverse engineering from packet traces to extended finite state machine |
Non-Patent Citations (4)
Title |
---|
ZHENGXIONG LUO,ET AL.: "ICS_Protocol_Fuzzing_Coverage_Guided_Packet_Crack_and_Generation", 《IEEE》 * |
张开便等: "基于模糊测试的网络协议漏洞挖掘研究", 《现代电子技术》 * |
梁新达: "智能监控设备漏洞挖掘方法的研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
陈建明等: "基于GEP的路径覆盖测试用例生成方法", 《计算机工程》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174194A (zh) * | 2022-06-30 | 2022-10-11 | 浙江极氪智能科技有限公司 | 系统漏洞挖掘方法、装置、设备及存储介质 |
CN115174441A (zh) * | 2022-09-06 | 2022-10-11 | 中国汽车技术研究中心有限公司 | 基于状态机的tcp模糊测试方法、设备和存储介质 |
CN115622754A (zh) * | 2022-09-29 | 2023-01-17 | 四川启睿克科技有限公司 | 一种检测并防止mqtt漏洞的方法、系统和装置 |
CN117544332A (zh) * | 2023-02-09 | 2024-02-09 | 开元华创科技(集团)有限公司 | 一种便携式电动汽车充电桩信息安全智能检测装置及方法 |
CN117610027A (zh) * | 2024-01-23 | 2024-02-27 | 上海齐同信息科技有限公司 | 一种私有协议漏洞检测方法及系统 |
CN117610027B (zh) * | 2024-01-23 | 2024-03-29 | 上海齐同信息科技有限公司 | 一种私有协议漏洞检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113572760B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113572760A (zh) | 一种设备协议漏洞检测方法及装置 | |
CN112906010B (zh) | 一种自动化攻击测试方法及基于此的自动化安全测试方法 | |
CN109063486B (zh) | 一种基于plc设备指纹识别的安全渗透测试方法与系统 | |
US20200117587A1 (en) | Log File Analysis | |
CN111786855B (zh) | 一种网卡的压力测试方法、装置、电子设备及存储介质 | |
CN109525457B (zh) | 一种基于状态迁移遍历的网络协议模糊测试方法 | |
CN113114680B (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
CN111382067A (zh) | 一种模糊测试中高质量种子生成方法及系统 | |
CN109460662B (zh) | 一种基于路径反馈的Javascript引擎模糊测试方法和装置 | |
CN112906011B (zh) | 漏洞发现方法、测试方法、安全测试方法及相关装置、平台 | |
CN112055003A (zh) | 一种基于字节长度分类的私有协议模糊测试用例生成方法 | |
US10296746B2 (en) | Information processing device, filtering system, and filtering method | |
CN113709126A (zh) | 网络协议安全模糊测试方法、装置、设备以及存储介质 | |
CN113328914A (zh) | 工控协议的模糊测试方法、装置、存储介质及处理器 | |
CN111124818B (zh) | 一种扩展器Expander的监控方法、装置及设备 | |
CN108427882B (zh) | 基于行为特征抽取的安卓软件动态分析检测法 | |
CN116166536A (zh) | 一种测试方法、装置、电子设备及存储介质 | |
CN112235244B (zh) | 异常报文的构造方法以及工控网络设备的检测方法、装置和介质 | |
KR101626581B1 (ko) | 휴대통신 단말의 오류 애플리케이션 진단방법 | |
CN115174189A (zh) | 异常检测方法、装置、电子设备及存储介质 | |
CN109039813B (zh) | 一种检测因特网接入的方法、系统及设备 | |
CN114428715A (zh) | 一种日志处理方法、装置、系统及存储介质 | |
CN107786357B (zh) | 一种接口性能测试方法、装置及网络设备 | |
CN113867994B (zh) | 机箱vpd信息处理方法、装置、存储设备及可读存储介质 | |
CN114978592B (zh) | 基于优化的多元组分包机制Modbus漏洞挖掘方法 |
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 |