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

用于检测可疑网络行为的深度嵌入式自学系统和方法与流程

2022-03-19 20:22:33 来源:中国专利 TAG:


1.本发明涉及一种用于检测和分类包含在数据流量(data traffic)内的潜在恶意网络行为或特性的系统和方法。具体地,本发明涉及一种包括数据预处理模块的系统,该数据预处理模块用于在经处理的数据流量被提供给通信地连接到数据预处理模块的警报模块之前处理接收到的数据流量。警报模块包括经训练的自动编码器和经由经部分标记的训练数据的集合上的自学来训练的分类器神经网络,该警报模块确定通常自己呈现为网络流量异常的潜在恶意网络行为是否被包含在经处理的数据流量内。


背景技术:

2.网络安全威胁,诸如tcp syn洪泛(flooding)、dns放大攻击、分布式拒绝服务(ddos)攻击、蛮力尝试、信标尝试、特洛伊木马、密钥记录器、僵尸网络通信、垃圾邮件活动、网络/端口扫描等,是计算机网络每天所面临的威胁。这些威胁通常会导致不寻常或不常见的网络流量行为。因此,它们经常被网络安全系统检测和识别为网络异常。出于多种原因,检测这种网络异常仍然具有挑战性。当中的原因在于,这种攻击数量巨大,并且由于网络数据的特性不断变化,这种攻击可能会被掩盖在现有网络数据中(即,它们取决于多种因素,诸如终端用户的行为、客户的业务类型(例如,银行、零售)、应用的类型、位置、当日时间)。这种多样性和动态性限制了基于规则的系统在检测网络流量异常方面的应用。
3.通常,在本领域中众所周知的是,这种恶意网络行为会导致异常网络流量,异常网络流量一般存在于由计算机系统接收的或者在计算机系统之间发生的一部分网络通信内。传统的网络异常检测机制取决于诸如网络流量拦截和分析或网络连接汇总之类的技术来确定网络连接的关键特性,诸如其源地址和目的地地址、源端口和目的地端口、协议、八位字节(octet)大小、以及反向(reverse)八位字节大小,以确定网络流量是否是恶意的。因此,值得注意的是,包括数值特征和分类特征两者的这些特性可以从路由器的netflow记录中获得。
4.对于这种方法,对恶意网络行为的检测通常取决于对各个流量(例如,netflow)记录(或各个流量记录的汇总)的分析,以识别与各种类型的恶意网络行为相关联的网络异常的已知特性(基于协议、端口、八位字节大小等)。这种方法的有效性有限,因为如果不参考过去的相关流量记录,就不可能总是将异常流量和正常数据流量区分开。已经发现,分析网络流量记录的序列通常可以更好地表征网络行为,从而检测出恶意活动。
5.因而,本领域技术人员已经提出,诸如递归神经网络(rnn)之类的深度学习方法应用于检测与网络连接所传播的或通过网络连接传送的网络威胁相关联的网络流量,因为深度学习方法能够处理与将多个流量记录分组在一起相关联的大量数据。此外,与这种深度学习神经网络相关联的大量模型参数为它们提供了学习可能发生的网络行为的许多变化的能力。
6.也已经提出,基于深度学习自动编码器的聚类方法可以用于检测网络流量中的异常。自动编码器能够实现这一点,因为它们通过首先经由编码器将它们的输入汇总到低维
空间,然后经由解码器从低维表示中重建输入,来训练它们自己。尽管用普通的(plain)自动编码器获得良好的重建往往是微不足道的,但是为了得到良好的低维表示,已经在正则化上投入了很多努力以防止自动编码器过度拟合。然而,很少有人关注尝试对低维表示进行理解,在没有为威胁分析者提供任何附加的上下文或信息的情况下,这不是仅仅标记出异常,而是对于表征和分类异常来说很重要。通常,编码器所输出的低维表示可以被聚类(clustered),其中每个聚类表示数据中不同类型的行为。尽管这种方法对于标记出异常网络流量从而标记出潜在恶意网络活动极其有用,但是在不存在经标记数据的情况下,这种方法无法对聚类进行理解(即,在我们的示例中,将每个聚类与恶意网络行为的类型相关联)。此外,当自动编码器的输入包括分类特征(诸如从像netflow的流量数据获得的那些)时,自动编码器可能无法有效地训练自己,因为分类特征首先必须转换成某种形式的数值表示。已经提到,聚类方法可以用于在没有经标记数据的情况下标记出异常,但是在本领域中没有公开如何以自主和计算高效的方式来识别和分类这种异常。
7.出于上述原因,本领域技术人员一直在努力提出一种系统和方法,该系统和方法能够以高效和有效的方式使用经标记的和未标记的网络数据流量来检测和分类网络异常,其中网络数据流量可以包括数值特征和分类特征。


技术实现要素:

