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

采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法与流程

2022-11-23 18:25:17 来源:中国专利 TAG:


1.本发明涉及工控安全技术领域,尤其涉及一种采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法。


背景技术:

2.工业控制系统中的攻击溯源技术主要分为两种:被动和主动技术。被动性技术包括针对潜在恶意行为警报进行取证调查和攻击假设测试。主动溯源追踪技术依靠网络威胁情报产生攻击假设,主动搜索潜在的恶意行为。在这两种情况下都可以使用设备中收集的安全日志、状态信息等关键数据进行调查,更好地调整假设用来发现正在进行的攻击。目前的研究基于的攻击场景多为诸如ddos的非定向网络攻击,没有区分攻击的指向性,在应对类似apt等频繁使用跳板主机、跳板网络和公共网络服务的网络攻击时,追踪溯源能力有限。
3.工业控制系统的操作系统存在漏洞,主机安全防护不足。工程师站和操作员站一般是基于windows平台,包括nt4.0、2000、xp、win7、server2003等,考虑到杀毒软件和系统补丁可能对控制系统的稳定运行造成影响,即便安装杀毒软件也存在病毒库过期等问题,因此通常不安装或运行杀毒软件,系统补丁在特殊情况下才进行更新或升级。同时,移动存储介质和软件运行权限管理缺失,控制系统极易感染病毒,从而降低了工业控制系统的安全性。


技术实现要素:

