本发明涉及人工智能赋能与对抗方向,提供了一种基于对抗学习的攻击流量生成系统及方法。
背景技术:
1、随着现代网络的规模和复杂性不断增加,以及在其上运行的大量应用程序,使通信和网络系统极易受到各种入侵攻击。为了检测日益复杂的攻击,已经开发并部署了网络入侵检测系统(nids)。然而,随着ml的发展,这些系统近年来变得更加先进,基于ml的入侵检测系统得到了应用和发展,它们只需要很少或根本不需要先验知识就可以处理新出现的攻击。
2、这些防御进步的核心在于从网络流量中提取高维特征向量,然后通过传统的机器学习或深度学习模型来训练区分良性流量和恶意流量。nids的进步使攻击行为变得更加难以成功。
3、此外,生成对抗网络(gan)也具有广泛的应用潜力。gan由生成器和判别器组成,它们相互博弈,互相对抗,来生成高质量数据。它具有广泛的应用潜力,可以用来生成各种类型的数据,改进现有数据,因此可以利用gan生成流量数据。
4、然而,针对目前大部分攻击难以绕过改进的nids的问题,研究人员提出了一些方法。
5、攻击流量生成的工作还处于发展时期,大部分的研究工作都着重关注于检测在被iot僵尸程序入侵后的主机在通信时所产生的异常流量。
6、在文献《bringing a gan to a knife-fight:adapting malware communicationto avoid detection》中,研究者提出了利用生成式对抗网络(gan)修改恶意流量的命令与控制(c2)通道,以模仿合法应用程序(如facebook流量)的命令与控制通道,从而逃避检测。
7、文献《generative adversarial attacks against intrusion detectionsystems using active learning》采用主动学习和gan对基于ml的ids发起ae攻击,展示了仅使用有限的先验知识就能入侵ids的能力。大多数规避nids的攻击方法都是基于假设攻击者知道系统的特征提取器的黑盒设置来干扰攻击的流量特征。然后利用这些信息,通过执行旨在绕过nids的对抗性攻击来干扰恶意流量。虽然这些攻击被证明可以有效地绕过nids,但在施加对抗性扰动后,这些攻击会失去一些原有的功能。因此,攻击对目标网络的影响有限且实际攻击在端到端设置中可能无法执行。
技术实现思路
1、本发明的目的在于提供一种基于对抗学习的攻击流量生成原型系统,该系统能够解决当前攻击流量生成策略单一、实现能力弱、可解释性差的问题。
2、为了达到上述目的,本发明采用如下技术方案:
3、具体的本发明提供了一种基于对抗学习的攻击流量生成原型系统,包括以下器件:
4、流量数据处理模块,用于处理收集的流量数据:
5、先通过cicflowmeter工具将收集流量数据的pcap包进行特征提取,得到原始流量数据的特征向量a;
6、接着对特征向量a进行独热编码、归一化和特征降维,得到特征向量b;
7、基于生成对抗网络的攻击流量生成模块,用于生成攻击流量,包括:
8、将得到的特征向量b输入对抗网络模型gan进行学习,得到逼近真实攻击特征向量的生成器,用于模拟生成真实的攻击流量;
9、通过递归特征消除得到特征向量a的重要性排序;
10、根据排序选取单个特征进行干扰,利用gan生成的干扰特征后的攻击流量与nids进行博弈,不断反馈优化nids从而得到一个对nids高绕过率的生成器,将成功绕过的流量中的干扰特征保留为关键特征;
11、攻击流量生成的可解释性模块,用于解释生成模型的预测结果,包括:
12、对所构建的对抗网络模型gan,根据重要性计算每个干扰特征的影响函数,来确定特征被干扰时对模型预测的影响程度,来解释模型的预测结果;
13、干扰特征真实攻击流量生成模块,用于生成真实的攻击流量,包括:
14、通过分析实际网络环境的流量特征可变参数,关联对抗样本关键特征影响函数,
15、在可变特征中选取重要性强的特征做干扰,以确保生成流量的功能性,进而实现真实的模拟攻击;
16、利用恶意软件模仿成功绕过nids的流量中的特征,对需要绕过的攻击流量进行选定特征的修改,以实现绕过nids的有效真实攻击,进而实现真实的模拟攻击。
17、上述技术方案中,其中流量数据处理模块具体实现步骤如下:
18、通过cicflowmeter工具对流量数据的pcap包进行特征提取,得到流量数据的特征向量a,并统计出特征向量a常用的端口号和协议号;
19、a1、对特征向量a进行处理,先进行特征筛选,去除对分类作用不大的特征,以减小维度;
20、a2、使用独热编码来解决特征值离散的问题,防止因端口和协议特征存在大量不同特征值导致数据维度爆炸;
21、a3、利用常用的端口号和协议号作为新的特征,将不常用的端口和协议号归为另一类特征,值均为0或1;
22、a4、对处理过的特征向量进行归一化,将连续型特征值映射到0到1范围,得到处理后的特征向量b。
23、上述技术方案中,其中基于生成对抗网络的攻击流量生成模块具体实现步骤如下:
24、b1、将提取到的k个特征向量输入到生成对抗网络模型gan中进行学习,得到逼近真实攻击的特征向量的生成器;
25、b2、将提取后的k个特征作向量为初始特征子集;
26、b3、将初始特征子集输入到随机森林分类器中,计算得到每个特征向量的重要性;
27、b4、利用交叉验证方法得到初始特征子集的对分类的影响程度;
28、b5、从当前特征子集中移除特征重要性最低的一个特征向量,得到一个新的特征子集;
29、b6、递归重复前面步骤b3-b5,直至特征子集为空;
30、b7、通过递归特征消除得到特征向量a重要性排序;
31、b8、根据排序选取单个特征,利用生成对抗网络模型gan生成干扰特征后的攻击流量并与nids进行博弈,不断反馈优化nids从而得到一个对nids高绕过率的生成器,将成功绕过的流量特征保留为关键特征。
32、上述技术方案中,攻击流量生成的可解释性模块具体实现步骤如下:
33、对所构建的gan模型,计算每个扰动特征的影响函数,来确定改变特定特征时,对目标nids模型预测的影响程度,来解释模型的预测结果;
34、当进行特征干扰时,生成的样本会越过模型分类边界,实现绕过nids,通过对重要度不同的特征进行干扰,以实现对模型影响程度的不同解释;
35、解释流量生成过程中哪些特征起到了重要作用,从而实现了攻击变种。
36、上述技术方案中,干扰特征真实攻击流量生成模块具体实现步骤如下:
37、获取对目标nids影响大的关键特征;
38、对实际网络环境中的可变流量特征进行分析筛选,结合前面得到的关键特征的影响函数,选择对目标nids影响更大且能够保留原有攻击性的可变特征,作为攻击扰动特征;
39、然后利用恶意软件模仿成功绕过的特征,对需要绕过的攻击流量进行选定特征的修改,以实现绕过nids的有效真实攻击。
40、本发明还提供了一种基于对抗学习的攻击流量生成方法,包括以下步骤:
41、步骤1、进行流量数据处理,用于处理收集的流量数据:
42、先通过cicflowmeter工具将收集流量数据的pcap包进行特征提取,得到原始流量数据的特征向量a;
43、接着对特征向量a进行独热编码、归一化和特征降维,得到特征向量b;
44、步骤2、基于生成对抗网络的攻击流量生成,生成攻击流量,包括:
45、将得到的特征向量b输入对抗网络模型gan进行学习,得到逼近真实攻击特征向量的生成器,用于模拟生成真实的攻击流量;
46、通过递归特征消除得到特征向量a的重要性排序;
47、根据排序选取单个特征进行干扰,利用gan生成的干扰特征后的攻击流量与nids进行博弈,不断反馈优化nids从而得到一个对nids高绕过率的生成器,将成功绕过的流量中的干扰特征保留为关键特征;
48、步骤3、解释生成模型的预测结果,具体包括:
49、对所构建的对抗网络模型gan,根据重要性计算每个干扰特征的影响函数,来确定特征被干扰时对模型预测的影响程度,来解释模型的预测结果;
50、步骤4、干扰特征真实攻击流量生成,生成真实的攻击流量,包括:
51、通过分析实际网络环境的流量特征可变参数,关联对抗样本关键特征影响函数,
52、在可变特征中选取重要性强的特征做干扰,以确保生成流量的功能性,进而实现真实的模拟攻击;
53、利用恶意软件模仿成功绕过nids的流量中的特征,对需要绕过的攻击流量进行选定特征的修改,以实现绕过nids的有效真实攻击,进而实现真实的模拟攻击。
54、上述技术方案中,步骤1具体如下:
55、通过cicflowmeter工具对流量数据的pcap包进行特征提取,得到流量数据的特征向量a,并统计出特征向量a常用的端口号和协议号;
56、a1、对特征向量a进行处理,先进行特征筛选,去除对分类作用不大的特征,以减小维度;
57、a2、使用独热编码来解决特征值离散的问题,防止因端口和协议特征存在大量不同特征值导致数据维度爆炸;
58、a3、、利用常用的端口号和协议号作为新的特征,将不常用的端口和协议号归为另一类特征,值均为0或1;
59、a4、对处理过的特征向量进行归一化,将连续型特征值映射到0到1范围,得到处理后的特征向量b。
60、上述技术方案中,其中基于生成对抗网络的攻击流量生成具体实现步骤如下:
61、b1、将提取到的k个特征向量输入到生成对抗网络模型gan中进行学习,得到逼近真实攻击的特征向量的生成器;
62、b2、将提取后的k个特征作向量为初始特征子集;
63、b3、将初始特征子集输入到随机森林分类器中,计算得到每个特征向量的重要性;
64、b4、利用交叉验证方法得到初始特征子集的对分类的影响程度;
65、b5、从当前特征子集中移除特征重要性最低的一个特征向量,得到一个新的特征子集;
66、b6、递归重复前面步骤b3-b5,直至特征子集为空;
67、b7、通过递归特征消除得到特征向量a重要性排序;
68、b8、根据排序选取单个特征,利用生成对抗网络模型gan生成干扰特征后的攻击流量并与nids进行博弈,不断反馈优化nids从而得到一个对nids高绕过率的生成器,将成功绕过的流量特征保留为关键特征。
69、上述技术方案中,攻击流量生成的可解释性具体实现步骤如下:
70、对所构建的gan模型,计算每个扰动特征的影响函数,来确定改变特定特征时,对目标nids模型预测的影响程度,来解释模型的预测结果;
71、当进行特征干扰时,生成的样本会越过模型分类边界,实现绕过nids,通过对重要度不同的特征进行干扰,以实现对模型影响程度的不同解释;
72、解释流量生成过程中哪些特征起到了重要作用,从而实现了攻击变种。
73、上述技术方案中,干扰特征真实攻击流量生成具体实现步骤如下:
74、获取对目标nids影响大的关键特征;
75、对实际网络环境中的可变流量特征进行分析筛选,结合前面得到的关键特征的影响函数,选择对目标nids影响更大且能够保留原有攻击性的可变特征,作为攻击扰动特征;
76、然后利用恶意软件模仿成功绕过的特征,对需要绕过的攻击流量进行选定特征的修改,以实现绕过nids的有效真实攻击。
77、本发明同现有技术相比,其有益效果表现在:
78、一、通过学习多场景多种类的攻击流量数据,可以使攻击生成种类更加多样,且适配不断优化的nids场景;
79、二、本发明主要优点是能够保持攻击报文的内容,并且可以根据频繁的目标网络响应实时进行调整。不需要了解nids,从而实现黑盒攻击;
80、三、针对目前大多数方法仅关注绕过nids来干扰恶意流量特征进行攻击却忽略了保留这些攻击原有的功能,致使攻击对目标网络的影响仍然有限,提出了结合实际网络流量特征进行扰动的方式;
81、四、提出了一种基于影响函数的流量生成模型解释技术,对所构建的gan模型,计算每个扰动特征的影响函数,来确定改变特定特征时,对模型预测的影响程度,来解释模型的预测结果。