8.通过根据本发明的实施例所提供的系统和方法,解决了上述和其他问题,并且实现了本领域的进步。
9.根据本发明的系统和方法的实施例的第一个优点在于,本发明的警报模块能够训练自己来检测和分类各种类型的潜在恶意网络行为,即使完全标记的数据不可用于训练警报模块。
10.根据本发明的系统和方法的实施例的第二个优点在于,本发明能够连续监控数据流量,以检测和分类发生在源目的地对(例如,在我们的实施例中的源目的地ip地址)之间的潜在恶意网络行为。
11.根据本发明的系统和方法的实施例的第三个优点在于,本发明能够以高效的方式利用来自网络数据流量的时间序列的数值特征和分类特征来训练本发明的警报模块,以检测和分类各种各样的潜在恶意网络行为,从而不需要手工设计不同的窗口大小或采用简单的均值、中值、标准偏差等进行特征设计。
12.根据本发明的系统和方法的实施例的第四个优点在于,本发明能够以端到端的方式训练数据预处理模块中的嵌入层和自动编码器,以便为分类特征提供良好的嵌入,并且作为结果,为网络流量特征的时间序列提供良好的编码。
13.根据本发明的系统和方法的实施例的第五个优点在于,分类特征的数值表示也不是手工设计的。相反,它们是由位于数据预处理模块中的嵌入层自动学习的,从而提高了神经网络的效率。
14.根据本发明的系统和方法的实施例的第六个优点在于,尽管嵌入层(用于嵌入分类特征)是以端到端的方式在数据预处理模块中同时进行训练的,但是当训练自动编码器时可以保持数值稳定性。
15.根据本发明的系统和方法的实施例的第七个优点在于,系统可以基于一直流向系
统的新的经部分标记的数据以在线方式更新自己。
16.根据本发明的系统和方法的实施例的第八个优点在于,系统可以利用正在流入的新的经部分标记的数据来调整其动态阈值,以检测和分类各种感兴趣的潜在恶意网络流量是否存在。
17.根据本发明的系统和方法的实施例的第九个优点在于,每个未标记的输入网络数据流量可以被分类成多个威胁类型。
18.根据本发明的方法的实施例以下列方式操作,提供了上述优点。
19.根据本发明的第一方面,公开了一种用于检测数据流量中的潜在恶意网络活动的系统,该系统包括:数据预处理模块,被配置为:从流量数据集中提取时间序列特征;令牌化(tokenizing)来自所提取的时间序列特征的分类特征,并且将令牌化的特征嵌入到相应的维度嵌入矢量中;警报模块,其通信地连接到数据预处理模块的输出,警报模块包括具有经训练的编码器的经训练的自动编码器,经训练的编码器的输出耦合到经训练的分类器神经网络,警报模块被配置为:在从数据预处理模块获得的所提取的时间序列特征和维度嵌入矢量中检测和分类可能的恶意网络行为,其中经训练的编码器包括与经训练的自动编码器相关联的锁定(locked-in)编码,并且其中自动编码器使用自展(bootstrapping)方法基于从整个数据流量的训练集中提取和处理的时间序列特征来训练,其中经处理的时间序列特征包括使用数据预处理模块从令牌化的分类特征中生成的维度嵌入矢量和数值特征,并且其中分类器神经网络使用被提供作为经训练的数据预处理模块的输入的时间序列标记的数据来初始化,其中经初始化的分类器神经网络随后使用对于经标记数据的静态标签和对于未标记数据的动态生成标签来训练。
20.关于本发明的第一方面,自展方法包括以下步骤:对于自动编码器的训练中的每次迭代,减少自动编码器的输出与包括数值特征和分类特征的可学习嵌入的输入时间序列的固定副本之间的l2重建损失。
21.关于本发明的第一方面,自动编码器包括多层感知器(mlp)、卷积神经网络(cnn)、递归神经网络(rnn)或其任何组合。
22.关于本发明的第一方面,与经训练的编码器相关联的锁定编码包括作为训练自动编码器的结果而生成的固定编码。
23.关于本发明的第一方面,令牌化来自所提取的时间序列特征的分类特征包括:数据预处理模块被配置为向整个所提取的时间序列集中的每个唯一分类特征分配唯一整数值。
24.关于本发明的第一方面,令牌化来自所提取的时间序列特征的分类特征包括:数据预处理模块被配置为向每个所提取的时间序列中的分类特征的每次出现分配唯一整数值。
25.关于本发明的第一方面,令牌到维度嵌入的转换包括:数据预处理模块被配置为为时间序列中的每个唯一令牌分配维度嵌入。
26.关于本发明的第一方面,分类器神经网络的初始化包括:警报模块被配置为基于提供给经训练的数据预处理模块的输入的经标记的时间序列数据,使用监督学习技术来训练分类器神经网络。
27.关于本发明的第一方面,使用对于经标记数据的静态标签和对于未标记数据的动
态生成标签来训练经初始化的分类器神经网络包括:警报模块被配置为:计算对于经标记数据中的每个威胁类型的置信度得分;基于所计算的对于经标记数据中的每个威胁的置信度得分来生成对于每个威胁类型的阈值;使用所生成的对于每个威胁类型的阈值来动态标记未标记的数据;以及使用经标记的和经动态标记的数据来训练经初始化的分类器神经网络。
28.关于本发明的第一方面,警报模块还被配置为使用基于最近网络流量数据和警报的静态或动态计算的阈值来检测数据流量中的潜在恶意网络活动。
29.关于本发明的第一方面,警报模块被配置为使用新的网络流量数据和来自其他现有模型的相关警报以在线方式进行更新。
30.根据本发明的第二方面,公开了一种使用系统来检测数据流量中的潜在恶意网络活动的方法,该系统包括数据预处理模块和通信地连接到数据预处理模块的输出的警报模块,其中警报模块包括具有经训练的编码器的经训练的自动编码器,经训练的编码器的输出耦合到经训练的分类器神经网络,该方法包括:使用数据预处理模块,从流量数据集中提取时间序列特征;使用数据预处理模块,令牌化来自所提取的时间序列特征的分类特征,并且将令牌化的特征嵌入到相应的维度嵌入矢量中;使用警报模块,在从数据预处理模块获得的所提取的时间序列特征和维度嵌入矢量中检测和分类可能的恶意网络行为,其中经训练的编码器包括与经训练的自动编码器相关联的锁定编码,并且其中自动编码器使用自展方法基于从整个数据流量的训练集中提取和处理的时间序列特征来训练,其中经处理的时间序列特征包括使用数据预处理模块从令牌化的分类特征中生成的维度嵌入矢量和数值特征,并且其中分类器神经网络使用被提供作为经训练的数据预处理模块的输入的经标记的时间序列数据来初始化,其中经初始化的分类器神经网络随后使用经标记数据的静态标签和未标记数据的动态生成标签来训练。
31.关于本发明的第二方面,自展方法包括以下步骤:对于自动编码器的训练中的每次迭代,减少自动编码器的输出与包括数值特征和分类特征的可学习嵌入的输入时间序列的固定副本之间的l2重建损失。
32.关于本发明的第二方面,自动编码器包括多层感知器(mlp)、卷积神经网络(cnn)、递归神经网络(rnn)或其任何组合。
33.关于本发明的第二方面,与经训练的编码器相关联的锁定编码包括作为训练自动编码器的结果而生成的固定编码。
34.关于本发明的第二方面,令牌化来自所提取的时间序列特征的分类特征包括:使用数据预处理模块,向整个所提取的时间序列集中的每个唯一分类特征分配唯一整数值。
35.关于本发明的第二方面,令牌化来自所提取的时间序列特征的分类特征包括:使用数据预处理模块,向每个所提取的时间序列中的分类特征的每次出现分配唯一整数值。
36.关于本发明的第二方面,令牌到维度嵌入的转换包括:使用数据预处理模块,为时间序列中的每个唯一令牌分配维度嵌入。
37.关于本发明的第二方面,分类器神经网络的初始化包括:使用警报模块,使用监督学习技术来训练分类器神经网络,该训练基于提供给经训练的数据预处理模块的输入的经标记的时间序列数据。
38.关于本发明的第二方面,使用对于经标记数据的静态标签和对于未标记数据的动
态生成标签来训练经初始化的分类器神经网络包括:使用警报模块,计算对于经标记数据中的每个威胁类型的置信度得分;使用警报模块,基于所计算的对于经标记数据中的每个威胁的置信度得分来生成对于每个威胁类型的阈值;使用警报模块,使用所生成的对于每个威胁类型的阈值来动态标记未标记数据;以及使用警报模块,使用经标记的和经动态标记的数据来训练经初始化的分类器神经网络。
39.关于本发明的第二方面,该方法还包括以下步骤:使用警报模块,通过使用基于最近网络流量数据和警报的静态或动态计算的阈值来检测数据流量中的潜在恶意网络活动。
40.关于本发明的第二方面,该方法还包括以下步骤:使用警报模块,使用新的网络流量数据和来自其他现有模型的相关警报以在线方式更新警报模块。
附图说明
41.根据本发明的系统和方法的特征和优点解决了上述和其他问题,该系统和方法在详细描述中描述并且在以下附图中示出。
42.图1示出了根据本发明实施例的用于检测和分类计算机网络的数据流量中的潜在恶意网络行为的过程或方法;
43.图2示出了可以用于实施根据本发明实施例的用于检测和分类数据流量中的潜在恶意网络行为的方法的模块的框图;
44.图3示出了根据本发明实施例的表示提供实施例的处理系统的框图
45.图4a示出了根据本发明实施例的从数据流量集中提取的四(4)个示例性时间序列特征;
46.图4b示出了根据本发明实施例的在分类特征已经被令牌化为整数值之后的四(4)个示例性时间序列特征;
47.图4c示出了根据本发明实施例的在令牌化的分类特征已经被嵌入到它们相应的维度嵌入矢量之后的四(4)个示例性时间序列特征;
48.图5示出了对于传统方法的以及对于根据本发明实施例的用于同时训练自动编码器和嵌入层的方法的、自动编码器损失相对于训练步骤数量的曲线图;
49.图6示出了根据本发明实施例的仅使用经标记数据的警报模块的初始化;
50.图7示出了根据本发明实施例的在警报模块已经被初始化之后或者在自学训练过程的每个训练时期开始时,使用经标记数据经由如图6所示的警报模块对每个感兴趣的恶意活动(即,警报类型)的动态阈值的计算;
51.图8示出了根据本发明实施例的作为如图7所示的警报模块的自学训练过程的一部分如何生成未标记数据的动态标签;
52.图9a示出了根据本发明实施例的使用经标记的和未标记的数据来训练用于检测和分类计算机网络的数据流量中的潜在恶意网络行为的系统的示例性框图;
53.图9b示出了根据本发明实施例的在图9a中训练的用于检测和分类计算机网络的数据流量中的潜在恶意网络行为的系统的实施方式的示例性框图;
54.图10示出了在被本发明的实施例分类为信标的数据流量中检测到的潜在恶意网络行为的间隔时间序列的示例性频谱,其中这些恶意网络行为被其他模型遗漏;以及
55.图11示出了在具有威胁分析者先前不知道的特性的数据流量中检测到的潜在恶
意网络行为的间隔时间序列的示例性频谱,这些数据流量被本发明的实施例分类为信标,其中这些潜在恶意网络行为被其他模型遗漏。
具体实施方式
56.本发明涉及一种用于检测和分类包含在数据流量内的潜在恶意网络行为的系统和方法。具体地,本发明涉及一种包括数据预处理模块的系统,数据预处理模块用于在经处理的数据流量被提供给通信地连接到数据预处理模块的输出的警报模块之前处理接收到的数据流量。警报模块一般包括两个部分。第一部分包括使用自展方法训练的自动编码器,并且第二部分包括与数据预处理模块和(经训练的自动编码器的)编码器组合的分类器神经网络,它们都被锁定/冻结(即,不具有进行进一步训练的固定权重)而产生固定的确定性编码,其中该组合仅使用经标记数据来初始化并且随后经由自学训练过程使用经标记的和未标记的数据来训练。然后,经训练的警报模块与数据预处理模块一起使用,以基于其经训练的数据(经标记的和未标记的)来确定潜在恶意网络行为是否被包含在经处理的感兴趣数据流量中,并且如果是,则确定所表现出的恶意行为的类型。
57.现在将参考如附图所示的几个实施例来详细描述本发明。在以下描述中阐述了许多具体特征,以便提供对本发明实施例的透彻理解。然而,对于本领域技术人员来说显而易见的是,实施例可以在没有一些或全部特定特征的情况下实现。这种实施例也应当落入本发明的范围内。此外,下文中的某些过程步骤和/或结构可能没有详细描述,并且读者将参考相应的引用,以免不必要地模糊本发明。
58.此外,本领域技术人员将认识到,本说明书中的许多功能单元在整个说明书中都被标记为模块。本领域技术人员还将认识到,模块可以被实施为电路、逻辑芯片或任何种类的分立组件。此外,本领域技术人员还将认识到,模块可以用随后可由各种处理器执行的软件来实施。在本发明的实施例中,模块还可以包括计算机指令或可执行代码,其可以指示计算机处理器基于接收到的指令执行一系列事件。对模块的实施方式的选择作为设计选择留给本领域技术人员,并且不以任何方式限制本发明的范围。
59.图1给出了根据本发明实施例的用于检测和分类数据流量中的各种可能的恶意网络行为的过程100的示例性流程图。由预处理模块和警报模块执行的过程100包括以下步骤:
60.步骤105:收集网络数据;
61.步骤110:从在步骤105收集的网络数据中提取时间序列特征;
62.步骤115:令牌化来自所提取的时间序列特征的分类特征,以产生相应的维度嵌入矢量;以及
63.步骤120:经由包括经训练的自动编码器和经训练的分类器神经网络的警报模块,使用所提取的时间序列特征和维度矢量来检测和分类可能的恶意网络行为。
64.过程100的步骤可以由包含在系统200内的模块执行,如图2所示,其中系统200包括数据预处理模块205和警报模块210,警报模块210又包括自动编码器212和分类器神经网络225。如图2所示,来自模块205的输出将被提供给警报模块210,以由模块210内的模块进一步处理。在本发明的实施例中,系统200的各个模块可以在计算机系统中实施。
65.另外,如图所示,可以看出,通常,自动编码器212包括两个部分:编码器215和解码
器220。本领域技术人员将认识到,编码器215被配置为将来自输入层的高维输入特征映射到低维编码,然后该低维编码可以用于表示输入,而解码器220被配置为将低维编码映射到来自输入层的高维输入特征的重建。编码器215可以被认为是深度神经网络的一部分,因为来自输入的信息被传递通过几个映射(和隐藏层),这类似于典型的监督深度学习模型中的深度架构;并且对于解码器220来说也是如此。编码器和解码器的本地参数的学习通常是通过利用随机初始化经由反向传播最小化重建误差(例如,均方误差)来实现的,并且可以利用本领域技术人员已知的各种优化器来优化。简而言之,可以说自动编码器可以被视为将输入集映射到它们的低维编码和它们相应的重建输出的确定性模型。一旦经过训练,自动编码器可以在过程中用于产生固定的确定性编码,以便于随后作为自学过程的一部分,对未标记的输入数据进行动态标记。
66.分类器神经网络225可以包括但不限于机器学习算法,机器学习算法被配置为基于示例输入-输出对(即,经标记数据)来学习将输入映射到输出的函数。如本领域技术人员已知的,这种网络通常通过从经标记的训练数据推断出函数来推导出这种函数。
67.根据本发明的实施例,在图3中示出了表示根据本发明实施例的处理系统300的组件的框图,这些组件可以设置在模块205、210、212、215、220和225中以用于实施实施例。本领域技术人员将认识到,这些模块内设置的每个处理系统的确切配置可能不同,并且处理系统300的确切配置可能变化,并且图3仅作为示例提供。
68.在本发明的实施例中,模块205、210、215、220和225中的每一个可以包括控制器301和用户接口302。用户接口302被布置成能够根据需要在用户与这些模块中的每一个之间进行手动交互,并且为此包括用户输入指令以向这些模块中的每一个提供更新所需的输入/输出组件。本领域技术人员将认识到,用户接口302的组件可以因实施例而异,但是将通常包括显示器340、键盘335和跟踪板(track-pad)336中的一个或多个。
69.控制器301经由总线315与用户接口302进行数据通信,并且包括存储器320、安装在电路板上的处理用于执行本实施例的方法和指令和数据的处理器305、操作系统306、用于与用户接口302通信的输入/输出(i/o)接口330、以及通信接口,在该实施例中通信接口是网卡350的形式。例如,网卡350可以用于经由有线或无线网络从这些模块向其他处理设备发送数据,或者经由有线或无线网络接收数据。可以由网卡350利用的无线网络包括但不限于无线保真(wi-fi)、蓝牙、近场通信(nfc)、蜂窝网络、卫星网络、电信网络、广域网(wan)等。
70.存储器320和操作系统306经由总线310与cpu 305进行数据通信。存储器组件包括易失性存储器和非易失性存储器两者以及各种类型的存储器中的一种以上,包括随机存取存储器(ram)320、只读存储器(rom)325和大容量存储设备345,大容量存储设备包括一个或多个固态驱动器(ssd)。存储器320还包括用于安全地存储密钥或私钥的安全存储装置346。本领域技术人员将认识到,上述存储器组件包括非暂时性计算机可读介质,并且应当被认为包括除暂时性传播信号之外的所有计算机可读介质。通常,指令作为程序代码存储在存储器组件中,但也可以是硬连线的。存储器320可以包括内核和/或编程模块,诸如可以存储在易失性存储器或非易失性存储器中的软件应用。
71.这里,术语“处理器”用于泛指能够处理这种指令的任何设备或组件,并且可以包括:微处理器、微控制器、可编程逻辑设备或其他计算设备。也就是说,处理器305可以由用
于接收输入、根据存储在存储器中的指令处理它们并产生输出(例如到存储器组件或在显示器340上)的任何合适的逻辑电路来提供。在该实施例中,处理器305可以是具有存储器可寻址空间的单核或多核处理器。在一个示例中,处理器305可以是多核的,包括例如8核cpu。在另一示例中,它可以是并行操作以加速计算的cpu核的集合。
72.参考图1,在步骤105,数据流量形式的网络数据在受监控的网络中被持续收集并存储在数据库204中。在本发明的实施例中,本领域技术人员将认识到,数据库204可以与数据预处理模块205集成到单个模块中,而不脱离本发明。在以下描述中,出于说明目的,应假设所收集的网络数据包括netflow记录。应当理解,可由路由器、分组代理(packet broker)等收集的其他形式的聚合数据可以在步骤105被收集并被存储在数据库204中。还应当理解,在步骤105收集并存储在数据库204中的数据的类型并不特别地仅限于netflow类型记录,并且也可以应用于其他类型的流量数据,包括但不限于dns、netflow、pcap等。在随后的描述中,尽管仅参考了netflow记录,但是本领域技术人员将认识到,所描述的方法和系统也可以应用于其他类型的流量数据,而不脱离本发明。
73.为了完整性,应当提到的是,netflow记录包括但不限于具有相同的源和目的地ip地址、源和目的地端口以及协议的五元组(five-tuple)的分组集合。除了上述内容,在netflow记录中收集的一些重要字段包括但不限于流的开始时间(基于第一个采样的分组)、持续时间、协议、端口、分组数量、八位字节和反向八位字节分组大小、以及传输控制协议(tcp)标志。
74.在步骤110,使用模块205,netflow记录按源和目的地互联网协议(ip)地址进行分组。然后从分组后的数据中提取多个时间序列特征,诸如八位字节(包括反向八位字节)、间隔时间、协议和端口的列表。本领域技术人员将认识到,可以从分组数据中提取包括数值特征和/或分类特征两者的任何数量的时间序列特征,而不脱离本发明,并且如图4a-图4c所示的这四个时间序列特征仅被选择来说明本发明的工作。此外,值得注意的是,为了简洁和避免混淆,在随后的图示中排除了反向八位字节时间序列特征。
75.所提取的时间序列特征包括数值特征,诸如包括流量记录的八位字节时间序列,该流量记录给出了在源ip地址和目的地ip地址之间流动的字节数量,以及包含各个流量记录之间的时间间隔(在这种情况下是各个netflow记录之间的时间间隔)的间隔时间序列。所提取的时间序列特征还包括分类特征,诸如给出每个记录的传输协议的协议序列和给出目的地ip所使用的所有端口的端口序列。应当注意,尽管端口序列包括数值,但是端口序列的这些数值由没有任何比例概念的大数字组成,例如,800、1020等,并且因而也应当被视为分类特征。这四个特征的时间序列在图4a中被示为端口序列402、协议序列404、间隔时间序列406和八位字节时间序列408,其中每个时间序列被预先填充0到任何长度,例如,200长的序列。本领域技术人员将认识到,多个时间序列可以被填充(包括预填充和后填充)到任何长度,而不脱离本发明。
76.在图1中的过程100的步骤115,然后,所提取的时间序列特征中的分类特征(即,端口序列402和协议序列404)使用模块205进行令牌化以产生令牌化的端口序列412和协议序列414,如图4b所示。在令牌化期间,整数值被分配给每个分类特征。这意味着向协议序列404中的每个协议分配数字,从而产生令牌化的协议序列414。至于端口序列402,不同端口的出现用不同的整数值来令牌化。例如,当一系列端口序列402为[80,80,81,90,80]时,令
牌化过程会将其令牌化为[1,1,2,3,1]。可以看出,在该令牌化模式中最多只能使用3个令牌,因为在端口的示例列表中只有3个唯一端口。令牌“0”未被使用,因为该整数被预留用于填充。然后,对每个端口时间序列独立地执行该过程,因为有大量端口可用,并且针对其中的每一单个端口进行令牌化是不高效的。这意味着我们不是将端口本身作为特征来使用,而是将一系列端口作为特征来使用。这也意味着在该实施例中,端口令牌的最大数量被设置为200,因为有200个时间步长。作为结果,只有当每一时间步长使用不同端口时,我们才会得到200个端口令牌。完成令牌化过程后,分类时间序列412和414中的每一个将具有与数值时间序列406和408相同的长度。简而言之,时间序列412和414中的每一个将各自包括200个令牌,因为每个时间序列被设置为200长。
[0077]
一旦完成这一点,模块205然后继续将令牌化的分类特征嵌入到矢量中,其中每个令牌被嵌入到16维(任意选择的)矢量中。如图4c所示,时间序列412和414中的每一个各自被嵌入到16个通道(通道0至通道15)中,其中时间序列412已被嵌入到矢量432-434(r0至r15)中,并且时间序列414被嵌入到矢量436-440(p0至p15)中,其中每个通道表示该维度的时间序列。例如,时间序列436中的符号p15
12
是指协议令牌12的嵌入的维度15(来自时间序列414),并且矢量438中的符号p1
12
是指协议令牌12的嵌入的维度1(来自时间序列414),从时间序列404来看,这意味着它们分别表示“udp”的嵌入的维度15和维度1。
[0078]
在图1中的过程100的步骤120,然后使用包含在警报模块210内的经训练的自动编码器212和经训练的分类器神经网络225来检测和分类可能的恶意行为,其中所提取的时间序列特征(即,数值特征)以及与数据预处理模块205所产生的分类特征相对应的维度嵌入矢量作为编码器215的输入。
[0079]
如图2所示,自动编码器212包括编码器215和解码器220。尽管未示出,但是应当理解,数据预处理模块205包括嵌入层,该嵌入层被配置为将分类时间序列数据形式的输入数据嵌入到嵌入矢量的时间序列中。在编码器215内,然后使用递归神经网络(rnn)或卷积神经网络(cnn)将分类特征的时间序列嵌入矢量和数值特征的时间序列编码成矢量,以产生编码218的集合。可以基于cnn或rnn的解码器220然后被配置为解码来自编码器215的编码218,并且产生经处理的时间序列的尝试重建作为其输出(即,从数据预处理模块205输出)。在自动编码器212和数据预处理模块205中的嵌入层的训练期间,由数据预处理模块205产生的经处理的时间序列和由编码器215产生的编码218都将被连续地调整,目的是最小化经处理的时间序列(即,数据预处理模型的输出,其包括数值特征和分类特征的嵌入,或者等效为编码器215的输入)与解码器220的输出处的重建时间序列之间的l2重建损失。一旦经过训练,自动编码器212将会学习到信息编码218的集合,并且数据预处理模块将会学习到关于如何嵌入每个分类特征的信息嵌入的集合。
[0080]
训练自动编码器的简单方法将是减少编码器215的输入与解码器220的输出处的重建时间序列之间的l2重建损失,编码器215的输入包括数值的时间序列以及与分类特征的时间序列相对应的维度嵌入的时间序列两者。如果嵌入是手工设计并且是固定的,则这是可能的,就像一个热嵌入(hot embedding)的情况。然而,当嵌入包括可训练参数并且不固定时,这种方法将失败。例如,如果嵌入层被训练成简单地最小化编码器215中的时间序列嵌入与解码器220输出处的重建时间序列嵌入之间的l2重建损失,则嵌入层将简单地学习将每个分类变量嵌入为零“0”。这导致这种网络的训练非常不稳定,这就是为什么大多数
(如果不是全部的话)文献向cnn/rnn提供固定嵌入来进行编码。此外,如果完成这一点,则对于具有整流线性单元(relu)激活的神经网络来说,学习嵌入并从编码中重建嵌入将变得极其简单。作为结果,先前已经提出,利用一种热编码(hot encoding)方法在将分类特征的时间序列馈送到编码器(而不是可训练的嵌入层)之前对它们进行编码,因为这种热编码方法包括不需要学习的固定嵌入方法。一种热编码方法的缺点是解决方案的不可缩放性,因为嵌入维度与令牌的数量成线性比例。当时间步长的数量增加时,可能需要嵌入的令牌的数量可能会增加。这使得这种热编码模式导致嵌入越来越稀疏,这进而导致大量计算开销被浪费。解决这个问题的一种显而易见的方式是冻结嵌入层(即,不更新该层),然而,这意味着嵌入层将不会被训练。
[0081]
图5中的曲线图示出了自动编码器损失与自动编码器为获得所需的l2重建损失值而进行的迭代次数的关系。特别地,曲线504包括当使用本领域已知的传统方法训练自动编码器(即,通过最小化重建时间序列嵌入与编码器处的时间序列嵌入之间的l2重建损失)时的自动编码器损失的曲线。从曲线504可以看出,自动编码器损失迅速降低到低值,并且随后由于nan误差而出错。这会发生是因为编码器中的嵌入层学会了一种非常简单的嵌入,即,简单地将所有分类特征嵌入到“0”,以实现所需的l2重建损失函数。所得的l2重建损失极其小,因而会导致梯度不稳定,从而发生nan误差。
[0082]
这意味着,根据本发明的实施例,不是训练数据预处理模块205中的嵌入层和自动编码器212来减少输入到编码器215的时间序列与解码器220的输出处的重建时间序列之间的l2重建损失,而是在每个训练步骤处训练自动编码器来减少解码器220的输出处的重建时间序列与输入到编码器215的时间序列的固定瞬时(instantaneous)副本之间的l2重建损失。这个过程被称为自展,并且效果在于在数据预处理模块205的嵌入层和自动编码器212两者中使学习稳定。此外,这意味着允许梯度一路传播回到甚至嵌入层,使得可以学习到有意义的嵌入。
[0083]
这种自展损失的方法受到基于价值的强化学习方法的启发。在强化学习中,代理被配置为与环境交互,以找到从环境中获得最多回报的最佳策略。为了实现这一目标,大多数最先进的算法都给出了其当前状态有多少价值的估计值(即,给定其当前状态的情况下其可以期望的回报是什么,以及给定其当前状态的情况下其可能变成的状态)。这通常是通过将当前状态的价值函数的价值网络估计值更新为v(s
t
)

