一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

协议漏洞挖掘方法、装置、设备及存储介质与流程

2022-09-03 17:38:04 来源:中国专利 TAG:


1.本技术涉及通信安全领域,尤其涉及协议漏洞挖掘方法、装置、设备及存储介质。


背景技术:

2.工业机器人是衡量一个国家制造业水平的重要标志,是重塑我国制造业竞争优势的重要工具和手段。当前,我国工业机器人保有量较多,广泛应用于汽车、化工等行业,通过工业机器人可以自动、高效、精确的完成工业生产,有利于提升产品竞争的优势。
3.伴随着工业机器人的广泛应用,其网络安全问题日益突出。随着工业控制系统面临的信息安全形势越来越严峻,对专业化的机器人系统产品安全检测的需求也愈发突出。由于目前还没有针对机器人的专用协议漏洞挖掘方法,因而不能有效的发现机器人的协议漏洞。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种协议漏洞挖掘方法、装置、设备及存储介质,以解决现有技术中的不能有效的发现机器人的通信协议的漏洞的问题。
5.本技术实施例的第一方面提供了一种协议漏洞挖掘方法,所述方法包括:
6.获取待测设备的协议数据,解析所述协议数据生成解析结果;
7.根据所述解析结果进行协议验证,验证所述待测设备的协议是否符合协议标准;
8.根据所述协议数据,对所述待测设备进行报文重放验证;
9.根据预先设定的测试用例对所述协议数据进行变异处理得到变异数据,根据变异数据对所述待测设备进行漏洞测试。
10.结合第一方面,在第一方面的第一种可能实现方式中,根据预先设定的测试用例对所述协议数据进行变异处理得到变异数据,包括:
11.确定预先设定的测试用例中的关键协议字段;
12.根据预定的模糊策略,修改所述协议数据中的关键协议字段,得到变异数据;
13.或者,
14.确定预先设定的测试用例的协议格式;
15.根据预定的模糊策略,修改所述协议格式,得到变异数据。
16.结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,根据变异数据对所述待测设备进行漏洞测试,包括:
17.将所述变异数据发送至所述待测设备;
18.监测并记录所述待测设备的状态信息。
19.结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,监测所述待测设备的状态信息,包括:
20.通过ping指令监测所述待测设备的在线状态;
21.通过端口监听确定所述待测设备的端口开关状态;
22.通过i/o监听交互数据,获取所述待测设备的输入数据和输出数据。
23.结合第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,在通过i/o监听交互数据,获取所述待测设备的输入数据和输出数据之后,所述方法还包括:
24.确定所监听的交互数据中的异常数据;
25.通过区间测试,确定产生所述异常数据的测试用例。
26.结合第一方面,在第一方面的第五种可能实现方式中,根据所述解析结果进行协议验证,验证所述待测设备的协议是否符合协议标准,包括:
27.通过特征值匹配、语法结构分析和/或数据关系分析,确定所述待测设备的协议是否符合协议标准。
28.结合第一方面,在第一方面的第六种可能实现方式中,根据所述协议数据,对所述待测设备进行报文重放验证,包括:
29.通过数据抓取得到原始报文在所述待测设备中的第一响应数据;
30.将所述原始报文发送至所述待测设备,获取所述待测设备的第二响应数据,根据第一响应数据和所述第二响应数据确定重放验证结果。
31.本技术实施例的第二方面提供了一种协议漏洞挖掘装置,所述装置包括:
32.协议数据解析单元,用于获取待测设备的协议数据,解析所述协议数据生成解析结果;
33.协议验证单元,用于根据所述解析结果进行协议验证,验证所述待测设备的协议是否符合协议标准;
34.重放验证单元,用于根据所述协议数据,对所述待测设备进行报文重放验证;
35.变异测试单元,用于根据预先设定的测试用例对所述协议数据进行变异处理得到变异数据,根据变异数据对所述待测设备进行漏洞测试。
36.本技术实施例的第三方面提供了协议漏洞挖掘设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述方法的步骤。
37.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述方法的步骤。
38.本技术实施例与现有技术相比存在的有益效果是:本技术实施例通过获取待测设备的协议数据,基于协议数据的解析结果确定协议是否标准,再基于协议数据进行报文重放验证,验证所述待测设备的身份认证安全性,在通过报文重放验证后,进一步通过测试用例的变异处理,对待测设备进行漏洞测试,通过扩展的测试用例提高测试覆盖广度,减少完成测试用例总数和缩短测试时间,有利于更快更准的发现机器人协议未知漏洞。
附图说明
39.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
40.图1是本技术实施例提供的一种机器人的协议漏洞挖掘方法的实施场景示意图;
41.图2是本技术实施例提供的一种协议漏洞挖掘方法的实现流程示意图;
42.图3是本技术实施例提供的一种协议漏洞挖掘装置的示意图;
43.图4是本技术实施例提供的协议漏洞挖掘设备的示意图。
具体实施方式
44.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
45.为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
46.图1为本技术实施例提供的一种机器人的协议漏洞挖掘方法的实施场景示意图。如图1所示,该实施场景包括服务平台、待测设备和协议漏洞挖掘设备。其中,所述服务平台可与所述待测设备建立通信链路,所述服务平台可以通过所述通信链路向所述待测设备发送控制指令、数据等信息。待测设备可以通过所述通信链路向服务平台传送所采集的数据,包括待测设备的状态数据,或者待测设备的环境数据等。所述协议漏洞挖掘设备接入所述通信链路,当所述服务平台与所述待测设备进行数据交互时,所述协议漏洞挖掘设备可以通过所述通信链路,通过数据截取的方式,获取待测设备的协议数据。所述协议数据包括待测设备发送至服务平台的数据,以及服务平台发送至待测设备的数据中的一种或者两种。可以理解的是,所述服务平台可以连接其它待测设备,或者已经测试完成的设备,或者还可以连接移动控制端设备,或者连接控制中心等。
47.图2为本技术实施例提供的一种基于图1所示的实施场景的协议漏洞挖掘方法的实现流程示意图,详述如下:
48.在s201中,获取待测设备的协议数据,解析所述协议数据生成解析结果。
49.具体的,本技术实施例中所述的待测设备,可以包括工业机器人、工业自动化设备等智能设备。
50.所述待测设备在接入到所述待测设备与服务平台的通信链路时,可以将协议漏洞挖掘设备接入交换机中的待测设备的镜像口,基于镜像口捕获所述协议数据。
51.其中,捕获所述协议数据的方式,可以包括实时采集的方式,也可以包括手动采集的方式。或者,还可以根据协议数据的解析结果、验证结果等信息,确定所述协议数据的采集时间。
52.在本技术实施例中,对机器人的协议数据进行解析时,所述机器人的协议可以包括modbus、umas、s7comm、profinet、devicenet、ethernetip等通信协议。在对所述协议数据进行解析时,可解析tcp(英文全称为transmission control protocol,中方全称为传输控制协议)、udp(英文全称为userdatagramprotocol,中文全称为用户数据报协议)协议等协议中的源地址、目的地址、目的端口、源端口、网络协议、发送流量、接收流量、发送的数据包数量、接收的数据包数量、协议类型等数据中的一项或者多项作为解析结果。根据所得到的解析结果,可用于后续步骤中的协议验证和报文重放验证。
53.在本技术实施例中,对所捕获的数据包,可以进行tcp数据流重组。基于重组的数
据分析基于tcp协议的各种应用层协议。或者,还可以基于ip分片重组。将重组的数据包中的无关数据包过滤,然后将过滤掉无关数据包后的数据包,统一格式化,通过标准化数据结构存储解析结果,以便于根据解析结果进行协议验证。
54.在s202中,根据所述解析结果进行协议验证,验证所述待测设备的协议是否符合协议标准。
55.对于不同的协议,具有不同的验证标准。可以将不同协议的协议验证流程通过插件的形式进行设计,从而实现不同的机器人的协议使用不同的插件进行验证。可以根据协议数据的解析结果,确定所述待测设备所采用的网络协议,基于所确定的网络协议,采用与该网络协议相应的协议验证插件。
56.在本技术实施例中,所述协议漏洞挖掘设备中预先设置有测试用例。在对获取的协议数据解析成功后,可以将解析成功时所获取的协议数据的特征值以及对应的报文位置以特定格式,按照特定传输方式进行传输。比即可以json格式通过mqtt传输方式进行传输。其中,所述特征值可以包括如源ip、目的ip、源端口、目的端口、协议类型、功能码、数据报文等。
57.在智能生成测试用例时,可以将解析结果中的字段进行标注(包括通过不同颜色进行标注),可以通过流量跟踪,对整个流量对话进行报文合并,并对各类报文进行分析,可以通过所标记的不同标注,包括如不同颜色的标签记录分析结果。将分析结果与标准结果进行比较,确定所述协议是否符合协议标准。
58.在本技术实施例中,在验证所述协议是否符合协议标准时,可以通过特征值匹配、语法结构分析和数据关系分析中的一种或者多种,来确定协议是否符合协议标准。
59.比如,可以根据协议数据中的特征值,包括如协议格式等进行协议验证,如果所截取的协议数据与标准的协议数据的数据格式的特征值不匹配,则未能通过协议验证。
60.在进行语法结构分析时,可以将所截取的协议数据中的数据报文的语法结构,与标准协议的数据报文的语法结构进行比较,确定语法结构的匹配度。基于语法结构的匹配度,结合标准协议的语法结构的标准信息,确定所获取的协议数据是否符合协议标准。
61.基于数据关系进行协议验证时,可以基于标准协议的数据之间的数据关系,与截取的协议数据的数据关系,确定当前的协议数据是否符合协议标准。其中,数据关系可以包括数据之间的对应关系、数据之间的计算关系等。
62.当检测到协议数据中的协议不符合标准时,则可以将不符合标准之处进行标记或发出报警提示,可便于工作人员根据提示对协议漏洞进行完善或修复。
63.在s203中,根据所述协议数据,对所述待测设备进行报文重放验证。
64.在本技术实施例中,可以确定所截取的协议数据中的第一响应数据对应的原始数报文。将所述原始报文发送至待测设备,获取所述待测设备根据所述原始报文的第二响应数据。比较第一响应数据和第二响应数据,可对所述待测设备,比如工业机器人进行报文重放验证。比如,所述原始报文可以为登录数据,可以将截取的报文发送至所述待测设备,根据响应权限的异同,确定报文重放验证的结果。根据报文重放验证结果,
65.在通过报文重放验证,第一响应数据与第二响应数据一致,比如可以通过截取的协议数据获得待测设备的登录权限,则确定当前的协议存在登录安全的缺陷,可基于该缺陷对协议进行安全性能的改进。
66.在s204中,根据预先设定的测试用例对所述协议数据进行变异处理得到变异数据,根据变异数据对所述待测设备进行漏洞测试。
67.在本技术实施例中,协议漏洞挖掘设备中预先存储有测试用例,可以按照一定的测试间隔发送测试用例的数据包。在本技术实施例中,可以根据协议验证后的解析结果,通过模糊测试引擎生成异常数据结构。其中,所述模糊引擎包括用于生成异常结构的生成器,以及用于针对协议数据的内容,调用生成器产生变异结果的编译器。
68.在异常生成时,可以包括已知异常生成和格式异常生成。其中,已知异常生成可以依据内置测试用例,匹配出可进行模糊测试关键协议字段,在测试过程中,可以随机更改所截取的协议数据中所包括的关键协议字段,包括如插入特殊字符等等。格式异常生成的方式中,由于每个协议报文格式有对应的标准,比如modubus协议的头部、尾部有固定格式,可以根据预定的模糊策略,通过随机更改报文格式实现格式异常生成。
69.在本技术实施例中,可以将所生成的变异数据发送至所述待测设备,监测并记录待测设备的状态信息,基于所监测的状态信息,确定待测设备所存在的协议漏洞。
70.其中,所述待测设备的状态可以包括待测设备的在线状态、端口开关状态以及输入数据、输出数据/输出数据状态等。比如,可以通过ping指令监测所述待测设备的在线状态;通过端口监听确定所述待测设备的端口开关状态;通过i/o监听交互数据,获取所述待测设备的输入数据和输出数据。
71.在本技术实施例中,可以通过区间测试的方法,查询引起测试异常的测试用例。可以通过内置错误协议字段,在区间测试时,确定出现错误的字段内容,将出现错误的字段内容与内置的测试用例进行匹配,确定匹配的测试用例。
72.在本技术实施例中,可以通过监视模块监视机器人的协议漏洞挖掘过程中的运行状态。监视器能够对测试过程中的待测设备,比如机器人的状态进行监视。机器人的状态可以主要包括机器人协议测试数据包的捕获、机器人协议数据分析等。本技术实施例可以按照机器人协议的规范,预先定义好机器人协议探测数据包脚本,以一定的测试间隔发送探测包。
73.在本技术实施例中,可以采取内联的部署方式,通过arp欺骗的方式,将待测设备的协议模糊测试引擎,即本技术中的协议漏洞挖掘设备插入到服务平台和客户端(待测设备)之间,可以使用重放的方式对截获的协议数据进行突变,产生畸形数据或变异数据,从而使得本技术所述的协议漏洞挖掘方法,可以实现异常重启。
74.待测设备在正常运行时,通常会不断与下层生产过程进行数据i/o交互,如果工艺处理机制受到协议栈影响发生异常,会波及到下层i/o信号。本技术可以使用具有d/a或者a/d转换功能的接口卡,将机器人设备的i/o输出线外接到上位机(比如可以为协议漏洞挖掘设备)上,同时在上位机运行流程仿真程序,部署监测程序不断轮询i/o口的信号交互情况,当发生异常时,一方面发送消息给协议漏洞挖掘设备,以便保存场景信息,另一方面,可以在本地保存i/o异常情况和流程断点以便进一步分析。
75.另外,在本技术实施例中,协议漏洞挖掘设备中的模糊测试引擎被状态转换调用后,会开始运行对待测设备的测试。可以在协议漏洞挖掘设备中设置监视器模块,通过监视器模块会向待测设备发送在测试用例中定义好的数据包并自上而下的检查待测设备的协议栈是否还正常。包括待测设备(机器人)的协议数据,包括协议测试数据包的捕获、机器人
协议数据分析等。可以根据机器人协议的规范,由协议漏洞挖掘设备按照一定的测试间隔发送探测用的测试用例的数据包,如果正常则继续发送下一个探测用的数据包,如果不正常则上报给协议漏洞挖掘设备。
76.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
77.图3为本技术实施例提供的一种协议漏洞挖掘装置的示意图,如图3所示,该装置包括:
78.协议数据解析单元301,用于获取待测设备的协议数据,解析所述协议数据生成解析结果;
79.协议验证单元302,用于根据所述解析结果进行协议验证,验证所述待测设备的协议是否符合协议标准;
80.重放验证单元303,用于根据所述协议数据,对所述待测设备进行报文重放验证;
81.变异测试单元304,用于根据预先设定的测试用例对所述协议数据进行变异处理得到变异数据,根据变异数据对所述待测设备进行漏洞测试。
82.图3所示的协议漏洞挖掘装置,与图2所示的协议漏洞挖掘方法对应。
83.图4是本技术一实施例提供的协议漏洞挖掘设备的示意图。如图4所示,该实施例的协议漏洞挖掘设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42,例如协议漏洞挖掘程序。所述处理器40执行所述计算机程序42时实现上述各个协议漏洞挖掘方法实施例中的步骤。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能。
84.示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述协议漏洞挖掘设备4中的执行过程。
85.所述协议漏洞挖掘设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是协议漏洞挖掘设备4的示例,并不构成对协议漏洞挖掘设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述协议漏洞挖掘设备还可以包括输入输出设备、网络接入设备、总线等。
86.所称处理器40可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
87.所述存储器41可以是所述协议漏洞挖掘设备4的内部存储单元,例如协议漏洞挖掘设备4的硬盘或内存。所述存储器41也可以是所述协议漏洞挖掘设备4的外部存储设备,例如所述协议漏洞挖掘设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器41还可
access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
95.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献