工控网络漏洞挖掘方法、装置及系统与流程

文档序号:11156568阅读:542来源:国知局
工控网络漏洞挖掘方法、装置及系统与制造工艺

本发明实施例涉及计算机网络安全技术领域,具体涉及一种工控网络漏洞挖掘方法、装置及系统。



背景技术:

工业控制网络(以下简称“工控网络”)安全漏洞是在其生命周期的各个阶段(设计、实现、运维等过程)中引入的某类问题,比如设计阶段引入的一个设计的非常容易被破解的加密算法,实现阶段引入的一个代码缓冲区溢出问题,运维阶段的一个错误的安全配置,这些都有可能最终成为工控网络安全漏洞,这些漏洞会对工控网络的安全(可用性、完整性、机密性)产生严重影响。

近年来,工控系统强调开放性,在网络中大量引入通用的IT产品,如Windows操作系统、关系数据库等,并广泛使用以太网和TCP/IP协议,在降低成本和简化集成的同时将大量IT漏洞引入了工控网络。同时,大部分的工控网络应用层协议和现场总线协议,广泛使用MODBUS/TCP、CAN等明码传输协议,存在没有严格的身份识别,报文很容易被伪造等无法避免的脆弱性。因此,由相对封闭的专用计算机和网络体系发展而来的工控网络系统,安全的薄弱的环节几乎来自于各方各面,特别对于大型SCADA系统,设备分散安装,部分采用公网和无线网络,更容易受到利用漏洞的攻击,严重的攻击后果可以使系统网络完全瘫痪,造成工业过程失控或装置停机。

工控网络具有非常鲜明的特点,首先是封闭性,SCADA、DCS等控制系统和PLC等控制设备在设计之初就没有考虑完善的安全机制;其次是复杂性,工控网络常见的总线协议和应用层协议有几十种,不但每种通信协议的数据接口不完全相同,这些协议的规约实现也不相同;最后是不可改变性,工控网络很难进行改造和补丁升级。综合以上,传统信息安全的测试技术和设备不适合工控网络。具体来说,当前我国相关机构对工控网络安全漏洞进行检测的手段是比较局限的,具体体现在:

现有的端口服务扫描、漏洞特征扫描等技术对漏洞库的依赖较大,但公开的工控网络安全漏洞库信息很少,导致无法实现深入、全面的检测;

基于公开漏洞的扫描技术和机制无法有效发现未知漏洞,同时在时间上永远滞后于攻击者利用的未知漏洞;

缺乏针对性检测工具,无法有效证明工控设备上的潜在漏洞是否存在。



技术实现要素:

本发明实施例的一个目的是解决现有的漏洞检测技术依赖于公开的漏洞库,导致检测范围较小,而且无法检测到未知、潜在的漏洞的问题。

本发明实施例提出了一种工控网络漏洞挖掘方法,包括:

获取工控网络中待测设备的IP地址;

根据所述IP地址获取所述待测设备的属性信息;

根据所述属性信息获取至少一个测试用例;

发送所述至少一个测试用例至所述待测设备,并获取所述待测设备响应所述至少一个测试用例生成的反应数据;

根据所述至少一个测试用例和所述反应数据判断所述待测设备是否有异常。

可选的,在运行所述至少一个测试用例之前,所述方法还包括:

根据所述待测设备的属性信息获取测试口的IP地址;

通过所述测试口的IP地址与所述待测设备建立通信数据链。

可选的,所述根据所述IP地址获取所述待测设备的属性信息的步骤具体包括:

对所述待测设备的IP地址进行设备指纹识别处理,获取所述待测设备的属性信息。

可选的,所述根据所述属性信息获取至少一个测试用例的步骤具体包括:

根据所述基础信息从预建立测试用例库中获取至少一个测试用例,所述预建立测试用例库中存储有待测设备的属性信息与测试用例的对应关系。

可选的,所述至少一个测试用例中携带有测试输入数据和期望输出数据;所述反应数据为所述待测设备以所述测试输入数据为输入输出的;

相应地,所述根据所述至少一个测试用例和所述反应数据判断所述待测设备是否有异常的步骤具体包括:

