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

一种用于工控网络的攻击向量生成方法及系统与流程

2022-05-08 09:15:39 来源:中国专利 TAG:


1.本发明属于工业网络安全技术领域,具体涉及一种用于工控网络的攻击向量生成方法及系统。


背景技术:

2.随着网络信息时代的到来,我国工业模式发生翻天覆地的变化,彻底打破了“信息孤岛”模式,企业全面联网,生产数据轻松实现汇总分析,不但提高了生产效率,还推动节能减排的国家战略。信息化给工业带来的有利变化,显而易见,但随之而来的网络信息安全问题,使人又为之惊慌,在工业网络中,运行着dcs、plc、scada等各种过程控制系统,它们往往是生产系统中的核心,负责完成基本的生产控制。但是,如果这些控制系统一旦遭受入侵或破坏,就会对工业生产造成影响,可能使企业蒙受重大的经济损失,甚至危及生产人员的生命安全,因此,为了保证控制系统的安全运行,安全人员需要对工业系统进行渗透检测,根据渗透检测出来的漏洞为系统提供完备的防护服务,提高系统的安全性。
3.其中,渗透检测主要由安全人员根据检测目标漏洞类型攻击向量的生成规则,生成大量攻击向量并逐条使用攻击向量对注入点进行注入式攻击检测,所以生成攻击向量是漏洞检测最重要的步骤,攻击向量的生成将直接关系到检测的效果;但是现有的攻击向量生成主要依赖安全人员的检测经验,如果安全人员经验不足导致,攻击向量的生成数量不足或者不完备,将会导致结果漏报率很高,又或者导致生成过量的攻击向量,可能会严重降低检测效率,并且长期通过安全人员进行人工生成攻击向量会导致检测周期过长影响检测结果,无法对设备做到精确检测,严重影响检测效率。


技术实现要素:

