一种基于遗传算法的工控攻击样本扩张方法及系统与流程

文档序号:18643348发布日期:2019-09-11 23:52阅读:207来源:国知局
一种基于遗传算法的工控攻击样本扩张方法及系统与流程
本发明涉及工控安全领域,具体为针对已有的工控协议攻击样本集,提出了一种基于遗传算法的工控攻击样本扩张方法及系统。
背景技术
:随着制造业全面推进,工业数字化、网络化和智能化加快发展,工控安全面临安全漏洞不断增多、安全威胁加速渗透和攻击手段复杂多样等新的挑战。2018年台积电遭受勒索病毒入侵,仅三天损失高达11.5亿元人民币;2019年委内瑞拉电力系统遭受网络攻击,导致委内瑞拉大部分地区停电;美国和以色列在stuxnet病毒上的合作,成功地迟滞了伊朗核计划。作为国家基础设施的神经中枢,工控系统由通信协议互联互通,通信协议的安全性是工控系统安全的重要部分,但各工控厂商出于提供个性化功能和优化通信协议等因素的考虑,导致工控行业中存在大量私有、未知的通信协议,对协议安全性分析带来了极大的挑战。在现有的解决方案中,采用协议逆向技术来解析未知协议是主要手段。协议逆向技术不依赖于协议描述,通过对协议流或指令执行流进行监控和分析来提取协议格式。由于工控协议处理程序主要集成在工控厂商提供的专用软件和硬件设备中,所以不易获取协议解析执行流,我们主要采用针对协议流的静态方法来解析未知工控协议。tao等人(siyutao,etal.“bit-orientedformatextractionapproachforautomaticbinaryprotocolreverseengineering,”inietcommunications,2016.)提出了一种二进制协议解析方法,基于贝叶斯概率提取比特级特征,从而提升协议识别的效率;luo等人(luojianzhen,etal.“position-basedautomaticreverseengineeringofnetworkprotocols,”injournalofnetworkandcomputerapplications,2013.)提出了一种应用层协议逆向解析方法,基于消息字段出现频率及位置分布规律建立的关联规则来推断消息格式;cui等人(weidongcui,etal.“discoverer:automaticprotocolreverseengineeringfromnetworktraces,”inusenixsecuritysymposium,2007.)提出了一种协议格式标志域提取工具,通过概率匹配算法递归聚类出格式标志域来推断协议语义。上述方案中样本数量是制约解析准确度的主要因素,由于相对封闭的工控网络环境中的协议数据不易获取,通过在公网上部署工控蜜罐来捕获工控协议攻击数据开销较大,通过人工扩充数据集往往效率低、容易出错。因此,为了提高静态分析方法解析未知协议的准确度,需要一种可以高效、低成本、高准确度的工控协议样本扩充技术。技术实现要素:本发明所要解决的技术问题是提供一种基于遗传算法的工控攻击样本扩张方法及系统,能够解决部署工控蜜罐来捕获工控数据开销大和人工扩充数据集效率低、易出错的问题。为了解决上述问题,本发明的实施例提供一种基于遗传算法的工控攻击样本扩张方法,所述方法包括如下步骤:步骤1:初始攻击样本收集:在公网上部署一定数量的工业控制蜜罐,将工控蜜罐捕获到的攻击样本存储到本地的数据库中,将每个攻击样本看作一条染色体,即一个个体为一个染色体,并且每条染色体上有多个基因,在数据库中随机选取np个攻击样本作为初始攻击样本种群;步骤2:攻击样本个体适应度计算:根据实际工控设备对攻击样本的反馈数据来设计攻击样本个体适应度函数,攻击样本个体适应度函数设计过程包括:首先通过实际工控设备反馈的数据对攻击样本个体进行分类,然后根据攻击的威胁程度将类别分等级,最后将威胁等级进行量化;步骤3:攻击样本个体选择:将初始攻击样本种群采用“轮盘赌”的方法进行选择,各个个体被选中的概率与其适应度函数值大小成正比,使得适应度较高的个体将有更多的机会遗传到下一代,并将选择的个体放入交配池中;步骤4:攻击样本个体交叉:首先将交配池中的个体按照一定规则进行简单的分类,将具有同类型的攻击样本个体随机两两配对,然后随机设定交叉点,并以某一特定概率pc采用单点交叉或多点交叉的方法交换它们的基因;步骤5:攻击样本个体变异:随机选取交叉后产生的新个体,并随机设定个体的某一位或几位基因值,并以某一较小的概率pm做变异运算;步骤6:终止条件设定及输出:多次迭代后,根据种群平均适应度值的收敛情况选择合适的进化代数n,并输出扩充的个体。例如,本发明的实施例提供的一种基于遗传算法的工控攻击样本扩张方法,所述步骤2攻击样本个体适应度计算具体为:步骤21:将np个工控攻击样本向实际工控设备发送,获取工控设备返回的数据和返回数据后工控设备的系统状态;步骤22:根据实际工控设备对攻击样本的反馈数据,将反馈数据分类并根据攻击的威胁程度划分三个等级,反馈等级由低到高依次为:1)返回正常响应:实际工控设备可以正常地处理询问;2)返回异常响应:至少包括非法功能、非法数据地址、非法数据值;3)没有返回响应:通信错误,至少包括奇偶校验、lrc、crc码错误;步骤23:量化攻击等级,将返回正常响应设为a,返回异常响应设为b,没有返回响应设为c,其中a、b和c均为常数,此外,异常响应可以通过返回数据中的差错码和异常码来识别,设定适应度函数,其方法为:例如,本发明的实施例提供的一种基于遗传算法的工控攻击样本扩张方法,所述步骤3攻击样本个体选择具体为:步骤31:根据上述步骤23分别计算每个个体的适应度f(i)和所有个体的适应度总和其中,所述i=1,2,3,…,np;步骤32:计算每个个体的相对适应度大小它即为每个个体被遗传到下一代种群中的概率;步骤33:计算每个个体的累积概率并将每个概率组成一个水平区域,全部概率为1;步骤34:在[0,1]区间内产生一个均匀分布的伪随机数序列,依据该随机数出现在概率区域的位置来确定每个个体被选中的次数,作为交叉和变异的候选集;例如,本发明的实施例提供的一种基于遗传算法的工控攻击样本扩张方法,所述步骤4攻击样本个体交叉具体为:步骤41:首先对步骤3选取的工控攻击样本个体按照一定规则进行简单的分类,并将具有相同个体结构的分为一类;步骤42:其次在同类中随机选取一对攻击样本个体;步骤43:然后对要交配的一对攻击样本个体,产生[1,m]间的随机数作为交叉的位置;步骤44:最后以某一特定概率pc交换它们之间的基因片段,其中,所述交叉概率pc取值为0.4-1.0;例如,本发明的实施例提供的一种基于遗传算法的工控攻击样本扩张方法,所述步骤5攻击样本个体变异具体为:步骤51:首先随机选取步骤4产生的新攻击样本个体;步骤52:然后随机选取攻击样本个体中的一个或者多个基因;步骤53:最后以变异概率pm将变异点的原有基因值做变异运算,其中,所述变异概率pm取值为0.01-0.1;例如,本发明的实施例提供的一种基于遗传算法的工控攻击样本扩张方法,所述步骤6终止条件设定具体为:步骤61:将扩充的每一代新个体向实际工控设备发送;步骤62:获取实际工控设备返回的数据,并分别计算个体的适应度;步骤63:直到n代后,种群平均适应度的值小于某一个极小的阈值,则停止进化并输出扩充的优质个体。为了解决上述问题,本发明还提出了一种基于遗传算法的工控攻击样本扩张系统,包括:初始样本生成模块,用于生成一定数量的个体作为初始样本;适应度评估模块,用于根据适应度值的大小来评估个体的优劣,从而决定其遗传机会的大小;样本选择模块,用于基于每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例来选择进化的个体;个体交叉模块,用于交叉两个不同个体之间的部分基因,从而产生新的基因组合个体;个体变异模块,用于变异个体的某个基因,从而产生新的个体;终止进化模块,用于确定种群的进化代数。上述工控攻击样本扩张系统中,所述适应度评估模块还包括:测试单元:用于向真实的工控设备发送测试攻击数据集;响应获取单元:用于获取工控设备返回的响应数据;评估单元:用于根据设备返回的响应数据来评估测试攻击的威胁等级。本发明的有益效果之处在于:所述方法相较于人工扩张未知工控协议数据集效率和准确率更高;所述方法相较于通过部署工控蜜罐来获取未知工控协议数据开销更少。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。图1为本发明实施例提供的工控攻击样本扩张方法的流程图;图2为本发明实施例提供的攻击样本个体轮盘赌选择结构图;图3为本发明实施例提供的攻击样本个体交叉结构图;图4为本发明实施例提供的攻击样本个体变异结构图;图5为本发明实施例提供的工控攻击样本扩张系统结构示意图;图6为本发明系统扩张的数据集对未知工控协议识别准确度变化的曲线图;具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明的实施例提供的基于遗传算法的工控攻击样本扩张方法,根据协议响应数据设计适应度函数,从交叉和变异产生的新样本中选择优质量的个体,提高了工控攻击样本的扩张效率,降低了部署工控蜜罐的成本开销。本文中符号定义如表1所示:表1:符号的定义表符号定义np初始工控攻击样本种群数pc个体交叉的概率值pm个体变异的概率值n种群进化的代数m染色体(即个体)的长度i个体序号a适应度的取值b适应度的取值c适应度的取值p相对适应度值q累计概率值如图1所述,本发明的实施例提供的基于遗传算法的工控攻击样本扩张方法,所述方法包括以下步骤:步骤1:初始攻击样本收集:在公网上部署预设数量的工业控制蜜罐,将工控蜜罐捕获到的攻击样本存储到本地的数据库中,将每个攻击样本看作一条染色体,即一个个体为一个染色体,并且每条染色体上有多个基因,在数据库中随机选取np个攻击样本作为初始攻击样本种群;步骤2:攻击样本个体适应度计算:根据实际工控设备对攻击样本的反馈数据来设计攻击样本个体适应度函数,攻击样本个体适应度函数设计过程包括:首先通过实际工控设备反馈的数据对攻击样本个体进行分类,然后根据攻击的威胁程度将类别分等级,最后将威胁等级进行量化;步骤3:攻击样本个体选择:将初始攻击样本种群采用“轮盘赌”的方法进行选择,各个个体被选中的概率与其适应度函数值大小成正比,使得适应度较高的个体将有更多的机会遗传到下一代,并将选择的个体放入交配池中;步骤4:攻击样本个体交叉:首先将交配池中的个体按照预设规则进行简单的分类,将具有同类型的攻击样本个体随机两两配对,然后随机设定交叉点,并以某一特定概率pc采用单点交叉或多点交叉的方法交换它们的基因;步骤5:攻击样本个体变异:随机选取交叉后产生的新个体,并随机设定个体的某一位或几位基因值,并以某一较小的概率pm做变异运算;步骤6:终止条件设定及输出:多次迭代后,根据种群平均适应度值的收敛情况选择合适的进化代数n,并输出扩充的个体;例如,在本发明实施例提供的基于遗传算法的工控攻击样本扩展技术中,对工控攻击样本基因选择的处理方法具体为:如附图2所示,步骤1.对工控攻击样本基因选择的处理方法步骤为:步骤11.计算每个个体的适应度f(i)值和所有个体的适应度总和其中i=1,2,3,…,np,并计算每个个体的相对适应度大小例如,计算个体的适应度值、适应度总和与相对适应度大小具体方法为:56ea00000005012b0e0300h2c3a00000005012b0e0300h00b400000006010200b4001h000000000005032b0e0100h上述四个工控攻击样本基因均来自部署在公网上的蜜罐所捕获,属于modbus工控协议,前两个个体返回正常响应,第三个个体返回异常响应,第四个个体无返回响应,故个体适应度依次为:f(1)=a,f(2)=a,f(3)=b,f(4)=c;适应度总和为:个体的相对适应度大小分别为:其中a,b,c均为常数,且满足a≥b+c且b>c;步骤12.计算个体的累积概率例如,计算个体的累计概率具体方法为:q1=p1,q2=p1+p2,q3=p1+p2+p3,q4=1;步骤13.在[0,1]区间内产生一个均匀分布的伪随机数序列,依据该随机数出现在概率区域的位置来确定每个个体被选中的次数,作为交叉和变异的候选集;例如,轮盘赌选择的具体方法为:假设常数a,b,c依次设为6,3,1,则有p1=0.375,p2=0.375,p3=0.1875,p4=0.0625,q1=0.3750,q2=0.7500,q3=0.9375,q4=1.0000;假设从区间[0,1]中产生4个随机数:0.120358、0.470128、0.684894、0.916435,则第一、二、三和四个攻击样本被选中的次数分别为1、2、1、0次,如下表所示:个体适应度选择概率累计概率选中次数000500000005005a000304ha=60.37500.375010000000000060101000000d8ha=60.37500.7500200b400000006010200b4001hb=30.18750.93751000000000005032b0e0100hc=10.06251.00000例如,在本发明实施例提供的基于遗传算法的工控攻击样本扩张方法技术中,对工控攻击样本个体交叉的处理方法具体为:步骤2.如图3所示,对工控攻击样本个体交叉的处理方法的具体步骤为:步骤21:首先对步骤3选择的工控攻击样本个体按照一定规则进行简单的分类,并将具有相同基因结构的基因分为一类;例如,攻击样本基因进行简单分类的一种具体方法为:704700000005002b0e0300h56ea00000005012b0e0300h2c3a00000005012b0e0300h0000000000060101000203e8h000000000006010100020002h000000000006010100020003h000c0000000d005a0020001300000000006400h000d0000000d005a0020001300640000009c00h000e0000000d005a0020001400000000006400h很显然,上述九个攻击样本个体可以按照长度的不同分为三类;步骤22:其次在同类中随机选取一对攻击样本;步骤23:然后对交配的攻击样本,产生[1,m]间的随机数作为交叉的位置;步骤24:最后以某一特定概率pc交换它们之间的基因片段,其中,所述交叉概率pc取值为0.4-1.0;例如,选取上述56ea00000005012b0e0300h和2c3a00000005012b0e0300h攻击样本作为交叉的对象,并产生随机数3作为个体交叉的位置,然后交叉他们的基因片段;例如,在本发明实施例提供的基于遗传算法的工控攻击样本扩张方法中,对工控攻击样本个体变异的处理方法具体为:步骤3.对工控攻击样本个体变异的处理方法的具体步骤为:步骤31:首先随机选取步骤4产生的攻击样本个体,并将其转换成二进制形式;步骤32:然后随机选择攻击样本个体的一个变异基因;步骤33:最后依照变异概率pm将变异点的原有基因值取反,其中,所述变异概率pm取值为0.01-0.1;例如,如图4所示,攻击样本个体变异具体方法为:563a00000005012b0e0300h101011000111010000000000000000000000000000001010000000100101011000011100000001100000000b选取上述的攻击样本个体,并将其转换成二进制形式,产生随机数5作为个体变异的位置,并以变异概率pm将变异点原有基因值1取反为0。参照附图5,其示出本发明的一种基于遗传算法的工控攻击样本扩张系统实施例,包括初始样本生成模块、适应度评估模块、样本选择模块、个体交叉模块、个体变异模块和终止进化模块。其中,初始样本生成模块,用于用于生成一定数量的个体作为初始样本;适应度评估模块,用于根据适应度值的大小来评估个体的优劣,从而决定其遗传机会的大小。适应度评估模块包括测试单元、响应获取单元和评估单元。其中,测试单元用于向真实的工控设备发送测试攻击数据集;响应获取单元用于获取工控设备返回的响应数据;评估单元用于根据设备返回的响应数据来评估测试攻击的威胁等级。样本选择模块,用于基于每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例来选择进化的个体。个体交叉模块,用于交叉两个不同个体之间的部分基因,从而产生新的基因组合个体。个体变异模块,用于变异个体的某个基因,从而产生新的个体。终止进化模块,用于确定种群的进化代数。下面采用本发明前述方法对未知工控协议的识别效果进行了说明。首先,我们选取了三种常见的工控协议,包括施耐德可编程逻辑控制器(plc)的modbus协议、西门子plc的s7comm协议和电力系统的iec104协议;其次,对从工控蜜罐捕获的工控协议样本集进行预处理,以获取工控应用层协议数据;然后,将样本数据通过本发明提出的基于遗传算法的工控攻击样本扩张系统,从而扩充出优质的新样本数据,扩张的具体情况如下:协议样本集扩张集modbus2055514s7comm729190iec104628163最后,将扩张集和样本集作为未知工控协议解析系统的数据集,对其进行解析,识别效果附图6所示:经过多次扩张,modbus协议最终识别率提高了35%,s7comm协议最终识别率提高了45%,iec104最终识别率提高了45%。实验结果显示本发明在没有协议规约的条件下能够扩张出优质的数据集,提高了未知工控协议解析的识别准确度。本发明提出了一种基于遗传算法的工控攻击样本扩张方法,该技术首先对初始工控攻击样本个体进行交叉操作并结合选择规则,使优秀的基因得以保留,不良基因被遗弃;然后通过变异使基因发生突变,产生有实质性差异的新基因,有效避免了算法陷入局部最优的问题。此外,该技术支持其他类型的工控协议(例如:s7comm、iec104和bacnet等)。本发明的实施例提供的基于遗传算法的工控攻击样本扩张方法,根据协议响应数据设计适应度函数,从交叉和变异产生的新样本中选择优质量的个体,提高了工控攻击样本的扩张效率,降低了部署工控蜜罐的成本开销。本发明的实施例的基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的,因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1