对比所述期望输出数据和所述反应数据,若对比获知所述反应数据中未携带有所述期望输出数据,则确认所述待测设备发生异常。

可选的,若判断获知所述待测设备发生异常,则根据对比结果生成测试报告。

可选的,在获取工控网络中待测设备的IP地址的步骤之前,所述方法还包括:

获取所述工控网络的历史异常数据;

对所述历史异常数据进行分析,获取所述工控网络中各工控设备发生异常的概率;

根据各工控设备发生异常的概率和预设筛选规则对各待测设备进行筛选,获取待测设备组;

相应地,所述获取工控网络中待测设备的IP地址的步骤具体包括:

获取所述待测设备组中的待测设备的IP地址。

本发明还提出了一种工控网络漏洞挖掘装置,包括:

获取模块,用于获取工控网络中待测设备的IP地址;

第一处理模块,用于根据所述IP地址获取所述待测设备的属性信息;

第二处理模块,用于根据所述属性信息获取至少一个测试用例;

发送接收模块,用于发送所述至少一个测试用例至所述待测设备,并获取所述待测设备发送的反应数据;

判断模块,用于根据所述至少一个测试用例和所述反应数据判断所述待测设备是否有异常。

可选的,所述至少一个测试用例中携带有测试输入数据和期望输出数据;所述反应数据为所述待测设备以所述测试输入数据为输入输出的;

相应地,所述判断模块,具体用于对比所述期望输出数据和所述反应数据,若对比获知所述反应数据中未携带有所述期望输出数据,则确认所述待测设备发生异常。

本发明还提出了一种工控网络漏洞挖掘系统,包括:数据输入模块、监视器、以及上述的工控网络漏洞挖掘装置;

所述数据输入模块,用于基于工控网络的工控协议生成多个测试用例;

所述工控网络漏洞挖掘装置,用于根据工控网络中待测设备的属性信息选择测试用例,并将选择的测试用例输入至待测设备;

所述监视器,用于监视所述待测设备的响应,生成反应数据,并将所述反应数据输入至所述工控网络漏洞挖掘装置,由工控网络漏洞挖掘装置根据所述反应数据判断所述待测设备是否有异常。

由上述技术方案可知,本发明实施例提出的一种工控网络漏洞挖掘方法、装置及系统基于待测设备的属性信息向待测设备发送测试用例,以获取待测设备反馈的反应数据,并根据反应数据检测待测设备是否发生异常,实现对工控网络中漏洞的深入检测、以及未知漏洞的挖掘。。

附图说明

通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:

图1示出了本发明一实施例提供的一种工控网络漏洞挖掘方法的流程示意图;

图2示出了本发明另一实施例提供的一种工控网络漏洞挖掘方法的流程示意图;

图3示出了本发明一实施例提供的一种工控网络漏洞挖掘装置的结构示意图;

图4示出了本发明一实施例提供的一种工控网络漏洞挖掘系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出了本发明一实施例提供的一种工控网络漏洞挖掘方法的流程示意图,参见图1,所述方法可由漏洞挖掘检测平台或者处理器来实现,包括:

110、获取工控网络中待测设备的IP地址;

需要说明的是,在构建工控网络时,工控网络中的各设备均设置由唯一与之对应的IP地址,为了后续查找方便,可通过存库和构建数据表格等方式将设备以及设备对应的IP地址进行保存。

进而,处理器可基于待测设备的名称从存储器或者数据表格中获取到该设备的IP地址。

120、根据所述IP地址获取所述待测设备的属性信息,其中,属性信息包括:待测设备的厂商、型号等信息;

130、根据所述属性信息获取至少一个测试用例;

需要说明的是,对于不同类型的待测设备,预先设置的测试用例也是不同的,由此,需要基于待测设备的属性信息从预建立测试用例库中获取至少一个测试用例,其中,所述预建立测试用例库中存储有待测设备的属性信息与测试用例的对应关系。

其中,测试用例为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求的程序。

140、发送所述至少一个测试用例至所述待测设备,并获取所述待测设备响应所述至少一个测试用例生成的反应数据;

150、根据所述至少一个测试用例和所述反应数据判断所述待测设备是否有异常。