4.针对上述现有技术的不足,本技术提供一种用于工控网络的攻击向量生成方法及系统。
5.第一方面本技术提出了一种用于工控网络的攻击向量生成方法,包括以下步骤:对工控网络下的所有工控设备进行监控,检索运行异常的工控设备作为异常工控设备,分析并获取与所述异常工控设备相匹配的工控协议;获取所述异常工控设备的历史运行数据,将所述历史运行数据与预设漏洞库进行比对,从而得到漏洞对比结果;从预先构建的攻击模型库中获取与所述工控协议相匹配的攻击模型,基于所述攻击模型的攻击类型和所述漏洞对比结果生成攻击数据;对所述攻击数据进行降维生成攻击向量。
6.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,所述对工控网络下的所有工控设备进行监控,检索运行异常的工控设备作为异常工控设备,分析并获取与所述异常工控设备相匹配的工控协议,包括,通过设备检索引擎对所述工控设备进行检索,得到工控设备检索结果;
对所述工控设备检索结果进行筛选处理,以及去除所述工控设备检索结果中的冗杂数据,得到异常工控设备检索结果;从所述异常工控设备检索结果中解析所述异常工控设备的工控协议,基于解析后的工控协议获取所述异常工控设备的数据包。
7.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,在所述获取所述异常工控设备的历史运行数据,将所述历史运行数据与预设漏洞库进行比对,从而得到漏洞对比结果前,需要进行对比漏洞库构建步骤,包括,利用数据接口技术从现有漏洞数据库中获取对比漏洞数据和/或利用爬虫引擎技术从工业网络中获取对比漏洞数据;确定所述对比漏洞数据对应的字段内容;根据所述字段内容建立对比漏洞数据库存储表;建立包括所述对比漏洞数据以及对比漏洞数据库存储表的对比漏洞库。
8.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,所述获取所述异常工控设备的历史运行数据,将所述历史运行数据与预设漏洞库进行比对,从而得到漏洞对比结果,包括,从所述异常工控设备的数据包中获取历史运行数据;确定所述历史运行数据的字段内容,判断所述历史运行数据的字段内容是否完整,若不完整,则确定所述历史运行数据为不符合漏洞标准的数据;若完整,则将所述历史运行数据的字段内容与所述对比漏洞库中的漏洞的字段内容进行对比,若历史运行数据中不存在与对比漏洞库中的漏洞的字段内容完全相同的字段内容,则所述历史运行数据中不包括设备漏洞数据;若历史运行数据中存在与对比漏洞库中的漏洞的字段内容完全相同的字段内容,则提取所述历史运行数据中与对比漏洞库中的漏洞的字段内容完全相同的字段内容,作为所述设备漏洞数据。
9.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,所述从预先构建的攻击模型库中获取与所述工控协议相匹配的攻击模型,基于所述攻击模型的攻击类型和所述漏洞对比结果生成攻击数据,包括,对获取的攻击模型进行初始化,确定所述攻击模型对应的攻击类型;运行所述攻击模型,根据攻击类型执行所述攻击模型中的攻击类型函数,对所述设备漏洞数据进行处理,生成所述攻击数据。
10.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,运行所述攻击模型,根据攻击类型执行所述攻击模型中的攻击类型函数,对所述设备漏洞数据进行处理,生成所述攻击数据,包括,执行所述攻击模型中的特征数据字段异常攻击类型函数,将所述设备漏洞数据中的特征数据字段值替换为预设异常值,生成所述攻击数据。
11.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,执行所述攻击模型中的特征数据字段异常攻击类型函数,将所述设备漏洞数据中的特征数据字段值替换为预设异常值,生成所述攻击数据,包括,
对所述特征数据字段异常攻击类型函数进行解析,得到所述特征数据字段异常攻击类型函数的参数;判断所述参数是否包括异常数据列表;若包括,将所述设备漏洞数据中的特征数据字段值替换为所述异常数据列表中的值,生成所述攻击数据;若不包括,根据所述设备漏洞数据中的特征数据字段的类型,从攻击模型数据库中提取缺少的攻击数据,并将所述设备漏洞数据中的特征数据字段值替换为所述攻击数据,生成所述攻击数据。
12.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,运行所述攻击模型,根据攻击类型执行所述攻击模型中的攻击类型函数,对所述设备漏洞数据进行处理,生成所述攻击数据,还包括,执行所述攻击模型中的上下文不一致攻击类型函数,对所述设备漏洞数据中字段内容的位置进行交换,生成所述攻击数据;执行所述攻击模型中的上下文不一致攻击类型函数,对所述设备漏洞数据中字段内容的前面或后面填充预设无关数据,生成所述攻击数据。
13.在一些实施例中,上述一种用于工控网络的攻击向量生成方法中,所述对所述攻击数据进行降维生成攻击向量,包括,通过pca主成成分分析算法对所述攻击数据进行降维,将所述攻击数据变换成统一的向量格式,生成攻击向量。
14.第二方面本技术提出一种用于工控网络的攻击向量生成系统,包括设备监控检索模块、漏洞检测模块、攻击数据生成模块、攻击向量生成模块;所述设备监控检索模块,用于对工控网络下的所有工控设备进行监控,检索运行异常的工控设备作为异常工控设备,分析并获取与所述异常工控设备相匹配的工控协议;所述漏洞检测模块,用于获取所述异常工控设备的历史运行数据,将所述历史运行数据与预设漏洞库进行比对,从而得到漏洞对比结果;所述攻击数据生成模块,用于从预先构建的攻击模型库中获取与所述工控协议相匹配的攻击模型,基于所述攻击模型的攻击类型和所述漏洞对比结果生成攻击数据;所述攻击向量生成模块,用于对所述攻击数据进行降维生成攻击向量。
15.本发明的有益效果:先通过对工控网络下的所有工控设备进行监控,找到发生异常的工控设备并对其进行信息和数据提取,然后通过与预设的漏洞库进行对比进一步确定工控设备是否遭受攻击且被注入了漏洞数据,然后根据异常工控设备的信息和数据提取其中的漏洞数据,采用攻击模型库对应的攻击模型对漏洞数据进行处理后,生成攻击数据,对攻击数据进行降维处理得到攻击向量数据,本发明针对发生异常后的工控设备的漏洞数据生成攻击向量,实现对设备的精确检测,防止攻击向量生成数量不足或者生成过量的攻击向量情况,提高检测效率,降低检测周期。
附图说明
16.图1为本发明的总体流程图。
17.图2为设备检索和数据提取流程图。
18.图3为构建对比漏洞数据库的流程图。
19.图4为漏洞检测流程图。
20.图5为生成攻击数据流程图。
21.图6为本发明的系统结构图。
具体实施方式
22.本技术提出一种用于工控网络的攻击向量生成方法及装置,本发明针对发生异常后的工控设备的漏洞数据生成攻击向量,实现对设备的精确检测,防止攻击向量生成数量不足或者生成过量的攻击向量情况,提高检测效率,降低检测周期。
23.下面结合附图对本技术作进一步描述,以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本技术的保护范围。
24.第一方面本技术提出了一种用于工控网络的攻击向量生成方法,如图1所示,包括s100:对工控网络下的所有工控设备进行监控,检索运行异常的工控设备作为异常工控设备,分析并获取与所述异常工控设备相匹配的工控协议;其中,异常工控设备的判断方式为:若工控设备向服务器反馈了运行数据,则可以从当前运行数据中分析出工控设备运行状态和通信结果;若工控设备没有向服务器反馈运行数据,则判断为运行数据丢失,此时直接判断工控设备异常,并获取历史运行数据,进一步判断是否被注入漏洞数据。
25.如图2所示,s110:通过设备检索引擎对所述工控设备进行检索,得到工控设备检索结果;其中,设备检索引擎为shodan引擎,shodan搜索引擎的搜索语法如下表所示:
shodan是一种网络空间搜索引擎,用于搜索联网的设备,本方案中用以搜索当前工控网络中所有的工控设备。
26.s120:对所述工控设备检索结果进行筛选处理,以及去除所述工控设备检索结果中的冗杂数据,得到异常工控设备检索结果;通过对工控设备的检索结果进行去重、优化、整合等处理,删除重复数据、质量差的数据以及非异常工控设备的数据,例如:在没有解析出工控设备的系统信息的情况下,删除其数据;在工控设备的搜索结果不符合工控设备的工控协议时,删除其数据,检索到的工控设备为非异常工控设备,删除其数据。最后,将其数据进行整合,从而得到异常工控设备检索结果。
27.s130:从所述异常工控设备检索结果中解析所述异常工控设备的工控协议,基于解析后的工控协议获取所述异常工控设备的数据包。
28.其中,在异常工控设备的传输层协议为tcp协议的情况下,先通过tcp协议与工控设备的ip地址以及端口号建立通信连接,然后通过通信连接向异常工控设备进行查询;在异常工控设备的传输层协议为udp协议的情况下,则不需要与异常工控设备建立通信连接,直接向异常工控设备进行查询。
29.通过对不同的工控协议进行解析并将其传输规则分类整合,建立工控协议库,可以直接将异常工控设备的工控协议与工控协议库中进行匹配,得到异常工控设备的工控协议,进而获取到异常工控设备的数据包等设备信息。
30.在执行步骤s200前,如图3所示,还包括漏洞库构建步骤:d100:利用数据接口技术从现有漏洞数据库中获取对比漏洞数据和/或利用爬虫引擎技术从工业网络中获取对比漏洞数据;
d200:确定所述对比漏洞数据对应的字段内容;其中,对比漏洞数据的字段内容包括:特征字段、字段长度、功能码字段和数据字段,例如:特征字段为:特殊字符、特殊ascii码;字段长度为:0xfe,0x00,0x03,0xff,0x7d,0x7f,0x80;功能码字段为:非法功能码、未定义功能码、自定义功能码或随机字符;数据字段为:单字符数值、空值、非法数据值、随机字符、分隔符、格式化字符串、超长字符串或目录遍历符号。
31.d300:根据所述字段内容建立对比漏洞数据库存储表;待在漏洞数据库的特征字段、字段长度、功能码字段和数据字段等信息确定后,对字段内容进行分类和整合,设计对比漏洞数据库存储表;d400:建立包括所述对比漏洞数据以及对比漏洞数据库存储表的对比漏洞库。
32.利用etl对对比漏洞数据进行抽取、清洗、转换、加载等处理,归一化、标准化对比漏洞数据的字段内容,进行数据存储,形成对比漏洞库。
33.s200:获取所述异常工控设备的历史运行数据,将所述历史运行数据与预设漏洞库进行比对,从而得到漏洞对比结果;如图4所示,s210:从所述异常工控设备的数据包中获取历史运行数据;其中,因为步骤s100中的工控设备向服务器反馈了运行数据,则可以从当前运行数据中分析出工控设备运行状态和通信结果,所以当此时对工控设备的运行状态和通信结果分析发现异常后,便也可以从数据包中获取当前运行数据作为后续漏洞数据判断的基础。
34.s211:确定所述历史运行数据的字段内容;其中,对历史运行数据的字段内容按照步骤d200所示方法作字段内容确认,提取特征字段、字段长度、功能码字段和数据字段。
35.判断所述历史运行数据的字段内容是否完整;若不完整,则执行步骤s212;s212:确定所述历史运行数据为不符合漏洞标准的数据;若完整,则执行步骤s213;s213:将所述历史运行数据的字段内容与所述对比漏洞库中的漏洞的字段内容进行对比,若历史运行数据中不存在与对比漏洞库中的漏洞的字段内容完全相同的字段内容,则执行步骤s214;s214:所述历史运行数据中不包括设备漏洞数据;若历史运行数据中存在与对比漏洞库中的漏洞的字段内容完全相同的字段内容,则执行步骤s215;s215:提取所述历史运行数据中与对比漏洞库中的漏洞的字段内容完全相同的字段内容,作为所述设备漏洞数据。
36.s300:从预先构建的攻击模型库中获取与所述工控协议相匹配的攻击模型,基于所述攻击模型的攻击类型和所述漏洞对比结果生成攻击数据;因为不同的工控设备对应不同协议,并且在遭受攻击时,不同的设备漏洞数据也
会对应不同的攻击类型,所以预先根据异常工控设备的工控协议和遭受的攻击类型生成攻击模型,即每个攻击模型分别对应一个工控协议和攻击类型,多个攻击模型组成攻击模型库;根据遭受攻击的异常工控设备与攻击类型的对应关系,以及攻击模型库中攻击模型与工控协议和攻击类型组之间的对应关系,从攻击模型库中获取与异常工控设备的工控协议和攻击类型相对应的攻击模型;其中,攻击模型可基于javascript、python或xml等语言脚本进行构建。
37.如图5所示,s310:对获取的攻击模型进行初始化,确定所述攻击模型对应的攻击类型;其中,对攻击模型进行初始化,具体方式为:对攻击模型中的接口函数进行验证,所有接口函数验证通过后,根据其中的攻击类型函数的定义,确定攻击模型对应的攻击类型。
38.s320:运行所述攻击模型,根据攻击类型执行所述攻击模型中的攻击类型函数,对所述设备漏洞数据进行处理,生成所述攻击数据。
39.不同的设备漏洞数据也会对应不同的攻击类型,以下对其中的两种攻击类型进行阐述;特征数据字段异常攻击:执行所述攻击模型中的特征数据字段异常攻击类型函数,将所述设备漏洞数据中的特征数据字段值替换为预设异常值,生成所述攻击数据;具体的,对所述特征数据字段异常攻击类型函数进行解析,得到所述特征数据字段异常攻击类型函数的参数;判断所述参数是否包括异常数据列表;若包括,将所述设备漏洞数据中的特征数据字段值替换为所述异常数据列表中的值,生成所述攻击数据;若不包括,根据所述设备漏洞数据中的特征数据字段的类型,从攻击模型数据库中提取缺少的攻击数据,并将所述设备漏洞数据中的特征数据字段值替换为所述攻击数据,生成所述攻击数据。
40.其中,以abnormal为关键字的函数接口提示为特征数据字段异常攻击类型函数接口,解析到该接口,将继续解析接口参数是否包含指定的异常数据列表,当接口参数包含指定的异常数据列表时,例如西门子的特征数据字段值为“0500”,而iec设备的特征数据字段值为“59”,此时将设备漏洞数据中的特征数据字段值替换为预设异常值,当接口参数不包含指定的异常数据列表时,则访问攻击模型数据库,根据字段类型从数据库中提取缺失的攻击数据生成完整的攻击数据。
41.上下文异常攻击:执行所述攻击模型中的上下文不一致攻击类型函数,对所述设备漏洞数据中字段内容的位置进行交换,生成所述攻击数据;执行所述攻击模型中的上下文不一致攻击类型函数,对所述设备漏洞数据中字段内容的前面或后面填充预设无关数据,生成所述攻击数据。
42.具体的,将设备漏洞数据中字段内容的某几个字段进行位置交换,或者在字段内
容的前后填充无关数据,或者将某些字段内容去掉等方式生成攻击数据,例如:增加/减少字段长度,将字段内容里的功能字段、数据字段/特征字段调换位置。
43.s400:对所述攻击数据进行降维生成攻击向量。
44.通过pca主成分分析算法对所述攻击数据进行降维,将所述攻击数据变换成统一的向量格式,生成攻击向量。
45.pca主成分分析方法,是一种使用最广泛的数据降维算法。pca的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。pca的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理,根据上述算法从而将生成的攻击数据转化为变换成统一的向量格式,生成攻击向量。
46.第二方面本技术提出了一种用于工控网络的攻击向量生成系统,如图6所示,包括设备监控检索模块、漏洞检测模块、攻击数据生成模块、攻击向量生成模块;所述设备监控检索模块,用于对工控网络下的所有工控设备进行监控,检索运行异常的工控设备作为异常工控设备,分析并获取与所述异常工控设备相匹配的工控协议;所述漏洞检测模块,用于获取所述异常工控设备的历史运行数据,将所述历史运行数据与预设漏洞库进行比对,从而得到漏洞对比结果;所述攻击数据生成模块,用于从预先构建的攻击模型库中获取与所述工控协议相匹配的攻击模型,基于所述攻击模型的攻击类型和所述漏洞对比结果生成攻击数据;所述攻击向量生成模块,用于对攻击数据进行降维生成攻击向量。
47.以上仅是本发明优选的实施方式,需指出的是,对于本领域技术人员在不脱离本技术方案的前提下,作出的若干变形和改进的技术方案应同样视为落入本权利要求书要求保护的范围。
再多了解一些

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

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

相关文献