v(s
t
) a(g
t 1-v(s
t
))来完成的,其中a是贴现因子(discount factor),v()是给定特定状态的情况下价值网络的估计值,并且g
t 1
是时间t 1处的基本真值(ground truth value)。然而,因为g
t 1
在时间步长t处未知,所以通过使用v(s
t 1
)代替它来得到g
t 1
的估计值。因此,价值网络更新如下:v(s
t
)

v(s
t
) a(v(s
t 1
)-v(s
t
))。使用估计值代替基本真值通常被称为自展。
[0084]
类似地,减少解码器220输出处的解码时间序列与输入到编码器215的时间序列的固定副本之间的l2损失(这用作包括数值特征和分类特征的嵌入两者的理想输入时间序列的估计值),同时仍然允许自动编码器215和数据预处理模块205的嵌入层中的权重在每个训练步骤处改变,实际上是一种自展方法。
[0085]
总之,因为分类时间序列的理想嵌入函数是未知的,所以当前估计值被用作解码器220的输出的目标。本质上,输入到编码器的经处理的时间序列特征的值被复制并用作解码器重建的目标(即,最小化解码器输出处的重建时间序列特征与编码器输入处的时间序
列特征的固定瞬时副本之间的l2损失),同时还允许自动编码器212和数据预处理模块205两者中的所有可训练权重和嵌入层在训练过程期间改变。这种训练的结果被绘制为图5中的曲线502,其中可以看出,自动编码器的学习随着时间而稳定,并且自动编码器能够从输入数据中学习有意义的聚类,而不利用存储器密集型方法。尽管曲线502示出了大的初始自动编码器损失,但是这随着时间慢慢变小,以产生低的、稳定的自动编码器损失。
[0086]
一旦自动编码器212被训练,这导致数据预处理模块205和编码器215,并且当被提供输入数据时,能够提供有意义的编码。这种自动编码器在图6中示出,其中警报模块610包括自动编码器612,自动编码器612具有已经使用上述自展方法训练的编码器615并且具有由编码器615输出的编码618,编码618基于经训练的自动编码器612的结果而可以被认为是锁定/冻结的和确定的。由编码618示出的编码器615的输出然后被提供给分类器神经网络225,分类器神经网络225包括mlp,mlp的最终层是sigmoid激活的,而不是如图6所示的softmax激活的。作为结果,分类器网络225的输出包括多个sigmoid函数,其中每个sigmoid函数指示特定类型的威胁行为是否存在,并且此外应当注意,流量数据可以被警报模块标记为与多于一种类型的警报相关联。
[0087]
然后,包括带有标签的时间序列数据的经标记数据被提供给模块205,并随后被提供给警报模块610,以便以监督方式训练分类器神经网络225。特别地,监督学习的传统方式被应用于分类器网络225,其中损失函数包括二进制交叉熵损失。在训练期间,输出和标签之间的二进制交叉熵损失被最小化,并且当数据被标记时,“1”和“0”是用于计算二进制交叉熵损失的标签。应当注意,尽管图6在警报模块610的输出处仅示出了5个警报类型,即,[1,0,1,0,和0],但是警报类型的数量可以取决于对于每个警报类型的经标记数据的可用性而扩展或缩减,而不脱离本发明。
[0088]
为了清楚起见,经训练的分类器神经网络225(来自图6)然后在图7中被标记为经初始化的神经网络725。跟着随后的步骤统称为自学过程,并且该过程利用了经标记和未标记的数据。图7示出了经训练和锁定/冻结的数据预处理模块205、警报模块610,警报模块610包括经训练和锁定/冻结的编码器612,编码器612的输出连接到经初始化的分类器网络725。自学过程的第一个步骤是使用分类器网络725对经标记数据集进行推理,以获得对于每个警报类型的动态阈值。这是通过向模块205提供经标记数据来完成的。一旦经标记的输入数据已经被模块205和612(其权重在整个自学过程中被锁定/冻结)处理,由612产生的静态的、确定性的编码将被传递到725。由于sigmoid函数的性质,725的输出或等效地模块610的输出将是每个警报类型的范围在0与1之间的输出预测。
[0089]
因为经标记数据被用作输入数据,所以将能够确定应当与标签所提供的“0”和“1”相关联的输出预测,即使所生成的输出预测包括0和1之间的值。这在图7中示出,其中仅是为了说明,假设五(5)个经标记数据被提供给模块205。在由模块205以及随后由模块610内的各种组件处理之后,产生五(5)个输出预测702的集合,其值的范围在0和1之间。应当注意的是,尽管在一些实施例中已经使用了相同的经标记数据集来初始化分类器网络725,作为前述初始化过程的一部分,但是由于残差(residual errors),所得的输出预测可能不精确对应,这是所有机器学习算法的典型情况。因为输入数据包括经标记数据,所以模块610能够确定哪些输出预测应该被标记为“1”和“0”,并且因而将其相应地映射出来(如图7所示),其中“1”用“虚线圈出”,而被标记为“0”的输出预测保持原样。简而言之,经标记数据与模块
610的置信度输出之间存在差异。这是意料之中的,因为模块205和610中使用的模型很少能100%准确,这是所有机器学习算法的典型情况。
[0090]
基于输出预测702,然后可以计算对于每一类别的威胁或也称为可能的恶意网络行为的动态阈值。如果对每一类别的威胁取输出预测的第50个百分位数(利用线性插值),则动态阈值将被计算为动态阈值704。需要注意的是,在计算过程完成时,每一类别的威胁将有自己的动态阈值。仅使用经标记数据来计算对于每一类别的动态阈值的该过程是在自学过程的每个时期开始时完成的,因为这是耗费时间且耗费资源的过程,其中在大多数实施例中,警报模块610和模块205必须彻底检查整个经标记数据集以得到良好的动态阈值。在本发明的实施例中,对于每一类别的动态阈值被取为每一类别的威胁的输出预测的第90个百分点。在本发明的实施例中,经标记数据集的子集可以用于计算动态阈值以加速训练过程。在本发明的实施例中,动态阈值的计算也可以在预定数量的步骤之后计算,而不是在每个自学训练时期开始时计算。
[0091]
为了清楚起见,先前用于计算对于每一类别的威胁的动态阈值的经初始化的神经网络725然后在图8中被标记为网络825。因此,对于由网络825接收的每一批未标记数据,网络825将首先基于这些未标记数据作为模块205的输入来计算输出预测,其中在生成输出预测时,网络825然后将先前计算的动态阈值应用于这些预测,以获得对于每一类别的威胁的动态计算的标签。
[0092]
作为示例,假设未标记数据被提供给图8中的模块205并且因此被提供给610。在被模块205和自动编码器612处理之后,网络825然后将基于这些未标记数据来计算输出预测802。然后,将动态阈值704应用于每一类别的威胁,从而生成对于每一类别的威胁的标签804。例如,参考输出预测802的第一行,因为对于该类别的威胁的动态阈值先前被确定为“0.8”,所以将仅保留大于“0.8”的输出预测值。此外,标签没有被四舍五入到整数“1”。相反,其预测值仅仅被保留而没有四舍五入。
[0093]
在本发明的实施例中,一旦获得针对未标记数据集的动态生成标签,分类器网络825然后可以通过最小化模型预测与包括(经标记数据的)静态标签和(未标记数据的)动态生成标签的整个数据集之间的二进制交叉熵损失来进一步训练。换句话说,当为了训练目的提供附加的经标记数据集时,模型预测与标记之间的二进制交叉熵损失将通过仅训练分类器网络825来进行最小化。类似地,当提供未标记数据集用于训练时,模型预测与动态标签(其经由上述步骤获得)之间的二进制交叉熵损失通过仅训练分类器网络825来进行最小化。应当注意,模块205和612被锁定/冻结以作为整个自学过程的一部分,并且仅训练分类器网络的权重。然后,可以训练分类器网络使用这种计算对于未标记数据的动态标签,然后将其与经标记数据一起用于进一步训练的自学过程进行收敛。
[0094]
一旦完成这一点,包括数据预处理模块205和经训练的警报模块610的系统可以用于检测和分类数据流量中的潜在恶意网络行为。
[0095]
图9a示出了示出根据本发明实施例的系统的实施方式的示例性框图。具体地,在训练阶段期间,系统包括ai代理910、hadoop文件系统数据库(hdfs)915、警报数据库905和各种现有威胁检测模型920。本领域技术人员将认识到,组件的布置决不是限制性的,而是用于说明本发明的示例性实施方式。在操作中,假设ai代理910包括具有经随机初始化的嵌入层的数据预处理模块205以及如前所述的未训练的警报模块210。接收到的网络流量数据
然后被提供给hdfs数据库915。现有模型然后访问hdfs数据库915,以预测存储在hdfs数据库915内的每个流量数据是否包括威胁。被识别为威胁的那些流量数据然后被移动到警报数据库905,警报数据库905可以被配置为在hadoop文件系统上运行。ai代理910然后从hdfs数据库915和警报数据库905获取原始数据,以便如上所述训练自己。在警报数据库905中没有相应警报的情况下,hdfs数据库915中的那些数据被视为未标记数据,而在警报数据库905中具有相应警报的情况下,那些数据被视为经标记数据。
[0096]
一旦ai代理910已经过训练,即,ai代理955现在包括数据预处理模块205和经训练的警报模块610,经训练的ai代理955现在被配置为基于接收到的网络流量数据为警报数据库905产生警报。存储在警报数据库905中的威胁然后可以被转发到可视化系统925以进一步处理。在本发明的实施例中,ai代理955可以被配置为具有对于每个警报类型的静态阈值,在宣布警报之前必须超过该静态阈值。在本发明的实施例中,ai代理955可以被配置为从警报数据库905和hdfs数据库915连续地接收输入,以便以与在训练过程期间如何计算动态阈值相同的方式计算更新的动态阈值,在宣布警报之前必须超过该动态阈值。在本发明的实施例中,ai代理955可以被配置为从警报数据库905和hdfs数据库915连续地接收输入,以便以在线方式使用新的数据进一步细化自己。
[0097]
当图9b中的系统950被实施时,发现它具有双重影响。首先,发现系统950拾取了其他现有威胁检测模型可能遗漏的威胁。例如,在一个小时的数据流量中,系统950能够检测到7个信标活动的实例,这些实例没有被任何其他现有模型拾取。这7个实例的间隔时间的频谱如图10所示。频谱示出了一些强峰值,暗示了间隔时间内统计上显著的频率分量,这是信标的讯号(tell-tale sign),其中特定源目的地ip地址对之间的连接是以规则的间隔进行的。此外,需要注意的是,这些曲线图中的每一个只使用了单个端口、单个八位字节大小,并且其频率分量与均值相差3个标准差。这种特性显示了所有已知的信标行为,并且显然是可疑的。
[0098]
其次,本发明有助于在接收到的数据流量中发现真正的未知。典型的信标活动将利用单个八位字节大小。然而,当上述约束放宽到具有2个八位字节大小的单个端口时,系统950检测到另外5个间隔时间实例,其频率分量与均值相差4个标准偏差,这在统计上更加显著。尽管2个八位字节大小的使用在传统信标活动中是非典型的,但是间隔时间中统计上显著的周期性是非常可疑的,并且可能指示新类型的信标活动或者甚至在源目的地ip地址对之间发生的多个信标活动。这5个间隔时间序列的频谱如图11所示。基于图11所示的曲线,可以看出这些数据流量可以被分类为信标。然而,到目前为止,我们的传统模型已经错过了这些潜在恶意网络行为。
[0099]
因而,发现本发明能够检测和分类其他现有模型没有拾取的可疑网络行为。它还能够在经标记的和未标记的数据流量中发现可能的新威胁行为。
[0100]
本领域技术人员可以确定许多其他的改变、替换、变化和修改,并且本发明旨在涵盖落入所附权利要求范围内的所有这些改变、替换、变化和修改。
再多了解一些

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

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

相关文献