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

一种生成躲避流量数据的方法与流程

2022-05-08 05:38:54 来源:中国专利 TAG:


1.本技术实施例涉及数据处理领域,尤其涉及一种生成躲避流量数据的方法。


背景技术:

2.入侵检测系统是重要的网络防护手段,传统的入侵检测技术是基于签名的和规则的,即基于网络分组中特定的字节序列和固定的模式检测攻击流量。入侵检测系统应具备的基本功能包括躲避识别,躲避是指入侵者发动攻击,而又不希望被发现而采取的行动,而躲避识别是为了对抗网络入侵者的各种躲避行为。入侵检测系统的防躲避能力测试方法为:对攻击流量进行躲避操作后对入侵检测系统进行攻击,测试入侵检测系统是否对攻击进行报警。传统的躲避操作通过已知协议漏洞构造,例如ip重叠分片、ttl修改和字符编码转换等。
3.当前测试入侵检测系统防躲避能力的方法主要有两种:利用fgsm、jsma等白盒算法生成对抗测试流量及利用对抗生成网络(gan)生成对抗测试流量。其中,利用fgsm、jsma等白盒算法生成对抗测试流量,需假设攻击者已经知晓目标入侵检测系统所使用的机器学习模型的结构、参数、特征向量和训练数据等;利用fgsm和jsma等算法,可以根据机器学习模型的梯度修改攻击流量的特征向量取值,使得机器学习模型将攻击流量特征分类为正常流量。而利用对抗生成网络(gan)生成对抗测试流量时,通过交替训练生成器和判别器,最终生成的对抗流量在特征上接近正常流量,欺骗入侵检测系统,成功躲避检测。但是,这两者方法生成的是流量的特征向量数据,而不是流量数据。而网络入侵检测系统的检测对象一般包括实时网络流和对网络流量进行抓包得到的pcap文件(即流量数据),而不是特征向量数据。因此,上述两种方法生成的特征向量数据不能直接测试网络入侵检测系统。
4.因此,亟须一种能直接测试入侵检测系统的防躲避能力的躲避流量数据,用来检测入侵检测系统的防躲避能力。


技术实现要素:

