一种基于BP神经网络的工业控制系统漏洞自动挖掘方法与流程

文档序号:12459430阅读:608来源:国知局
一种基于BP神经网络的工业控制系统漏洞自动挖掘方法与流程

本发明涉及漏洞自动挖掘领域,尤其涉及一种基于BP神经网络的工业控制系统漏洞自动挖掘方法。



背景技术:

截止到2017年1月24日,国家新型安全漏洞共享平台公布的工业控制系统漏洞有979条,期中西门子漏洞占据40.86%,研华科技漏洞占据19.43%,施耐德占据15.43,罗克韦尔占据12%,其余的是从事虚拟化的Parallels漏洞占据了12.29%。这些漏洞中高危漏洞占据了48.18%,中危占45.97%,低危占5.85%。

常见的工控系统漏洞有通讯传输协议漏洞、工控设备漏洞、工控软件漏洞、配置错误漏洞等。通讯传输协议漏洞主要是TCP/IP、RPC、UDP等协议的漏洞。工控软件漏洞主要由于工控软件缺少统一的安全防护规范,普遍存在安全设计缺陷,因此工控软件容易被攻击者攻击,取得设备的控制权,造成严重后果。

当前的漏洞扫描技术主要是模糊测试技术,模糊测试是一个自动或半自动的过程,主要属于黑盒测试和灰盒测试领域。早期主要采用简单的随机测试技术到2002年首次把文件格式知识和协议知识融入到模糊测试技术之中,再到2007年一批开源和商业的模糊测试工具问世,随后更多新思想、新方法的模糊测试不断涌现,如一种基于模糊测试的全局方法、有关网络控制方面漏洞的测试模型、一种利用组合模型推理和进化的模糊方法都为漏洞挖掘技术提供了强有力的支撑。随着模糊测试的发展,其所运到的工具也愈发多样化,通用的模糊测试工具可以针对各种不同类型的目标进行测试,具有可重用性和使用范围广等优点, 其中比较具有代表性的有Protos、SPIKE、Peach、Sulley、Dfuz和Bunny等。

当前工业控制系统漏洞检测主要采用判定函数法、格蕴含推理法、漏洞规则匹配法、动态签名法、通信数据解析法、哈希校验法、漏洞特征匹配法、规则判定法、属性推理法等。

综上所述,当前工业控制系统漏洞检测虽然采用了诸多方式,主要采用的是基于Fuzzy为基础的异常数据探查法,特征值匹配法、规则判断法几类,BP(Back Propagation)神经网络这种按误差逆传播算法训练的多层前馈网络多用于模式识别,在工业控制系统漏洞挖掘领域还很少出现。由于工业控制系统的实时性运行,无法在线挖掘工业控制系统漏洞,没有办法去分析数据之间的关系,还存在自动学习能力不足的特点,为了解决当前问题,我们公布了一种基于BP神经网络的工业控制系统漏洞自动挖掘方法。



技术实现要素:

本发明公布了一种基于BP神经网络的工业控制系统漏洞自动挖掘方法,该方法包括工业控制系统数据采集模块,神经元设计模块,神经网络结构设计模块,算法实现模块。

本发明的工业控制系统数据采集模块:主要是采集数据和数据的归一化处理。

本发明的神经元设计模块:主要是把工业控制系统的状态信息作为输入向量,把控制信息作为输出向量。

本发明的设计网络结构设计模块:主要是包含输入层、隐含层、和输出层;输入工业控制系统数据样本,使用反向传播方法对神经网络的权值和阈值调整训练,使输出的逼近目标向量。

本发明的算法实现模块,是一种有监督式的学习算法,其主要思想是:,其具体步骤如下:

步骤(1):工业控制系统原始数据采集,采集工业控制系统的传感器数据包括温度、压力、湿度、转速、开关状态信息,如阀门状态和控制命令等;

步骤(2):数据的归一化处理,由于采集的数据类型不一样,数据的表达范围也有很大差异,不能直接用于BP神经网络的输入向量,需要对数据进行归一化处理,定义转换方式,转换成能被BP神经网络所接受的输入数据;

步骤(3):输入工业控制系统训练样本:从数据中选取输入向量和输出向量作为训练样本,对设计的BP神经网络进行训练,生成必要的权重和阀值;

步骤(4):计算隐含层单元输出:根据隐含层到输出层的连接权值、阈值进行计算,逐步确定隐含层的权值和阈值;