4.本发明的目的在于提供一种采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法,旨在解决现有的工业控制系统的安全性较差的问题。
5.为实现上述目的,本发明提供了一种采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法,包括以下步骤:
6.建立虚拟设备和所述虚拟设备的冗余;
7.收集攻击对象攻击时的原始数据,并将所述原始数据进行形式转换,得到转换数据;
8.将所述攻击对象引导至所述冗余,保存受到攻击前设备的状态,得到工控系统漏洞缺陷的初步位置;
9.基于所述初步位置采用静态分析的方法得到具体位置,基于所述具体位置生成被测试接口;
10.基于所述被测试接口采用模糊测试的方法挖掘具体漏洞,基于所述具体漏洞生成修复补丁;
11.基于所述转换数据构建攻击检测溯源神经网络对工控系统进行攻击溯源。
12.其中,所述基于所述初步位置采用静态分析的方法得到具体位置,基于所述具体位置生成被测试接口的具体方式为:
13.基于所述初步位置使用指针定位到存在漏洞的程序;
14.基于所述程序采用静态分析的方法得到具体位置;
15.基于所述具体位置生成被测试接口。
16.其中,所述基于所述被测试接口采用模糊测试的方法挖掘具体漏洞,基于所述具体漏洞生成修复补丁的具体方式为:
17.对所述被测试接口进行崩溃检测,得到崩溃记录;
18.基于所述崩溃记录生成攻击库,得到攻击方式;
19.基于所述攻击方式生成补丁,并将所述补丁部署到整个工控系统。
20.其中,所述崩溃检测包括附加调试器、目标进程是否消失和程序超时。
21.其中,所述基于所述转换数据构建攻击检测溯源神经网络对工控系统进行攻击溯源的具体方式为:
22.基于所述转换数据对工控系统的设备定义神经网络输入层结构;
23.将所述神经网络输入层结构构建溯源神经网络结构;
24.使用工业控制系统数据对所述溯源神经网络结构进行分层训练,得到攻击检测溯源神经网络;
25.将所述攻击检测溯源神经网络部署至工控系统进行攻击溯源。
26.本发明的一种采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法,通过建立虚拟设备和所述虚拟设备的冗余;收集攻击对象攻击时的原始数据,并将所述原始数据进行形式转换,得到转换数据;将所述攻击对象引导至所述冗余,保存受到攻击前设备的状态,得到工控系统漏洞缺陷的初步位置;基于所述初步位置采用静态分析的方法得到具体位置,基于所述具体位置生成被测试接口;基于所述被测试接口采用模糊测试的方法挖掘具体漏洞,基于所述具体漏洞生成修复补丁;基于所述转换数据构建攻击检测溯源神经网络对工控系统进行攻击溯源,本方法通过构造伪目标,将攻击引导至将攻击定向引导至设置好的靶机,基于攻击方对于靶机的病毒攻击,找到漏洞所在位置,使用模糊测试的方法验证具体的漏洞,再整合所有的攻击信息,进行人工智能技术训练,实现入侵检测溯源,解决了现有的工业控制系统的安全性较差的问题。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1是本发明提供的一种采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法的流程图。
29.图2是基于所述初步位置采用静态分析的方法得到具体位置,基于所述具体位置生成被测试接口的流程图。
30.图3是基于所述被测试接口采用模糊测试的方法挖掘具体漏洞,基于所述具体漏洞生成修复补丁的流程图。
31.图4是基于所述转换数据构建攻击检测溯源神经网络对工控系统进行攻击溯源的
流程图。
具体实施方式
32.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
33.请参阅图1至图4,本发明提供一种采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法,包括以下步骤:
34.s1建立虚拟设备和所述虚拟设备的冗余;
35.具体的,建立虚拟设备及其冗余,将实体设备和虚拟设备分离,冗余的虚拟设备作为蜜罐,在受到攻击时,将攻击对象引导至蜜罐而非用于生产的虚拟设备。
36.s2收集攻击对象攻击时的原始数据,并将所述原始数据进行形式转换,得到转换数据;
37.具体的,受到攻击时,收集用于可入侵检测的原始数据,包括但不限于工业控制设备日志、网络设备日志、原始网络数据包、人工操作记录,定义各设备之间的关联模式图。将原始数据表示为能够输入神经网络进行计算的形式。
38.例如,收集工控设备的指示灯数据及日志数据。设备有i个有明暗2个状态的指示灯,记录指示灯数据为维度为i的向量s。设备的日志包含j个严重程度等级,根据日志的严重程度等级按顺序从0开始递增将其编码为标量l,经过处理后最终编码为固定长度的输入xtext,其长度为t。
39.s3将所述攻击对象引导至所述冗余,保存受到攻击前设备的状态,得到工控系统漏洞缺陷的初步位置;
40.具体的,将攻击对象引导至蜜罐,通过快照技术保存受到攻击前设备的状态,所有病毒攻击文件都会被保存在增加文件中,通过记录病毒文件攻击的对象,得出工控系统漏洞缺陷的初步位置,本实例设置为指针ptr。同时收集攻击方的更详细信息,本实施例收集虚拟靶机的病毒文件和系统文件的数据。
41.s4基于所述初步位置采用静态分析的方法得到具体位置,基于所述具体位置生成被测试接口;
42.具体方式为:
43.s41基于所述初步位置使用指针定位到存在漏洞的程序;
44.具体的,依据指针ptr定位到存在漏洞的程序,遍历程序寻找到会被攻击的接口。
45.s42基于所述程序采用静态分析的方法得到具体位置;
46.s43基于所述具体位置生成被测试接口。
47.具体的,对目标程序接口提供测试case作为输入,与目标程序连接以提供模糊输入,得到具体位置,对于网络协议,它可能涉及在网络上发送测试用例,或响应客户的请求。对于文件格式,它可能意味着用一个指向测试用例的命令行参数来执行程序。然而,有时提供的输入的形式不容易以自动化的方式生成,或者编写程序脚本来执行每个测试用例的开销很大,证明是非常缓慢的。在这些情况下,可以通过在内存中人为地设置程序来执行解析功能,而输入的参数完全在内存中。这可以消除程序在每个测试用例之前经过冗长的加载
程序的需要。而且,通过让测试用例完全在内存中生成和提供,而不是通过硬盘驱动器,可以进一步提高速度。
48.具体的,在确定了被攻击的文件后,开始生成模糊测试的队列,由于工控系统存在多平台多算法的问题,测试接口的计算方式如下所示:
[0049][0050]
其中,n是需要被测试的对象的数量;n为测试接口的种类数量;p是生成对象的相对概率;c表示数量计算常数。
[0051]
对测试接口进行以下输入:
[0052]
{fk:{0x00,0x01,

,0xff}k→
[0,1]n|k,n∈n}。
[0053]
s5基于所述被测试接口采用模糊测试的方法挖掘具体漏洞,基于所述具体漏洞生成修复补丁;
[0054]
具体方式为:
[0055]
s51对所述被测试接口进行崩溃检测,得到崩溃记录;
[0056]
具体的,所述崩溃检测包括附加调试器、目标进程是否消失和程序超时。
[0057]
(1)附加调试器
[0058]
附加调试器可以提供最准确的结果。编写调试器的脚本,以便在检测到崩溃时立即提供崩溃跟踪。然而,附加一个调试器会大大降低程序的速度,并会造成相当大的开销。在给定的时间内,产生的测试用例越少,发现崩溃的机会就越少。
[0059]
(2)看看目标进程是否消失
[0060]
可以简单地看看在执行测试用例后,目标的进程id是否仍然存在于系统中。如果进程消失了,它可能已经崩溃了。如果想了解更多关于崩溃的信息,可以在以后用调试器重新运行测试用例。这样可以避免在每个案例中都连接调试器而导致的速度下降。
[0061]
(3)超时
[0062]
如果程序对测试用例有正常的响应,可以设置一个超时,超时后就判定程序已经崩溃。这也可以检测出导致程序无反应但不一定终止的错误。
[0063]
设给定的超时阈值τ=f(τ1,τ2,

,τn),程序的综合响应时间t=f(t1,t2,

,tn)》τ,时,可以断定程序发生崩溃,时,可以断定程序发生崩溃,其中g为临界值,可以断定程序在模块i处发生崩溃,将崩溃记录下来。
[0064]
s52基于所述崩溃记录生成攻击库,得到攻击方式;
[0065]
s53基于所述攻击方式生成补丁,并将所述补丁部署到整个工控系统。
[0066]
具体的,通过记录检测到崩溃时使用的确切输入形成攻击库,对漏洞进行针对性的修改,将补丁部署到整个工控系统。
[0067]
s6基于所述转换数据构建攻击检测溯源神经网络对工控系统进行攻击溯源。
[0068]
具体的,下面分别对四种数据的预处理进行叙述:
[0069]
网络设备的数据包数据:
[0070]
通常来说工业控制系统数据包是由一系列标量和离散值组成的,可以对这些部分分别进行处理,本实施例出于通用性考虑,直接采用one-hot编码的方式,将数据包按比特
位分别作为神经网络的输入。考虑到网络设备的最大传输单元为k,则得到维度为k的向量p。
[0071]
工控设备的指示灯数据:
[0072]
设备有i个有明暗2个状态的指示灯,则指示灯数据可以直接表示为维度为i的向量s。
[0073]
工控设备的日志数据:
[0074]
设备的日志包含j个严重程度等级,根据日志的严重程度等级按顺序从0开始递增将其编码为标量l。对于日志的文本部分,根据设备日志表分析得到停用词表,将停用词去除后,利用词向量编码方法,将日志编码为词向量矩阵t,由于日志的长度是不固定的,因此利用循环神经网络rnn或其它深度语言模型方法,将日志编码为固定长度的输入xtext,其长度为t。
[0075]
病毒文件和系统文件数据:
[0076]
病毒文件和系统文件以二进制形式存储,对这些文件进行处理,输出更格式化的数据包,数据包由一系列标量和离散值组成,采用one-hot编码的方式,将数据包按比特位分别作为神经网络的输入。设定最大传输单元为s,则得到维度为m的向量q。
[0077]
具体方式为:
[0078]
s61基于所述转换数据对工控系统的设备定义神经网络输入层结构;
[0079]
具体的,将原始数据表示为能够输入神经网络进行计算的形式,对不同类型的设备分别定义其神经网络输入层结构。本实施例对所有设备均采用包含2个隐藏层的神经网络,所述神经网络包含一个辅助分类器,该辅助分类器的作用是初步输出对该设备当前状态是否为入侵行为的预测,本实施例对所有设备均在第2个隐含层添加1个辅助分类器。
[0080]
将数据包数据同病毒文件和系统文件数据整合为数据类a,其神经网络的输入层应当为k m,对应公式为添加辅助分类器后的损失函数形式为
[0081]
将指示灯数据和日志数据整合为数据类b,其神经网络的输入层应当为i 1 t,分别对应指示灯输入、日志等级输入、日志文本输入,对应公式为别对应指示灯输入、日志等级输入、日志文本输入,对应公式为添加辅助分类器后的损失函数形式为
[0082]
s62将所述神经网络输入层结构构建溯源神经网络结构;
[0083]
具体的,将每个设备的神经网络分类器层的输入作为攻击检测溯源神经网络的输入,设计攻击检测溯源神经网络的结构。本实施例采用全连接的形式,将入侵检测网络的各尺度使用全连接层连接至攻击溯源网络。
[0084]
多尺度特征融合的攻击溯源网络:
[0085]
本实施例采用的溯源网络为2隐藏层的全连接神经网络,即g(u)=g0(g1(g2(u))),选择数据类a和数据类b的第2层作为高分尺度,第1层作为中间尺度,第0层作为宏观尺度,即
[0086]
相对于未使用多尺度特征融合的网络,若有攻击方案使得数据类a状态为数据类b状态为且状态和均属于正常状态,则应当有则入侵检测网络表明未发生攻击,此时未使用多尺度特征融合的攻击溯源网络有u=(ha,hb)=(0,0),无法判定攻击状态,而本实施例的方案则有则有可以根据判断得到当前处于攻击状态,且溯源结果为(a,b)。
[0087]
s63使用工业控制系统数据对所述溯源神经网络结构进行分层训练,得到攻击检测溯源神经网络;
[0088]
具体的,采用分层训练的方式:
[0089]
(1)对入侵检测网络进行训练,得到数据类a入侵检测网络ha和数据类b入侵检测网络hb,其对应权重分别为na,nb。
[0090]
(2)将整体入侵检测溯源网络中分别为数据类a数据类b的部分值使用先前训练好的权重na、nb进行初始化,再对攻击溯源网络部分进行随机初始化。
[0091]
(3)对整体网络进行训练,最终得到能够进行入侵检测溯源的神经网络。
[0092]
s64将所述攻击检测溯源神经网络部署至工控系统进行攻击溯源。
[0093]
具体的,最后将本入侵检测溯源系统部署至工业控制系统,对系统数据进行实时检测溯源。
[0094]
本方法通过构造伪目标,将攻击引导至将攻击定向引导至设置好的靶机,基于攻击方对于靶机的病毒攻击,找到漏洞所在位置,使用模糊测试的方法验证具体的漏洞,再整合所有的攻击信息,进行人工智能技术训练,实现入侵检测溯源。本方法解决了传统工控系统漏洞挖掘效率低下的问题,基于攻击诱导高效判定漏洞位置,结合模糊测试方法全面分析具体的漏洞问题,有效提升了补丁的全面性。本方法同时有效扩展了攻击信息的来源,将在漏洞挖掘过程中进一步探索出的数据加入样本库,解决了入侵检测溯源样本较少的问题,保证了人工智能技术训练出的网络的可靠性。
[0095]
有益效果:
[0096]
1.通过攻击诱导,将攻击定向引导至设置好的靶机,初步保证了工控系统的安全性。
[0097]
2.基于攻击方对于靶机的病毒攻击,找到漏洞所在位置,使用模糊测试的方法验证具体的漏洞。
[0098]
3.整合所有的攻击信息,进行人工智能技术训练,实现入侵检测溯源。
[0099]
以上所揭露的仅为本发明一种采用漏洞挖掘及攻击溯源提高工业控制系统安全的方法较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献