5.本技术实施例提供了一种生成躲避流量数据的方法,该方法生成的躲避流量数据能用来检测入侵检测系统的躲避能力。
6.本技术实施例提供了一种生成躲避流量数据的方法,包括:
7.获取攻击流量数据,并提取所述攻击流量数据的特征向量;
8.将所述攻击流量数据的特征向量输入预先基于强化学习算法训练完成的目标神经网络模型,获得所述目标神经网络模型输出的多个躲避操作中每个所述躲避操作的概率值;其中,所述概率值表示对所述攻击流量数据执行所述躲避操作以躲避入侵检测系统的可能性;
9.对所述攻击流量数据执行最大概率值对应的躲避操作,以得到躲避流量数据。
10.进一步地,所述将所述攻击流量数据的特征向量输入预先基于强化学习算法训练完成的目标神经网络模型前,还包括:
11.获得网络结构相同的第一原始神经网络模型及第二原始神经网络模型;
12.构建模型样本训练集;
13.根据所述模型样本训练集计算损失值,并基于所述损失值训练所述第一原始神经网络模型;
14.当所述第一原始神经网络模型的训练次数满足第一预设条件,将所述第一原始神经网络模型的模型参数更新至所述第二原始神经网络模型,以训练所述第二原始神经网络模型;
15.当所述第二原始神经网络模型的训练次数满足第二预设条件,将训练后的第二原始神经网络模型作为所述目标神经网络模型。
16.进一步地,所述构建模型样本训练集包括:
17.将第一攻击流量数据样本的特征向量输入所述第一原始神经网络模型,输出每个所述躲避操作的原始概率值,并在所述多个躲避操作中,确定最大原始概率值对应的躲避操作为第一躲避操作;
18.基于所述第一攻击流量数据样本得到第一躲避流量数据;将所述第一躲避流量数据的特征向量输入所述第二原始神经网络模型,输出每个所述躲避操作的备选概率值;
19.将所述第一躲避流量数据输入入侵检测系统,得到所述入侵检测系统对所述第一躲避流量数据是否为攻击流量的检测结果;
20.基于所述检测结果及最大备选概率值,确定所述第一攻击流量数据样本的标签概率;
21.将所述第一攻击流量数据样本的特征向量、所述第一躲避操作及所述第一攻击流量数据样本的标签概率作为一条训练样本加入模型样本训练集;
22.若所述检测结果为是,则返回执行将新的第一攻击流量数据样本的特征向量输入所述第一原始神经网络模型的步骤;
23.若所述检测结果为否,则获得所述模型样本训练集。
24.进一步地,所述根据所述模型样本训练集计算损失值包括:
25.使用损失计算函数l(w)=e[y-n1(w,f1,m1)]计算所述损失值;
[0026]
其中,所述y为所述第一攻击流量数据样本的标签概率,所述f1为所述第一攻击流量数据样本的特征向量,所述m1为所述第一躲避操作,所述n1(w,f1,m1)是将所述f1输入到所述第一原始神经网络模型得到的所述m1对应的概率值,所述w为所述第一原始神经网络模型的权重参数,e为数学期望,l(w)为所述损失值。
[0027]
进一步地,所述基于所述检测结果及最大备选概率值,确定所述第一攻击流量数据样本的标签概率包括:
[0028]
通过y=r γ
·
q2确定所述第一攻击流量数据样本的标签概率;
[0029]
其中,所述y为所述第一攻击流量数据样本的标签概率,若所述检测结果为是,所述r=1,若所述检测结果为否,所述r=0;所述q2为所述最大备选概率值,所述γ为折现系数。
[0030]
进一步地,所述基于所述第一攻击流量数据样本得到第一躲避流量数据包括:
[0031]
利用增强贪心函数,分别确定所述多个躲避操作中每个所述躲避操作的目标概率值;
[0032]
根据每个所述躲避操作的目标概率值,在所述多个躲避操作中选择躲避操作;
[0033]
对所述第一攻击流量数据样本执行选择的躲避操作,以得到第一躲避流量数据。
[0034]
进一步地,所述根据每个所述躲避操作的目标概率值,在所述多个躲避操作中选择躲避操作包括:
[0035]
基于所述躲避操作的目标概率值,生成所述躲避操作对应的概率值区间;
[0036]
随机生成当前概率值,并选择所述当前概率值所属的所述概率值区间对应的躲避操作。
[0037]
进一步地,所述利用增强贪心函数,分别确定所述多个躲避操作中每个所述躲避操作的目标概率值包括:
[0038]
使用第二攻击流量数据样本计算所述多个躲避操作中每个躲避操作的综合强度因子,所述综合强度因子表示对所述第二攻击流量数据样本执行所述躲避操作以躲避入侵检测系统的可能性;所述多个躲避操作包括所述第一躲避操作;
[0039]
利用增强贪心函数,对所述第一躲避操作的综合强度因子进行修正,得到所述第一躲避操作的目标概率值,以及对所述第一躲避操作之外的其他躲避操作的综合强度因子进行修正,得到所述其他躲避操作的目标概率值。
[0040]
进一步地,所述使用第二攻击流量数据样本计算所述多个躲避操作中每个躲避操作的综合强度因子包括:
[0041]
分别为每个所述躲避操作获得多个第二攻击流量数据样本;
[0042]
针对每个所述躲避操作,分别利用所述躲避操作对应的每个第二攻击流量数据样本,计算所述躲避操作的单个强度因子;
[0043]
分别将每个所述躲避操作的多个所述单个强度因子进行综合运算,得到所述每个躲避操作的综合强度因子。
[0044]
进一步地,所述计算所述躲避操作的单个强度因子包括:
[0045]
依据公式计算所述躲避操作的单个强度因子;
[0046]
其中所述sm为所述躲避操作的单个强度因子,所述δf=f'-f;所述f表示所述第二攻击流量数据样本的特征向量;所述f'表示所述第二攻击流量数据样本执行所述躲避操作后的特征向量;所述||δf||1是1范数,表示所述第二攻击流量数据样本的特性向量中每一维特征的平均变化幅度;所述||δf||0是0范数,表示所述第二攻击流量数据样本的特性向量中特征发生变化的维数;所述α是所述单个强度因子的权重参数。
[0047]
进一步地,所述利用增强贪心函数,对所述第一躲避操作的综合强度因子进行修正,得到所述第一躲避操作的目标概率值,以及对所述第一躲避操作之外的其他躲避操作的综合强度因子进行修正,得到所述其他躲避操作的目标概率值包括:
[0048]
利用所述增强贪心函数确定所述第一躲避操作的目标概率值及所述其他躲避操作的目标概率值;
[0049]
其中,所述m1表示所述第一躲避操作,所述m=m1表示所述躲避操作为所述第一躲避操作,所述p(m)为所述第一躲避操作的目标概率值或所述其他躲避操作的目标概率值,
[0050]
所述∈是预设参数值,所述sm为所述躲避操作的综合强度因子,所述∑msm是对所述躲避操作的所述综合强度因子的求和。
[0051]
本技术实施例提供了一种躲避流量生成装置,包括:
[0052]
中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
[0053]
所述存储器为短暂存储存储器或持久存储存储器;
[0054]
所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行前述生成躲避流量数据的方法。
[0055]
本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行前述生成躲避流量数据的方法。
[0056]
从以上技术方案可以看出,本技术实施例具有以下优点:
[0057]
通过将攻击流量数据的特征向量输入预先训练完成的目标神经网络模型可以得到多个躲避操作的概率值,对攻击流量数据执行最大概率值对应的躲避操作,以得到躲避流量数据,该躲避流量数据可以检测入侵检测系统的防躲避能力。
附图说明
[0058]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0059]
图1为本技术实施例公开的一个测试入侵检测系统的拓扑图;
[0060]
图2为本技术实施例公开的一个生成躲避流量数据的流程图;
[0061]
图3为本技术实施例公开的一个训练神经网络模型的示意图;
[0062]
图4为本技术实施例公开的一个测试入侵检测系统的原理图;
[0063]
图5为本技术实施例公开的一个测试入侵检测系统的流程图;
[0064]
图6为本技术实施例公开的一个测试入侵检测系统的效果图;
[0065]
图7为本技术实施例公开的另一测试入侵检测系统的效果图。
具体实施方式
[0066]
为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0067]
在本技术实施例的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术实施例的限制。
[0068]
在本技术实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术
语在本技术实施例中的具体含义。
[0069]
下面请参阅图1,本技术实施例中的一个测试入侵检测系统的拓扑图,通过模拟攻击源计算机101、网络通道102、模拟被攻击主机103、测试工具集104、网络入侵检测系统探测器105及网络入侵检测系统控制台106,对入侵检测系统的功能进行检测。
[0070]
其中,模拟攻击源计算机101与网络通道102相连,网络通道102与模拟被攻击主机103相连。常见的攻击模式中,模拟攻击源计算机101将攻击流量通过网络通道102发送至模拟被攻击主机103,对模拟被攻击主机103进行攻击;具体的,模拟攻击源计算机101将本身生成的攻击流量发送至网络通道102,攻击流量中带有标识信息,网络通道102,通过标识信息将攻击流量传输至模拟被攻击主机103。可以理解的是,模拟攻击源计算机101的具体数量可以是1台或多台,模拟被攻击主机103的具体数量也可以是1台或多台,具体不做限定;网络通道102可以为百兆网、千兆网或万兆网,具体不做限定。在对入侵检测系统进行测试时,网络入侵检测系统探测器105,与网络通道102相连,可以实时监测网络通道102中通过的流量;网络入侵检测系统控制台106,与网络入侵检测系统探测器105相连,主要用于对网络入侵检测系统105发送指令控制网络入侵检测系统105监测网络通道102中的流量,并确定该流量是否为攻击流量。可以理解的是,网络入侵检测系统探测器105及网络入侵检测系统控制台106可以有1台或多台,1台网络入侵检测系统控制台106可以控制多台网络入侵检测系统探测器105。一般情况下,攻击流量不会直接发送到网络通道102上,攻击者会对攻击流量进行躲避操作再将攻击流量发送至网络通道102上,让入侵检测系统更难以识别到是攻击流量。为了更精准地测试入侵检测系统的防躲避能力,可以用到测试工具集104,对网络通道102上的攻击流量进行躲避操作,再用执行躲避操作后的攻击流量对入侵检测系统进行检测。其中,测试工具集104,与网络通道102可以通过交换机或集线器相连,进而获取网络通道102上的攻击流量,生成执行躲避操作后的攻击流量。
[0071]
需要说明的是,上述的攻击流量可以认为是一种数据,因此也可以称为攻击流量数据,而执行躲避操作后的攻击流量数据为躲避流量数据。可以理解的是,测试工具集中带有躲避流量生成器,躲避流量生成器用于获取攻击流量数据生成躲避流量数据。下面将对躲避流量生成器生成躲避流量数据进行描述,请参阅图2:
[0072]
201、获取攻击流量数据,并提取攻击流量数据的特征向量。
[0073]
测试工具集中的躲避流量生成器获取与测试工具集相连的网络通道上的攻击流量数据。可以理解的是,攻击流量数据可以以文件的形式存储,此时攻击流量数据也可以称为攻击流量文件,本技术实施例中的攻击流量数据也可以用攻击流量文件表述,下面不再赘述。一种典型的攻击流文件是通过tcpdump抓包软件生成的pcap文件。而攻击流量数据还可以以表格的形式存储,具体此处不做限定。
[0074]
接着,躲避流量生成器提取获得的攻击流量数据的特征向量,具体的,特征向量的提取可以通过工具实现,例如cicflowmeter、cisco/joy。这些工具读取pcap文件,解析网络协议字段及相关信息,提取所属特征向量。也可以通过相应的编程实现提取特征向量,具体此处不做限定。特征向量是表示网络流特征的n维向量,其中网络流是指通过五元组(源和目的ip地址、源和目的端口、传输层协议)标识的网络包集合,躲避流量和攻击流量都是网络流。一般来说,一个特征向量包含多维特征,其每一维表示网络流的一个特征,例如流持续时间、包数、pps(每秒包数)、最小包长度、最大包长度、平均包长度、最大包时间间隔、最
小包时间间隔、包时间间隔方差及urg标志出现次数等,而特征向量可以为这些特征中的任意组合,具体此处不做限定。一个特征向量的例子为[7.232,32,4.45,60,1400,782,2.2,0.008,5.5,4],数字分别表示流持续时间为7.232秒、包数为32、pps为4.45、最小包长度为60字节、最大包长度为1400字节、平均包长度为782字节、最大包时间间隔为2.2s、最小包时间间隔为0.008秒、包时间间隔方差为5.5、urg标志出现次数为4次。可选地,为了方便计算,提取特征向量后,可对特征向量进行归一化,将每一维特征的值变换到[0,1]区间。
[0075]
202、将特征向量输入目标神经网络模型输出多个躲避操作中每个躲避操作的概率值。
[0076]
躲避流量生成器将攻击流量数据的特征向量输入预先基于强化学习算法训练完成的目标神经网络模型中,输出目标神经网络模型输出的多个躲避操作中每个所述躲避操作的概率值。可以理解的是,该目标神经网络模型可以为全连接神经网络。该全连接神经网络的输入层神经元数为网络流对应的特征向量维数,输入为特征向量值;输出神经元数为躲避操作集合中元素数,输出为每个躲避操作的概率值,该概率值表示对攻击流量数据执行躲避操作以躲避入侵检测系统的可能性,该概率值越大,选择该躲避操作的概率越大。该全连接神经网络可以包含零个或多个隐藏层,具体此处不做限定。
[0077]
该强化学习算法可以为bp算法或dqn强化学习算法,具体此处不做限定,优选的为dqn强化学习算法。在有监督学习中,数据之间都是独立的。dqn强化学习算法中,使用经验回放,即用一个第一原始神经网络模型来存储经历过的数据,每次更新目标神经网络模型的参数的时候从第一原始神经网络模型中抽取一部分的数据来用于更新,以此来打破数据间的关联。
[0078]
203、对攻击流量数据执行最大概率值对应的躲避操作,以得到躲避流量数据。
[0079]
躲避流量生成器得到每个躲避操作被选择的概率值后,从这些概率值中确定出最大的概率值,进而对该攻击流量数据执行该最大概率值对应的躲避操作,生成躲避流量数据。可以理解的是,躲避操作可以为载荷固定长度字节填充、载荷随机长度字节填充、包传输延迟固定时间、包传输延迟随机时间、ip分片、tcp分片、包重复、特定包头域值修改或载荷加密,具体此处不做限定。对攻击流量数据执行躲避操作可通过软件工具完成,例如利用scapy读取攻击流量数据,解析网络协议,按照躲避操作修改包内容或属性,再保存到流量数据。
[0080]
具体的,躲避流量生成器在攻击流量数据中定位至第i个出方向的包,选择最大概率值对应的躲避操作,并施加到第i个出方向的包,接着更新攻击流量数据。其中,更新攻击流量数据的方式可以是文件更新,也可以是内存或缓存更新,具体此处不做限定。对更新后的攻击流量数据定位至第i 1个出方向的包,重复执行步骤202及步骤203,得到经过多次躲避操作后的躲避流量数据。可以理解的是,攻击流量数据中包含多个出方向的包,而出方向的包指的是从一个ip地址发出的包,例如攻击者的ip地址为192.168.0.2,所有从192.168.0.2发出的包都是出方向,若攻击者的本地ip 192.168.0.2与4.4.4.4之间的流量,第一个包是从192.168.0.2发送给4.4.4.4的,则定义192.168.0.2-》4.4.4.4为出方向。重复执行次数可以为3次或4次,具体此处不做限定。而重复执行次数不多于攻击流量数据中出方向的包的个数。
[0081]
本技术实施例中,躲避流量生成器通过获取多个攻击流量数据,对该多个攻击流
量数据执行上述步骤201至步骤203,可以获得多个躲避流量数据。与利用fgsm、jsma等白盒算法生成对抗测试流量及利用对抗生成网络(gan)生成对抗测试流量相比,修改的是流量数据,而不是特征值。即躲避操作作用的对象是流量数据而不是特征值;网络结构以及网络的训练方式不同,本技术实施例用深度强化学习算法训练。该躲避流量数据可用于检测入侵检测系统的防躲避能力。
[0082]
进一步地,在流量空间生成真实的躲避流量数据,可在真实网络场景中测试入侵检测系统。所生成的躲避流量数据不仅可以用于测试基于传统的签名等技术的入侵检测系统,还可以用于测试基于机器学习技术的新型入侵检测系统。通过不断学习进化的神经网络模型,可以选择合适的躲避操作对原始攻击流量数据进行变形生成躲避流量数据,提升了躲避流量数据的生产效率。一次训练,持续使用。并且该生成过程全部自动化执行,不需要人工设定规则或手工构造,减少了人力成本。
[0083]
下面对上述使用的目标神经网络模型的训练过程进行详细描述,请参阅图3:
[0084]
31、获得网络结构相同的第一原始神经网络模型及第二原始神经网络模型。
[0085]
躲避流量生成器中分别构建两个网络结构相同的全连接神经网络,得到第一原始神经网络模型和第二原始神经网络模型。其中,这两个神经网络模型的输入层与输出层与目标神经网络模型类似,具体不再赘述。第一原始神经网络模型和第二原始神经网络模型的权重参数可以是随机生成的,也可以人为设置,具体此处不做限定;权重参数可以相同,也可以不同。第一原始神经网络模型可称为n1,第二原始神经网络模型可称为n2。
[0086]
n1和n2的意义在于建立了特征向量到躲避操作选择的映射。虽然初始n1和n2并不具备选择最佳躲避操作的能力,但随着后续对n1和n2的训练,n1和n2的权重参数将不断更新,最终成为能够根据攻击流量数据的特征向量选择最佳躲避操作,以达到最佳躲避效果的神经网络模型。
[0087]
32、构建模型样本训练集。
[0088]
在训练神经网络模型的过程中,需要用到模型样本训练集对神经网络模型进行训练,因此在训练神经网络模型前,需要先使用攻击流量数据样本去构建模型样本训练集,以便于后续使用。
[0089]
下面对构建模型样本训练集的详细过程进行描述,具体包括步骤321-328:
[0090]
321、将第一攻击流量数据样本的特征向量输入第一原始神经网络模型,确定第一躲避操作。
[0091]
躲避流量生成器选取第一攻击流量数据样本,提取第一攻击流量数据样本的特征向量f1。其中选取时可以随机选取,也可以认为指定,具体此处不做限定。将第一攻击流量数据样本的特征向量f1输入第一原始神经网络模型n1,获得第一原始神经网络模型n1输出的每个躲避操作的原始概率值,并在所述多个躲避操作中,确定最大原始概率值对应的躲避操作为第一躲避操作。其中最大原始概率值可记为q1,第一躲避操作可记为m1。
[0092]
322、基于第一攻击流量数据样本得到第一躲避流量数据。
[0093]
为了获得第一攻击流量数据样本对应的躲避操作的真实值向量,需要在多个躲避操作中确定出一个优选的躲避操作,将该优选的躲避操作施加到第一攻击流量数据样本中以得到第一躲避流量数据。
[0094]
下面对基于第一攻击流量数据样本得到第一躲避流量数据的详细过程进行描述:
[0095]
3221、利用增强贪心函数,分别确定多个躲避操作中每个躲避操作的目标概率值。
[0096]
躲避流量生成器获取第二攻击流量数据样本,可以理解的是,该第二攻击流量数据样本与上述的第一攻击流量数据样本,可以是同一攻击流量数据样本,也可以是不同的攻击流量数据样本,具体此处不做限定。使用第二攻击流量数据样本计算多个躲避操作中每个躲避操作的综合强度因子。其中,综合强度因子表示对第二攻击流量数据样本执行该躲避操作以躲避入侵检测系统的可能性;多个躲避操作包括上述的第一躲避操作。
[0097]
可以理解的是,为了使综合强度因子更加准确地反应执行躲避操作的可能性,在这里分别对多个躲避操作中的每个躲避操作获得多个第二攻击流量数据样本。
[0098]
接着,针对每个躲避操作,分别利用躲避操作对应的每个第二攻击流量数据样本,计算躲避操作的单个强度因子。可以理解的是,每个躲避操作对应的一组攻击流量数据样本可以相同,也可以不同。即可以使用相同的攻击流量数据样本计算所有躲避操作的单个强度因子,也可以使用不同的攻击流量数据样本计算不同躲避操作的单个强度因子。
[0099]
其中,计算单个强度因子可以通过公式得出,如依据公式计算躲避操作的单个强度因子;其中sm为躲避操作的单个强度因子,δf=f'-f;f表示第二攻击流量数据样本的特征向量;f'表示所述第二攻击流量数据样本执行躲避操作后的特征向量;||δf||1是1范数,表示第二攻击流量数据样本的特性向量中每一维特征的平均变化幅度;||δf||0是0范数,表示第二攻击流量数据样本的特性向量中特征发生变化的维数。α是单个强度因子中的权重参数,可以调节广度和幅度的权重,具体可以是人为指定,一般情况下,0≤α≤1。
[0100]
分别将每个躲避操作的多个单个强度因子进行综合运算,得到所述每个躲避操作的综合强度因子sm。其中,综合运算可以为计算平均值或加权平均运算,具体此处不做限定;优选地为,对多个单个强度因子计算其平均值。
[0101]
利用增强贪心函数,对第一躲避操作的综合强度因子进行修正,得到第一躲避操作的目标概率值,以及对第一躲避操作之外的其他躲避操作的综合强度因子进行修正,得到所述其他躲避操作的目标概率值。
[0102]
具体为,利用增强贪心函数确定第一躲避操作的目标概率值及其他躲避操作的目标概率值。其中,m1表示第一躲避操作,m=m1表示当躲避操作为第一躲避操作;p(m)为第一躲避操作的目标概率值或其他躲避操作的目标概率值,当m=m1,p(m)表示第一躲避操作的目标概率值,当m≠m1p(m)表示其他躲避操作的目标概率值;∈是预设参数值,一般情况下,0≤∈≤1;sm为躲避操作的综合强度因子,∑msm是对所有躲避操作的全部综合强度因子求和。该公式的意义是综合使用强度因子、概率值和∈进行调整:强度因子越大,概率越大;概率值越大,概率越大;概率值越大,概率越小。
[0103]
3222、根据每个躲避操作的目标概率值,在多个躲避操作中选择躲避操作。
[0104]
躲避流量生成器基于躲避操作的目标概率值p(m),生成躲避操作对应的概率值区间。可以理解的是,每个躲避操作的目标概率值p(m)相加之和为1,目标概率值p(m)越大,占的概率值区间也就越大。随机生成当前概率值,并选择当前概率值所属的概率值区间对应
的躲避操作m*。具体的,概率值区间越大,那么随机选择时选择到的可能性就越大。
[0105]
不直接选择强度因子最大的躲避操作的原因是强度因子只是一种平均意义上的度量,不一定对任意流都有相同的变形效果。例如“延时1s传输”这一躲避操作,能够很大程度上改变包时间间隔较短的流的特征,但对于本身包时间间隔较长的流而言,该躲避操作无法有效改变其特征,也就无法达到躲避效果。不直接选择q值最大的躲避操作的原因是n1和n2的参数具备随机性,在初始阶段无法选择最优躲避操作。因此,随机选择时,概率值区间越大,被选择的可能性就越大,既能保证倾向于选择强度因子大的躲避操作,又能保证不因为单一选择策略陷入局部最优化,无法达到最优躲避效果。
[0106]
3223、对第一攻击流量数据样本执行选择的躲避操作,以得到第一躲避流量数据。
[0107]
躲避流量生成器确定完优选的躲避操作m*后,将该优选的躲避操作m*施加到第一攻击流量数据样本的第i个出方向的包中,并更新该第一攻击流量数据样本,得到第一躲避流量数据。
[0108]
323、将第一躲避流量数据的特征向量输入第二原始神经网络模型,输出每个躲避操作的备选概率值。
[0109]
躲避流量生成器提取上述得到的第一躲避流量数据的特征向量,输入第二原始神经网络模型n2,输出每个躲避操作的备选概率值。需要注意的是,输入第一原始神经网络模型中的攻击流量数据样本,与得到该第一躲避流量数据的攻击流量数据样本需为同一攻击流量数据样本。这样,形成的数据才具有可比性。
[0110]
324、得到入侵检测系统对第一躲避流量数据是否为攻击流量的检测结果。
[0111]
躲避流量生成器将该第一躲避流量数据输入入侵检测系统,入侵检测系统检测该第一躲避流量数据是否为攻击流量,并将检测结果反馈回给躲避流量生成器。该检测方式可以是pcap文件输入,也可以直接读取内存或缓存中的第一躲避流量数据,具体此处不做限定。
[0112]
其中,若检测结果为是,即攻击流量,则奖励值r=0,若检测结果为否,即正常流量,则奖励值r=1。奖励值的意义是若躲避操作使得攻击流量数据被入侵检测系统漏检,则对其进行奖励。
[0113]
需要注意的是,步骤323与步骤324的先后关系此处不做限定。
[0114]
325、基于检测结果及最大备选概率值,确定第一攻击流量数据样本的标签概率。
[0115]
躲避流量生成器通过y=r γ
·
q2确定第一攻击流量数据样本的标签概率;
[0116]
其中,y为该第一攻击流量数据样本的标签概率,若检测结果为是,r=1,若检测结果为否,r=0;q2为该最大备选概率值,γ为折现系数。
[0117]
326、将第一攻击流量数据样本的特征向量、第一躲避操作及标签概率作为一条训练样本加入模型样本训练集。
[0118]
躲避流量生成器将训练数据(f1,m1,y)加入模型样本训练集d,其中f1为该第一攻击流量数据样本的特征向量,m1为该第一躲避操作,y为该标签概率。可以理解的是,模型样本训练集d中可以包含多条训练数据,一般情况下,为了使模型样本训练集d涵盖范围更广,训练数据越多越好。
[0119]
327、判断检测结果,若检测结果为是,则执行步骤321,若检测结果为否,则执行步骤328。
[0120]
躲避流量生成器将训练数据(f1,m1,y)加入模型样本训练集d后,接着判断上述的检测结果,若检测结果为是,则继续执行步骤321,此时定位至更新后的第一攻击流量数据样本的第i 1个出方向的包,并将i更新为i 1,重复执行步骤321至步骤327。可以理解的是,由于出方向的包的个数限制,重复次数不得超过第一攻击流量数据样本的出方向的包的个数。若检测结果为否,则执行步骤328。
[0121]
328、获得模型样本训练集。
[0122]
将前几次r=0与第一次出现r=1的训练数据(f1,m1,y)累计加入模型样本训练集d,得到模型样本训练集。例如,若第一、第二次的检测结果r=0,第三次的检测结果r=1,这将这三次对应的训练数据(f1,m1,y)累计加入模型样本训练集d,而第四次就不会加入。
[0123]
可以理解的是,可以对多个攻击流量数据样本执行步骤321至步骤328,以得到多个模型样本训练集d。
[0124]
33、根据模型样本训练集计算损失值,并基于损失值训练第一原始神经网络模型。
[0125]
从模型样本训练集中选择至少一个训练数据(f1,m1,y),构造损失函数。
[0126]
具体的,使用损失计算函数l(w)=e[y-n1(w,f1,m1)]计算损失值;
[0127]
其中,y为述第一攻击流量数据样本的标签概率,f1为第一攻击流量数据样本的特征向量,m1为第一躲避操作,n1(w,f1,m1)是将f1输入到第一原始神经网络模型得到的m1对应的概率值,w为所述第一原始神经网络模型的权重参数,e为数学期望,l(w)为该损失值。可以理解的是,可以在该损失函数的基础上,利用梯度下降等方法更新权重参数w,进而更新该第一原始神经网络模型n1。
[0128]
34、当满足第一预设条件,将第一原始神经网络模型的模型参数更新至第二原始神经网络模型。
[0129]
当第一原始神经网络模型n1的训练次数满足第一预设条件,将第一原始神经网络模型n1的模型参数更新至第二原始神经网络模型n2,以训练第二原始神经网络模型n2。可以理解的是,该第一预设条件可以为2次或3次,具体此处不做限定。若训练次数不满足第一预设条件,则重复执行步骤31至33,具体的,可以重复k次执行后,用n1替换n2,k≥1。
[0130]
35、当满足第二预设条件,将训练后的第二原始神经网络模型作为目标神经网络模型。
[0131]
当第二原始神经网络模型n2的训练次数满足第二预设条件,将训练后的第二原始神经网络模型n2作为目标神经网络模型。可以理解的是,该第二预设条件可以为2次或3次,具体此处不做限定。若训练次数不满足第一预设条件,则重复执行步骤34,重复h次执行步骤34后,得到优化的n2,将n2作为目标神经网络模型,其中h≥1。
[0132]
进一步地,下面将结合图4和图5,对躲避流量生成器中的第一阶段:目标神经网络模型的训练过程和,第二阶段:通过目标神经网络模型生成躲避流量数据的过程进行描述:
[0133]
501、获取攻击流量数据样本。
[0134]
躲避流量生成器通过网络连接获取网络通道上的攻击流量数据样本,该攻击流量数据样本可以认为指定或随机选取,具体此处不做限定。
[0135]
502、对攻击流量数据样本执行躲避操作。
[0136]
躲避流量生成器对获取的攻击流量数据样本执行躲避操作,使攻击流量数据样本具有一定的躲避入侵检测系统检测的效果,该躲避操作可以为ip分片或tcp分片,具体此处
不做限定。
[0137]
503、基于操作前后流量特征向量计算躲避操作强度因子。
[0138]
躲避流量生成器提取进行躲避操作前的攻击流量数据样本的特征向量,并提取进行躲避操作后的攻击流量数据样本的特征向量,通过这两个特征向量去计算该躲避操作的单个强度因子。通过重复计算可获得多个攻击流量数据样本的综合强度因子。
[0139]
504、初始化目标神经网络模型。
[0140]
躲避流量生成器初始化建立两个全连接神经网络n1和n2,初始建立时n1和n2的网络架构相同,输入层和输出层也相同。通过后续的更新可将n2作为目标神经网络模型。
[0141]
505、基于增强贪心函数随机选择躲避操作。
[0142]
躲避流量生成器将综合强度因子带入到增强贪心函数中,从增强贪心函数中确定出每个躲避操作的概率值;基于该概率值可以确定出一个优选的躲避操作。
[0143]
506、记录入侵检测系统对躲避操作的反馈。
[0144]
躲避流量生成器将该攻击流量数据样本执行优选的躲避操作,得到更新后的攻击流量数据,接着将更新后的攻击流量数据样本输入到入侵检测系统中,接收并记录入侵检测系统反馈的检测结果。
[0145]
可以理解的是,步骤501至步骤506与上述步骤31至步骤32的执行过程类似,具体此处不再赘述。
[0146]
507、利用深度q学习根据反馈更新目标神经网络模型。
[0147]
躲避流量生成器利用深度q学习根据反馈的检测结果获得模型样本训练集,通过模型样本训练集构建一个损失函数,通过梯度下降法更新n1中的权重参数,将更新多次的n1替换为n2,经过多次替换后将n2作为目标神经网络模型。
[0148]
可以理解的是,步骤507与上述步骤33至步骤35的执行过程类似,具体此处不再赘述。
[0149]
508、使用目标神经网络模型生成躲避流量数据。
[0150]
躲避流量生成器获取一个攻击流量数据,将该攻击流量数据的特征向量输入目标神经网络模型,可以确定出一个最大概率值对应的最佳躲避操作,对该攻击流量数据执行确定的躲避操作生成躲避流量数据。可以理解的是,该攻击流量数据与上述的攻击流量样本可以为同一攻击流量数据。躲避流量生成器将生成的躲避流量数据输到入侵检测系统,以测试入侵检测系统的防躲避能力。
[0151]
可以理解的是,步骤508与上述步骤201至步骤203的执行过程类似,具体此处不再赘述。
[0152]
下面将结合图6和图7,对生成的躲避流量测试入侵检测系统的防躲避能力的测试结果进行说明。
[0153]
图6中,可以看到,在cse-cic-ids2018数据集的基础上,利用本发明生成的躲避流量对基于机器学习的入侵检测系统的躲避测试结果如图1所示。明显地,本发明对攻击流量变形生成的躲避流量明显地降低了入侵检测系统对攻击流量的检测准确率(accuracy),说明生成的躲避流量可以有效测试入侵检测系统抗躲避能力。
[0154]
图7中,可以看到,在cse-cic-ids2018数据集的基础上,利用本发明对不同的攻击类型的流量进行变形生成躲避流量,并对基于随机森林算法的入侵检测系统进行躲避测
试,结果如图2所示。图中mpr(malicious probability)是指机器学习模型输出的流量恶意分类概率,mrp越大说明该流量被分类为恶意的可能性越大。fnr(false negative rate)是假阳性率,fnr越小说明入侵检测系统越准确。明显地,本发明通过对不同攻击类型流量生成的躲避流量可以明显地降低入侵检测系统地mpr、增大入侵检测系统的fnr。因此,本发明可以有效测试入侵检测系统抗躲避能力。
[0155]
以上实施例仅用以说明本技术的技术方案,而非对其限制。
[0156]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0157]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0158]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本技术实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
[0159]
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献