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

工控网络中基于机器学习的攻击向量生成方法及系统与流程

2022-05-08 06:19:39 来源:中国专利 TAG:


1.本发明属于工控系统网络安全技术领域,具体涉及工控网络中基于机器学习的攻击向量生成方法及系统。


背景技术:

2.工业控制系统由各式各样的自动化控制组件与即时数据采集、监控的进程控制组件共同组成的,应用于十分广阔的工业领域。现在所使用的工控系统大多是多年前设计开发的,缺乏相应的安全考虑,难免存在不少危及系统安全的漏洞,这些漏洞很有可能被入侵者利用,造成安全事故。随着两化融合的不断推进,成熟的it技术打破了工控系统的相对封闭性,信息化给工业带来的有利变化,显而易见。
3.但随之而来的网络信息安全问题,使人又为之惊慌,在工业网络中,运行着dcs、plc、scada等各种过程控制系统,它们往往是生产系统中的核心,负责完成基本的生产控制。但是,面临的安全问题和风险愈发凸显,工控系统网络安全事故严重影响了工业生产的生命与财产安全。其中,现有的工业系统中通常使用入侵检测技术发现对工控系统的网络攻击,但入侵检测技术只能检测到攻击并报警,不能提供攻击使用的方法、造成的后果和处理意见等相关信息,当工控系统再次面对同类或者同种攻击的时候,依旧会受到损失;基于上述分析,工控系统遭受攻击时,为了保障系统安全,不仅要能检测出漏洞,还需要根据漏洞得到攻击的路径以及方法,现有的漏洞检测,主要由安全人员根据检测目标的漏洞类型以及攻击向量的生成规则,生成大量攻击向量并逐条使用攻击向量对注入点进行注入式攻击检测,所以生成攻击向量是漏洞检测最重要的步骤,在生成攻击向量的过程中如果只依赖安全人员的检测经验进行生成,可能出现检测周期过长和攻击向量生成类型不匹配等问题,从而导致对系统漏洞检测不准确,无法对工控系统做到精确检测。


技术实现要素:

4.针对上述现有技术的不足,本技术提供工控网络中基于机器学习的攻击向量生成方法及系统。
5.第一方面本技术提出了工控网络中基于机器学习的攻击向量生成方法,包括以下步骤:构建包含攻击向量的知识图谱,将所述知识图谱中的样本数据输入到预设的神经网络中进行训练,得到攻击向量筛选模型;获取漏洞库中各类漏洞语言,将语言特征数据进行预处理后输入长短期记忆网络中进行训练,得到语言分析模型;将所述攻击向量筛选模型和语言分析模型进行融合生成攻击向量生成模型;对工控网络下的所有工控设备进行监控,记录并检索到所述工控网络下遭受攻击的工控设备,得到设备检索结果,根据所述设备检索结果对所述工控设备进行协议解析,得到对应的工控协议;
根据解析后的工控协议,获取遭受攻击的工控设备的历史运行数据;将所述历史运行数据进行预处理后输入到所述攻击向量生成模型中,得到所述工控设备对应的攻击向量。
6.在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,所述构建包含攻击向量的知识图谱,将所述知识图谱中的样本数据输入到预设的神经网络中进行训练,得到攻击向量筛选模型,包括,利用网络爬虫从nvd、cnvd、cnnvd漏洞库中获取历史漏洞数据以及漏洞对应的攻击向量数据;确定所述历史漏洞数据和所述攻击向量数据的字段内容;对所述历史漏洞数据和所述攻击向量数据的字段内容进行知识抽取;将抽取后的知识存入数据库并构建包含攻击向量的知识图谱;构建lstm神经网络,所述lstm神经网络包括筛选层和lstm层;从所述知识图谱中提取包括攻击向量的知识作为攻击向量样本数据输入到所述lstm神经网络进行训练,生成攻击向量筛选模型。
7.在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,所对所述历史漏洞数据和所述攻击向量数据的字段内容进行知识抽取,包括,对所述历史漏洞数据和所述攻击向量数据的字段内容进行实体抽取和关系抽取;所述实体抽取包括结构化数据实体抽取和非结构化数据实体抽取,通过正则匹配的方式进行所述结构化数据实体抽取,通过命名实体识别法的方式进行实体的抽取;所述关系抽取包括结构化数据关系抽取和非结构化数据关系抽取,通过实体间的关系抽取和实体的属性抽取进行结构化数据关系抽取,通过基于词向量卷积神经网络的抽取方式进行非结构化数据关系抽取。
8.在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,所述对工控网络下的所有工控设备进行监控,记录并检索到所述工控网络下遭受攻击的工控设备,得到设备检索结果,根据所述设备检索结果对所述工控设备进行协议解析,得到对应的工控协议,包括,在工控网络中预设攻击检测系统和设备检索引擎,通过所述攻击检测系统,对遭受攻击的工控设备进行记录,通过所述设备检索引擎对遭受攻击的工控设备进行检索,得到设备检索结果;对所述设备检索结果进行筛选处理,以及去除所述设备检索结果中的冗杂数据,得到受击工控设备检索结果;对所述受击工控设备检索结果中的受击工控设备进行协议解析,得到对应的工控协议。
9.在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,所述对所述受击工控设备检索结果中的受击工控设备进行协议解析,得到对应的工控协议,包括,抽取所述受击工控设备中工控协议的协议特征;基于所述协议特征,通过机器学习将所述受击工控设备的协议数据进行分类,得到分类后协议数据;对所述受击工控设备的未知工控协议按照不同字段进行分割,得到分割后协议字
段;将所述分割后协议字段映射到所述分类后协议数据中,对所述分割后协议字段进行识别,得到对应的工控协议。在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,根据解析后的工控协议,获取遭受攻击的工控设备的历史运行数据,包括,根据所述受击工控设备对应的工控协议,得到所述受击工控设备的设备信息;根据所述设备信息获取所述受击工控设备的ip,根据ip向对应的受击工控设备发出数据包获取请求,得到所述受击工控设备的数据包,所述数据包中包括所述历史运行数据。
10.在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,所述将所述历史运行数据进行预处理后输入到所述攻击向量生成模型中,得到所述工控设备对应的攻击向量,包括,对所述历史运行数据进行预处理,将所述历史运行数据变换成符合所述攻击向量生成模型输入条件的输入格式,生成攻击向量训练数据;将所述攻击向量训练数据输入所述攻击向量生成模型,生成攻击向量。
11.在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,所述对所述历史运行数据进行预处理,将所述历史运行数据变换成符合所述攻击向量生成模型输入条件的输入格式,生成攻击向量训练数据,包括,确定历史运行数据的字段内容,将所述历史运行数据的字段内容中字段类型、字段长度和字段顺序等特征数据进行提取,得到攻击向量训练数据。
12.在一些实施例中,上述工控网络中基于机器学习的攻击向量生成方法中,所述漏洞语言包括javascript、python或xml。
13.第二方面本技术提出了工控网络中基于机器学习的攻击向量生成系统,包括,第一模型生成模块、第二模型生成模块、模型融合模块、协议解析模块、数据获取模块和攻击向量生成模块;所述第一模型生成模块,用于构建包含攻击向量的知识图谱,将所述知识图谱中的样本数据输入到预设的神经网络中进行训练,得到攻击向量筛选模型;所述第二模型生成模块,用于获取漏洞库中各类漏洞语言,将语言特征数据进行预处理后输入长短期记忆网络中进行训练,得到语言分析模型;所述模型融合模块、用于将所述攻击向量筛选模型和语言分析模型进行融合生成攻击向量生成模型;所述协议解析模块、用于对工控网络下的所有工控设备进行监控,记录并检索到所述工控网络下遭受攻击的工控设备,得到设备检索结果,根据所述设备检索结果对所述工控设备进行协议解析,得到对应的工控协议;所述数据获取模块、用于根据解析后的工控协议,获取遭受攻击的工控设备的历史运行数据;所述攻击向量生成模块、用于将所述历史运行数据进行预处理后输入到所述攻击向量生成模型中,得到所述工控设备对应的攻击向量。
14.本发明的有益效果:
构建包含攻击向量的知识图谱,将知识图谱中的样本数据输入到预设的神经网络中进行训练,得到攻击向量筛选模型;获取漏洞库中各类漏洞语言,将语言特征数据进行预处理后输入长短期记忆网络中进行训练,得到语言分析模型;将攻击向量筛选模型和语言分析模型进行融合生成攻击向量生成模型;对工控网络下的所有工控设备进行监控,记录并检索到所述工控网络下遭受攻击的工控设备,然后通过获取受攻击工控设备的历史运行数据并将其输入攻击向量生成模型中从而得到攻击向量,从而形成一个自动生成攻击向量的运行闭环,降低了安全测试人员的入门成本,在生成攻击向量的过程中防止出现检测周期过长和攻击向量生成类型不匹配的问题,提高了生成攻击向量的效率以及系统漏洞检测准确度,对工控系统的检测覆盖面更全更精确。
附图说明
15.图1为本发明的总体流程图。
16.图2为生成攻击向量筛选模型流程图。
17.图3为设备检索流程图。
18.图4为协议解析流程图。
19.图5为数据获取流程图。
20.图6 为本系统的结构示意图。
具体实施方式
21.本技术提出控网络中基于机器学习的攻击向量生成方法及系统,通过构建包含攻击向量的知识图谱,将所述知识图谱中的样本数据输入到预设的神经网络中进行训练,得到攻击向量筛选模型,然后获取漏洞库中各类漏洞语言,将语言特征数据进行预处理后输入长短期记忆网络中进行训练,得到语言分析模型;将所述攻击向量筛选模型和语言分析模型进行融合生成攻击向量生成模型,然后将查找到受击工控设备后,通过解析受击工控设备获取工控协议,基于工控协议获取遭受攻击的工控设备的历史运行数据,将历史运行数据输入到攻击向量生成模型中得到攻击向量,本方案降低在生成攻击向量的过程中安全人员的入门成本,防止出现检测周期过长和攻击向量生成数量不匹配的问题,从而导致对提高了生成攻击向量的效率和系统漏洞检测准确度,对工控系统的检测覆盖面更全更精确。
22.下面结合附图对本技术作进一步描述,以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本技术的保护范围。
23.第一方面本技术提出了工控网络中基于机器学习的攻击向量生成方法,如图1所示,包括以下步骤:s100:构建包含攻击向量的知识图谱,将所述知识图谱中的样本数据输入到预设的神经网络中进行训练,得到攻击向量筛选模型;如图2所示,s110:利用网络爬虫从nvd、cnvd、cnnvd漏洞库中获取历史漏洞数据以及漏洞对应的攻击向量数据;信息的采集与整理是知识图谱构建的基础,数据质量的好坏决定了知识图谱中知识质量的高低,同时知识图谱数据结构决定了知识抽取采用的方法,
通过爬虫的方式从nvd、cnvd、cnnvd漏洞库获得质量较高的半结构化的漏洞信息,漏洞信息包括漏洞数据和漏洞对应的攻击向量。
24.攻击向量数据是利用与工业信息安全和攻击方式的关键词对github上存在的大量的工控漏洞攻击向量进行爬取,并形成一个《漏洞,攻击向量,攻击强度》的三元组进行结构化存储。
25.s120:确定所述历史漏洞数据和所述攻击向量数据的字段内容;历史漏洞数据和攻击向量数据的字段内容包括:字段类型、字段长度和字段顺序,其中,字段类型包括特征字段、功能码字段和数据字段,例如:特征字段为:特殊字符、特殊ascii码;功能码字段为:非法功能码、未定义功能码、自定义功能码或随机字符;数据字段为:单字符数值、空值、非法数据值、随机字符、分隔符、格式化字符串、超长字符串或目录遍历符号;字段长度为:0xfe,0x00,0x03,0xff,0x7d,0x7f,0x80等等;字段顺序为:特征字段-功能码字段-数据字段、功能码字段-数据字段-特征字段或数据字段-特征字段-功能码字段等。
26.s130:对所述历史漏洞数据和所述攻击向量数据的字段内容进行知识抽取;其中,对历史漏洞数据和所述攻击向量数据的字段内容进行实体抽取和关系抽取;在本实施例的知识图谱中,我们将字段内容中的不同字段类型、字段长度、字段顺序作为实体进行抽取,实体之间的关系根据实体的类别分别定义,因为字段类型中包含的字段不同,所以字段类型中不同的类型的字段对应不同的漏洞,例如:非法功能码和非法数据值的关系为《漏洞1》,特殊字符和自定义功能码的关系为《漏洞2》,不同的字段类型和字段方式对应了漏洞不同的攻击方式,不同的攻击方式对应不同的攻击向量,所以字段类型与字段顺序的关系为《攻击向量》,字段顺序和字段长度的关系为《攻击强度》;其中,实体抽取包括结构化数据实体抽取和非结构化数据实体抽取,通过正则匹配的方式进行所述结构化数据实体抽取,通过命名实体识别法的方式进行实体的抽取;命名实体识别法包括:通过corenlp工具对字段内容的文本进行处理并对其进行字段划分和人工标注,通过ner工具和ltp工具对字段内容的文本进行模型的训练,从而得到用于对字段内容进行识别的命名实体识别模型;使用训练好的命名实体识别模型在未标注的历史漏洞数据和攻击向量数据上进行字段划分和命名实体的识别,自动抽取一些粗粒度的实体;获取粗粒度的实体,使用word2vec工具将实体名转化为词向量,并筛选出与攻击向量信息相关的实体,通过相关实体的词向量,计算其他实体的词向量与这些词向量的距离的均值,不断迭代从而从中选取相关实体。
27.所述关系抽取包括结构化数据关系抽取和非结构化数据关系抽取,通过实体间的关系抽取和实体的属性抽取进行结构化数据关系抽取,通过基于词向量卷积神经网络的抽取方式进行非结构化数据关系抽取。
28.结构化数据关系抽取包括实体间的关系抽取和部分实体的属性关系抽取;非结构化数据关系抽取采用基于词向量卷积神经网络的抽取方式进行关系抽取。
29.基于词向量卷积神经网络的抽取方式进行关系抽取的方法为,通过word2vec工具
将所有训练语料中的词语进行向量化处理,将每一个词汇都转化为固定长度的词向量;使用实体及其所在字段内容的句式结构附近的词汇的词向量作为基本特征,将这些特征组合成特征向量,并根据词语在句式结构中的位置进行非线性的加权变换,得到根据词语向量信息和词语位置信息组合生成的特征向量;特征向量经过不同卷积核的卷积运算后会抽取到更多的特征,将最后生成的特征向量集合应用于分类器中,得到训练分类模型,从而对字段内容进行关系抽取。
30.s140:将抽取后的知识存入数据库并构建包含攻击向量的知识图谱;其中,在将将抽取后的知识存入数据库前,还需要进行知识对齐,知识对齐步骤包括对每个实体利用其所有属性的词向量进行线性变换,得到该实体的属性向量;将实体的属性向量与实体的词向量进行线性变换,得到实体的特征向量;依据实体的特征向量得到实体之间的相似度,从而依据实体之间的相似度进行对齐。
31.s150:构建lstm神经网络,所述lstm神经网络包括筛选层和lstm层;lstm神经网络即长短期记忆神经网络,是一种特殊的rnn模型(递归神经网络),是为了解决rnn网络梯度弥散的问题而提出的,与rnn模型相比lstm模型中最顶层多了一条名为细胞状态(cell state)的信息传送带,细胞状态是整个神经网络中的记忆空间且随着时间而变化并通过控制门(gate)控制哪些信息是否被记忆,在lstm神经网络中添加筛选层,在此基础上用来对输入的数据进行筛选。
32.s160:从所述知识图谱中提取包括攻击向量的知识作为攻击向量样本数据输入到所述lstm神经网络进行训练,生成攻击向量筛选模型。
33.将构建的知识图谱中字段内容的实体知识和关系知识作为攻击向量样本数据输入到所述lstm神经网络进行训练生成用于识别筛选攻击向量的攻击向量筛选模型。
34.s200:获取漏洞库中各类漏洞语言,将语言特征数据进行预处理后输入长短期记忆网络中进行训练,得到语言分析模型;获取漏洞库中各类漏洞语言,包括javascript、python或xml等,根据对应漏洞类型的语言,将语言特征数据进行预处理后输入长短期记忆网络中进行训练,得到语言分析模型。
35.s300:将所述攻击向量筛选模型和语言分析模型进行融合生成攻击向量生成模型;s400:对工控网络下的所有工控设备进行监控,记录并检索到所述工控网络下遭受攻击的工控设备,得到设备检索结果,根据所述设备检索结果对所述工控设备进行协议解析,得到对应的工控协议;如图3所示,s410:在工控网络中预设攻击检测系统和设备检索引擎,通过所述攻击检测系统,对遭受攻击的工控设备进行记录,通过所述设备检索引擎对遭受攻击的工控设备进行检索,得到设备检索结果;其中,攻击检测系统采用绿盟工控漏洞扫描系统,设备检索引擎为shodan引擎,shodan是一种网络空间搜索引擎,用于搜索联网的设备,本方案中用以搜索当前工控网络中所有的工控设备。
36.s420:对所述设备检索结果进行筛选处理,以及去除所述设备检索结果中的冗杂数据,得到受击工控设备检索结果;通过对设备检索结果进行去重、优化、整合等处理,删除重复数据、质量差的数据以及非受击工控设备的数据,例如:在没有解析出工控设备的系统信息的情况下,删除其数据;在工控设备的搜索结果不符合工控设备的工控协议时,删除其数据,检索到的工控设备为非受击工控设备,删除其数据。最后,将其数据进行整合,从而得到受击工控设备检索结果。
37.s430:对所述受击工控设备检索结果中的受击工控设备进行协议解析,得到对应的工控协议。
38.如图4所示,s431:抽取所述受击工控设备中工控协议的协议特征;由于无法了解工控协议细节,因此采用报文统计特征以表征工控协议。统计特征包括:报文长度、报文字节熵、报文间距离等。
39.s432:基于所述协议特征,通过机器学习将所述受击工控设备的协议数据进行分类,得到分类后协议数据;根据从工控协议报文中抽取的特征,计算报文间的相似度。为报文中的每个字节定义了权重,定义规则为:距离报文头部的权重递减,定义好权重后,通过莱文斯坦距离的方法计算报文间的相似度;基于以上统计特征和报文相似度计算方法,分别通过knn、kmeans、dbscan三种聚类算法进行聚类获得初始划分结果;接着采用集成聚类方法,将以上三种聚类算法组合得到邻近度矩阵,接着在这个邻近度矩阵上运用层次聚类中的单连接方法得到最终的聚类结果。
40.s433:对所述受击工控设备的未知工控协议按照不同字段进行分割,得到分割后协议字段;采用最长公共子序列的文本比较算法needleman-wunsch将未知工控协议中的不同字段进行分割,将未知工控协议报文分割成:常量字段、定长字段和变长字段。
41.s434:将所述分割后协议字段映射到所述分类后协议数据中,对所述分割后协议字段进行识别,得到对应的工控协议。
42.工控协议通常包含识别码、功能码、数据长度、操作地址、数据负载等字段,按照不同的类别对工控协议进行分类,然后将分类后协议数据与上述分割后协议字段进行匹配识别,将受击工控设备的未知工控协议进行映射还原,解析为已知工控协议;例如:功能码字段为定长字段,且通常位于工控协议报文头部。因此,从数据报文头部开始,将未知工控协议中分割得到的定长字段与聚类所得的工控协议报文进行逐个匹配,选取整个数据集的最大匹配度的定长字段作为未知工控协议的功能码字段。
43.s500:根据解析后的工控协议,获取遭受攻击的工控设备的历史运行数据;如图5所示,s501:根据所述受击工控设备对应的工控协议,得到所述受击工控设备的设备信息;通过解析得到的工控协议,我们可以获取到受击工控设备的设备信息,受击工控设备的设备信息一般包括:设备厂商、设备型号、设备版本号、ip和指纹库等。
44.s502:根据所述设备信息获取所述受击工控设备的ip,根据ip向对应的受击工控
设备发出数据包获取请求,得到所述受击工控设备的数据包,所述数据包中包括所述历史运行数据。
45.值得一提的是,每个ip都与每台工控设备相对应,基于从设备信息得到的ip,可以向ip对应的工控设备发送数据包获取请求,工控设备响应请求后,发送其运行过程中的数据包,数据包中包括有该工控设备的历史运行数据,进而获取到受击工控设备的历史运行数据。
46.s600:将所述历史运行数据进行预处理后输入到所述攻击向量生成模型中,得到所述工控设备对应的攻击向量。
47.对所述历史运行数据进行预处理,将所述历史运行数据变换成符合所述攻击向量生成模型输入条件的输入格式,生成攻击向量训练数据;其中,将历史运行数据变换成符合所述攻击向量生成模型输入条件的输入格式,包括,确定历史运行数据的字段内容,将所述历史运行数据的字段内容中字段类型、字段长度和字段顺序等特征数据进行提取,得到攻击向量训练数据;将得到的攻击向量训练数据输入攻击向量生成模型中,得到攻击向量。
48.第二方面本技术提出了工控网络中基于机器学习的攻击向量生成系统,如图6所示,包括,第一模型生成模块、第二模型生成模块、模型融合模块、协议解析模块、数据获取模块和攻击向量生成模块;所述第一模型生成模块,用于构建包含攻击向量的知识图谱,将所述知识图谱中的样本数据输入到预设的神经网络中进行训练,得到攻击向量筛选模型;所述第二模型生成模块,用于获取漏洞库中各类漏洞语言,将语言特征数据进行预处理后输入长短期记忆网络中进行训练,得到语言分析模型;所述模型融合模块、用于将所述攻击向量筛选模型和语言分析模型进行融合生成攻击向量生成模型;所述协议解析模块、用于对工控网络下的所有工控设备进行监控,记录并检索到所述工控网络下遭受攻击的工控设备,得到设备检索结果,根据所述设备检索结果对所述工控设备进行协议解析,得到对应的工控协议;所述数据获取模块、用于根据解析后的工控协议,获取遭受攻击的工控设备的历史运行数据;所述攻击向量生成模块、用于将所述历史运行数据进行预处理后输入到所述攻击向量生成模型中,得到所述工控设备对应的攻击向量。以上仅是本发明优选的实施方式,需指出的是,对于本领域技术人员在不脱离本技术方案的前提下,作出的若干变形和改进的技术方案应同样视为落入本权利要求书要求保护的范围。
再多了解一些

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

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

相关文献