步骤(5):计算输出单元输出:根据BP神经网络的传递函数和阈值、全职计算输出值;

步骤(6):结果比较:输出值与目标值的之差是否小于设定误差;

步骤(7):若步骤(6)判定条件为真,则输出结果;

步骤(8):判定条件:输出值与目标值之差不大于设定误差并且循环次数大于设定值

步骤(9):若步骤(8)判定条件为真,则输出可疑漏洞

步骤(10)若步骤(8)判定条件为假,调整神经元的权值和阀值,转向步骤(3)。

本发明方法采集了工业控制系统的状态数据作为输入,控制命令作为输出,通过训练形成了状态与控制数据之间的关系,根据神经网络训练结构图,找出状态与控制命令之间的关系,并以神经网络训练结果为依据,判断工业控制系统可能存在的疑似漏洞。该方法不需要过滤数据包,不影响工业控制系统的实时运行,具有非常强实用价值。

附图说明:

图1是本发明的系统结构图;

图2是本发明的神经元结构图;

图3是本发明的网络结构图;

图4是本发明的算法流程图。

图1 是本发明的系统结构图:一种基于BP神经网络的工业控制系统漏洞自动挖掘方法,该方法包括工业控制系统数据采集模块,神经元设计模块,神经网络结构设计模块,算法实现模块。工业控制系统数据采集模块:包括原始数据采集和数据的归一化处理;工业控制系统原始数据采集,采集工业控制系统的传感器数据包括温度、压力、湿度、转速、开关状态信息,如阀门状态和控制命令等;数据的归一化处理:由于采集的数据类型不一样,数据的表达范围也有很大差异,不能直接用于BP神经网络的输入向量,需要对数据进行归一化处理,定义转换方式,转换成能被BP神经网络所接受的输入数据。

图2是本发明的神经元结构图:通过输入m个工业控制系统数据,如温度、压力、湿度、转速等通信数据,设定若干对应的连接权值;归一化后的工业控制系统数据和权重的乘积之和与阀值比较;若该值大于设定的阀值,则生成神经元的输出值,通过传递函数,产生输出;若该值小于或等于阀值,则不产生神经元的输出值。

图3是本发明的BP神经网络结构图,其包括输入层,隐含层和输出层;在输入层里面有归一化处理后的m个温度、压力、湿度、转速等,这些数据形成输入向量,隐含层中的节点个数为node个,形成node*m个的权值,经过传递函数形成隐含层的输出,然后再经过输出层转换成输出,数据正向传递的时候,数据经过输入层到隐含层,然后到输出层;

若输出结果与期望差距较大,误差信号反向传播作为BP神经网络的输入,通过迭代,促进误差降低,逼近期望值;也存在隐含层节点数选择不恰当,导致循环次数结束时,误差还比较大,达不到理想期望值的情况。

图4:是本发明的算法的流程图,BP神经网络算法工业控制系统漏洞自动挖掘算法,这是一种有监督式的学习算法,其主要思想是:输入工业控制系统数据样本,使用反向传播方法对神经网络的权值和偏差的调整训练,使输出的向量接近目标值,其具体步骤如下:

步骤(1):工业控制系统原始数据采集,采集工业控制系统的传感器数据包括温度、压力、湿度、转速、开关状态信息,如阀门状态和控制命令等;

步骤(2):数据的归一化处理,由于采集的数据类型不一样,数据的表达范围也有很大差异,不能直接用于BP神经网络的输入向量,需要对数据进行归一化处理,定义转换方式,转换成能被BP神经网络所接受的输入数据;

步骤(3):输入工业控制系统训练样本:从数据中选取输入向量和输出向量作为训练样本,对设计的BP神经网络进行训练,生成必要的权重和阀值;

步骤(4):计算隐含层单元输出:根据隐含层到输出层的连接权值、阈值进行计算,逐步确定隐含层的权值和阈值;

步骤(5):计算输出单元输出:根据BP神经网络的传递函数和阈值、全职计算输出值;

步骤(6):结果比较:输出值与目标值的之差是否小于设定误差;

步骤(7):若步骤(6)判定条件为真,则输出结果;

步骤(8):判定条件:输出值与目标值之差不大于设定误差并且循环次数大于设定值

步骤(9):若步骤(8)判定条件为真,则输出可疑漏洞

步骤(10)若步骤(8)判定条件为假,调整神经元的权值和阀值,转向步骤(3)。

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