需要说明的是,对于不同待测设备,需要对其运行的测试用例不同,而对于不同的测试用例,其携带的测试输入、执行条件以及预期结果均不同,由此,对待测设备的运行的测试用例中携带有测试输入数据(测试输入)和期望输出数据(预期结果);

待测设备在接收待测试输入数据后,将反馈相应的反应数据,对比所述期望输出数据和所述反应数据,若对比获知所述反应数据中未携带有所述期望输出数据,则确认所述待测设备发生异常。

可见,本实施例基于待测设备的属性信息向待测设备发送测试用例,以获取待测设备反馈的反应数据,并根据反应数据检测待测设备是否发生异常,实现对工控网络中漏洞的深入检测、以及未知漏洞的挖掘。

为了提高监测的效率和精确度,在上述步骤110之前所述方法还包括:

获取所述工控网络的历史异常数据;

对所述历史异常数据进行分析,获取所述工控网络中各工控设备发生异常的概率;

根据各工控设备发生异常的概率和预设筛选规则对各待测设备进行筛选,获取待测设备组;

相应地,所述步骤110具体包括:获取所述待测设备组中的待测设备的IP地址。

需要说明的是,本实施例基于历史异常数据,结合大数据分析和人工智能算法,将监测的范围集中在较为容易发生异常、故障的范围内,并对该范围内的待测设备进行检测,实现提高监测效率和精确度的目的。

图2示出了本发明一实施例提供的一种工控网络漏洞挖掘方法的原理图,参见图2,该方法包括:

S21、根据待测设备的IP地址设置漏洞挖掘检测平台的测试口的IP地址,从而通过所述测试口的IP地址与所述待测设备建立通信数据链;

对所述待测设备的IP地址进行设备指纹识别处理,获取所述待测设备的属性信息,属性信息包括:设备的厂商、型号等信息,从而根据待测设备的属性信息推荐相关的测试用例。

S22、配置完成后,选择测试用例库中相应的测试用例,可设置测试用例的端口、变化次数等参数,并将设置完成后用例保存成测试脚本,方便调用。

S22、运行选中的测试脚本中的测试用例,进行工控未知漏洞智能挖掘,同时监视器实时监视被测设备的反应数据(如ARP响应、ICMP响应、TCP端口等)。查看挖掘过程中被测设备是否产生异常。

需要说明的是,为了进一步地提高监测效果,步骤S22综合运用各种测试方法和脚本,向被测对象提供非预期的随机或用户自定义输入测试用例,并监控待测设备输出的反应数据中的异常来发现其潜在缺陷和故障。

S24、测试完成后,自动生成测试结果和测试报告,报告可下载导出。

对于方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。

图3示出了本发明一实施例提供的一种工控网络漏洞挖掘装置的结构示意图,参见图3,该工控网络漏洞挖掘装置,包括:获取模块310、第一处理模块320、第二处理模块330、发送接收模块350、以及判断模块360,其中;

获取模块310,用于获取工控网络中待测设备的IP地址;

第一处理模块320,用于根据所述IP地址获取所述待测设备的属性信息;

第二处理模块330,用于根据所述属性信息获取至少一个测试用例;

发送接收模块340,用于发送所述至少一个测试用例至所述待测设备,并获取所述待测设备发送的反应数据;

判断模块350,用于根据所述至少一个测试用例和所述反应数据判断所述待测设备是否有异常。

需要说明的是,在被触发启动检测是,获取模块310获取待测设备的IP地址,并发送至第一处理模块320;第一处理模块320根据所述IP地址获取所述待测设备的属性信息,并将获取到的属性信息发送至第二处理模块330,由第二处理模块330根据所述属性信息获取至少一个测试用例,并通过发送接收模块340将所述至少一个测试用例发送至所述待测设备、获取所述待测设备发送的反应数据,发送接收模块340将把获取的反应数据发送至判断模块350,由判断模块350根据反应数据判断所述待测设备是否有异常。

其中,判断模块350的判断原理如下:

所述至少一个测试用例中携带有测试输入数据和期望输出数据;所述反应数据为所述待测设备以所述测试输入数据为输入输出的;

由此,判断模块350对比所述期望输出数据和所述反应数据,若对比获知所述反应数据中未携带有所述期望输出数据,则确认所述待测设备发生异常。

可见,本实施例基于待测设备的属性信息向待测设备发送测试用例,以获取待测设备反馈的反应数据,并根据反应数据检测待测设备是否发生异常,实现对工控网络中漏洞的深入检测、以及未知漏洞的挖掘。

对于装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。

在一可行实施例中,所述装置还包括:筛选模块;

所述筛选模块,用于获取所述工控网络的历史异常数据;对所述历史异常数据进行分析,获取所述工控网络中各工控设备发生异常的概率;根据各工控设备发生异常的概率和预设筛选规则对各待测设备进行筛选,获取待测设备组;

相应地,所述获取模块,具体用于获取所述待测设备组中的待测设备的IP地址。

可见,本实施例基于历史异常数据,结合大数据分析和人工智能算法,将监测的范围集中在较为容易发生异常、故障的范围内,并对该范围内的待测设备进行检测,实现提高监测效率和精确度的目的。

对于装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。

应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。

图4示出了本发明一实施例提供的一种工控网络漏洞挖掘系统的结构原理图,下面参见图4对本发明的原理进行详细说明,包括:数据输入模块41、漏洞挖掘引擎42(工控网络漏洞挖掘装置)、被测工控设备43、监视器44、数据分析引擎45、以及报告生成引擎46,其中;

数据输入模块41,用于基于工控协议的语法、语义模糊测试中的测试用例模块中的每一种类协议测试用例的开发,都需要对协议分档进行研究,研究的内容不仅包括协议的数据包格式,还有协议的通信模式。通过对文档或者私有协议数据包的大量的研究,会给出适用于漏洞挖掘检测平台的测试用例,为平台提供数据。

漏洞挖掘引擎42,用于根据工控网络中待测设备的属性信息选择测试用例,并将选择的测试用例输入至待测设备;具体地,基于工控协议的语法模糊测试:语法模糊测试基于工控协议实现(协议规范定义)的报文语法,测试数据生成模块在给定变量初始化文件的前提下,生成递归定义的测试用例语法描述;测试报文变形模块根据交互语义生成有序的一系列测试用例,有意将畸形的语法注入到测试报文,或者对合法的报文进行变异,并将测试用例输出至被测工控设备43,从而试图触发协议实现中有缺陷的代码,导致协议规范中定义的正常操作流程遭到干扰或破坏。

监视器44,用于监视所述待测设备的响应,生成反应数据,并将所述反应数据输入至所述工控网络漏洞挖掘装置;具体地,监视器44的个数以及种类可视监测需求而定,本方案中采用能实现如下监视功能的监视器:设备存活,端口存活,服务响应等;

相应地,漏洞挖掘引擎42还用于通过解析模块解析出监视器44传输的反应数据,并传输至数据分析引擎45;

由数据分析引擎45中的测试数据分析模块对待测设备的反应数据进行分析,并将分析结果传输至报告生成引擎46;

由报告生成引擎46的定制报告模块根据用户选择输出对应的数据。

本系统基于工控协议的智能模糊测试:创新的智能模糊测试引擎基于各类工控协议的规约来构建模型,在深入理解各个工控协议规约特征的基础上生成输入数据和测试用例去遍历协议实现的各个方面,包括在数据内容,结构,消息,序列中引入各种异常。同时,引入了大数据分析和人工智能算法,将初始的变形范围主要集中在该厂商设备最容易发生故障的范围内进行密集测试,测试中动态追踪被测设备的异常反应,智能选择更有效的输入属性构造新样本进行测试,在迭代测试中不断更新模型参数和优化样本构造,使得同一类设备将来进行测试时能够自动选择更有效的样本优先进行测试,这样可以大大减少测试数据生成的盲目性和测试用例的无效性,提升关键代码的覆盖率和设备的异常检测能力。

本发明的各个部件实施方式可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本装置中,PC通过实现因特网对设备或者装置远程控制,精准的控制设备或者装置每个操作的步骤。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样实现本发明的程序可以存储在计算机可读介质上,并且程序产生的文件或文档具有可统计性,产生数据报告和cpk报告等,能对功放进行批量测试并统计。应该注意的是上述实施方式对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施方式。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1