CN109951491A - 网络攻击检测方法、装置、设备及存储介质 - Google Patents

网络攻击检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN109951491A
CN109951491A CN201910245176.6A CN201910245176A CN109951491A CN 109951491 A CN109951491 A CN 109951491A CN 201910245176 A CN201910245176 A CN 201910245176A CN 109951491 A CN109951491 A CN 109951491A
Authority
CN
China
Prior art keywords
flow
packet
data
comentropy
history
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910245176.6A
Other languages
English (en)
Inventor
邓之珺
陈虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910245176.6A priority Critical patent/CN109951491A/zh
Publication of CN109951491A publication Critical patent/CN109951491A/zh
Pending legal-status Critical Current

Links

Abstract

本发明公开了一种网络攻击检测方法、装置、设备及存储介质,属于网络技术领域。本发明提供了一种基于多维特征检测网络攻击的方案,通过采用集成学习的方式,通过多个分类模型,依据多个维度的特征分别判定数据流是否异常,再汇总多个维度的分类结果,来综合判决是否发生网络攻击,考虑的特征更加多样化,可以适应于现网多样化的业务形态,提高检测网络攻击的准确性。

Description

网络攻击检测方法、装置、设备及存储介质
技术领域
本发明涉及网络技术领域,特别涉及一种网络攻击检测方法、装置、设备及存储介质。
背景技术
随着网络技术的发展,互联网中发生网络攻击的事件越来越频繁,网络攻击导致服务器出现访问缓慢、连接中断等问题,导致服务器无法正常提供服务,因此,需要及时检测出网络攻击,以便应对和抵御网络攻击。
目前,网络攻击检测的过程通常是:人工依靠经验设置流量阈值,将流量阈值预存在计算机设备中。现网运行中,计算机设备会获取发送至服务器的数据流,统计数据流的流量,对流量与流量阈值进行比较,如果流量大于流量阈值,则确定服务器受到网络攻击。
通过上述方法检测网络攻击时,由于仅通过流量这一个维度的特征来检测是否发生网络攻击,会导致检测结果的准确性较差。
发明内容
本发明实施例提供了一种网络攻击检测方法、装置、设备及存储介质,能够解决相关技术中检测网络攻击的准确性较差的技术问题。所述技术方案如下:
一方面,提供了一种网络攻击检测方法,所述方法包括:
获取数据流的多个维度的特征;调用多个分类模型,每个分类模型用于根据数据流的一个维度的特征预测数据流是否为异常数据流;对于所述多个维度的特征中每个维度的特征,将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果;根据所述多个维度的分类结果,获取网络攻击的检测结果。
在一种可能的实现中,所述根据所述流量的最大的峰值与所述最小的谷值之间的差距,获取所述流量阈值,包括:获取所述流量的最大的峰值与所述差距的和,作为所述流量阈值;
在一种可能的实现中,所述根据所述包量的最大的峰值与所述最小的谷值之间的差距,获取所述包量阈值,包括:获取所述包量的最大的峰值与所述差距的和,作为所述包量阈值;
所述根据所述信息熵的最大的峰值与所述最小的谷值之间的差距,获取所述信息熵阈值,包括:获取所述信息熵的最大的峰值与所述差距的和,作为所述信息熵阈值。
另一方面,提供了一种网络攻击检测装置,所述装置包括:
获取模块,用于获取数据流的多个维度的特征;调用模块,用于调用多个分类模型,每个分类模型用于根据数据流的一个维度的特征预测数据流是否为异常数据流;处理模块,用于对于所述多个维度的特征中每个维度的特征,将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果;所述获取模块,用于根据所述多个维度的分类结果,获取网络攻击的检测结果。
可选地,所述处理模块,用于执行下述任意一项:
将所述数据流的流量输入流量或包量维度对应的第一分类模型,在所述第一分类模型中,根据流量基线,检测所述流量的突变点,根据多个流量的突变点,获取所述流量的累计和,当所述流量的累计和大于流量阈值时,输出第一分类结果,当所述流量的累计和不大于所述流量阈值时,输出第二分类结果,所述流量的突变点为超过所述流量基线的流量,所述流量的累计和为每个所述流量的突变点与所述流量基线之间的差距的和,所述第一分类结果表示所述数据流为异常数据流,所述第二分类结果表示所述数据流不为异常数据流;
将所述数据流的包量输入所述第一分类模型,在所述第一分类模型中,根据包量基线,检测所述包量的突变点,根据多个包量的突变点,获取所述包量的累计和,当所述包量的累计和大于包量阈值时,输出所述第一分类结果,当所述包量的累计和不大于所述包量阈值时,输出所述第二分类结果,所述包量的突变点为超过所述包量基线的包量,所述包量的累计和为每个所述包量的突变点与所述包量基线之间的差距的和。
可选地,所述处理模块,用于执行下述任意一项:
将所述数据流的斜率以及所述数据流的流量输入斜率维度对应的第二分类模型,在所述第二分类模型中,根据所述数据流的流量查询级别信息,得到所述数据流的流量对应的斜率阈值,所述数据流的斜率为单位时间内数据流的流量的增长率或包量的增长率,所述级别信息包括数据流的流量与斜率阈值之间的对应关系;
当所述斜率大于斜率阈值时,输出第一分类结果,所述第一分类结果表示所述数据流为异常数据流;
当所述斜率不大于所述斜率阈值时,输出第二分类结果,所述第二分类结果表示所述数据流不为异常数据流。
可选地,所述处理模块,用于执行下述任意一项:
将所述数据流的信息熵输入信息熵维度对应的第三分类模型,在所述第三分类模型中,根据信息熵基线,检测所述信息熵的突变点,所述信息熵的突变点为超过所述信息熵基线的信息熵;
根据多个信息熵的突变点,获取所述信息熵的累计和,所述信息熵的累计和为每个所述信息熵的突变点与所述信息熵基线之间的差距的和;
当所述信息熵的累计和大于信息熵阈值时,输出第一分类结果,所述第一分类结果表示所述数据流为异常数据流;
当所述信息熵的累计和不大于所述信息熵阈值时,输出第二分类结果,所述第二分类结果表示所述数据流不为异常数据流。
可选地,所述处理模块,用于执行下述任意一项:
将所述数据流的包长分布向量输入包长分布维度对应的第四分类模型,在所述第四分类模型中,获取所述数据流的包长分布向量与历史数据流的包长分布向量的向量差距,所述包长分布向量中每一个位对应一个包长区间,每个位的取值为所述数据流中包长处于对应包长区间的包量;
当所述向量差距超过向量差距阈值时,输出第一分类结果,所述第一分类结果表示所述数据流为异常数据流;
当所述向量差距未超过所述向量差距阈值时,输出第二分类结果,所述第二分类结果表示所述数据流不为异常数据流。
可选地,所述处理模块,用于执行下述任意一项:
将所述数据流的多个数据包的载荷输入载荷维度对应的第五分类模型,在所述第五分类模型中,根据所述多个数据包的载荷,确定所述多个数据包中的业务数据包;根据所述多个数据包中所述业务数据包的数量,获取第一比例,当所述第一比例大于第一比例阈值时,输出第一分类结果,当所述第一比例不大于所述第一比例阈值时,输出第二分类结果,所述第一比例为所述业务数据包的数量与所述多个数据包的数量的比值,所述第一分类结果表示所述数据流为异常数据流,所述第二分类结果表示所述数据流不为异常数据流;
将所述数据流的多个数据包的载荷输入载荷维度对应的第五分类模型,在所述第五分类模型中,根据所述多个数据包的载荷,确定所述多个数据包中的异常数据包;根据所述多个数据包中所述异常数据包的数量,获取第二比例,当所述第二比例大于第二比例阈值时,输出第一分类结果,当所述第二比例不大于所述第二比例阈值时,输出第二分类结果,所述第二比例为所述异常数据包的数量与所述多个数据包的数量的比值。
可选地,所述处理模块,用于:对于所述多个数据包中的每个数据包,从所述载荷中提取排在前预设数目的字节,作为载荷特征;当所述载荷特征属于业务特征库时,确定所述数据包为所述业务数据包;或者,对所述载荷特征进行自然语言处理,得到词向量,当所述词向量与词向量库中的任一词向量之间的相似度大于相似度阈值时,确定所述数据包为所述业务数据包。
可选地,所述获取模块,用于执行下述至少一项:
获取所述数据流在当前时间窗的数据包的数据量总和与所述当前时间窗的时长之间的比值,得到所述数据流的流量;
获取所述数据流在当前时间窗的数据包的数量与所述当前时间窗的时长之间的比值,得到所述数据流的包量;
获取所述数据流在第一统计时间段的第一流量以及所述数据流在第二统计时间段的第二流量,根据所述第一流量与所述第二流量之间的差距,获取所述数据流的斜率,所述第一统计时间段以及所述第二统计时间段为所述当前时间窗中两个相邻的统计时间段;
获取所述数据流在第一统计时间段的第一包量以及所述数据流在第二统计时间段的第二包量,根据所述第一包量与所述第二包量之间的差距,获取所述数据流的斜率;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的源互联网协议地址IP地址,得到多个源IP地址,根据每个源IP地址在所述多个源IP地址中的出现次数,获取所述每个源IP地址的出现概率,根据所述每个源IP地址的出现概率,获取源IP地址的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的源端口号,得到多个源端口号,根据每个源端口号的出现次数,获取所述每个源端口号的出现概率,根据所述每个源端口号的出现概率,获取源端口号的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的源IP地址与源端口号之间的比值,得到多个比值;根据所述多个比值中每个比值的出现次数,获取所述每个比值的出现概率,根据所述每个比值的出现概率,获取比值的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的目的端口号,得到多个目的端口号,根据每个目的端口号的出现次数,获取所述每个目的端口号的出现概率,根据所述每个目的端口号的出现概率,获取目的端口号的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的包长,对于包长分布向量的每个位,根据所述每个数据包的包长,获取包长处于所述位对应的包长区间的包量,将所述位置位为所述包量,所述包长分布向量中每一个位对应一个包长区间,每个位的取值为所述数据流中包长处于对应包长区间的包量;
获取所述数据流在当前时间窗的多个数据包中每个数据包的载荷。
可选地,所述获取模块,还用于执行下述至少一项:
获取历史数据流的流量的标准差,根据所述流量的标准差,获取流量阈值,所述历史数据流的目的IP地址与所述数据流的目的IP地址相同;
获取历史数据流的包量的标准差,根据所述包量的标准差,获取包量阈值;
获取历史数据流的信息熵的标准差,根据所述信息熵的标准差,获取信息熵阈值;
根据历史数据流中的多个数据包的载荷,获取多种历史载荷特征,从所述多种历史载荷特征中选择目标历史载荷特征,存入业务特征库;
根据历史数据流中的多个数据包的历史载荷,获取多种历史载荷特征,对所述多种历史载荷特征进行自然语言处理,得到多个历史词向量,从所述多个历史词向量中选择目标历史词向量,存入词向量库。
可选地,所述获取模块,用于执行下述至少一项:
获取所述历史数据流的流量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取所述统计周期的平均值与标准差的和,作为所述统计周期的流量基线的最大值,获取所述统计周期的平均值与标准差的差,作为所述统计周期的流量基线的最小值;从所述多个统计周期的流量基线中,选择流量的最大的峰值以及最小的谷值;根据所述流量的最大的峰值与所述最小的谷值之间的差距,获取所述流量阈值;
获取所述历史数据流的包量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取所述统计周期的平均值与标准差的和,作为所述统计周期的包量基线的最大值,获取所述统计周期的平均值与标准差的差,作为所述统计周期的包量基线的最小值;从所述多个统计周期的包量基线中,选择包量的最大的峰值以及最小的谷值;根据所述包量的最大的峰值与所述最小的谷值之间的差距,获取所述包量阈值;
获取所述历史数据流的信息熵在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取所述统计周期的平均值与标准差的和,作为所述统计周期的信息熵基线的最大值,获取所述统计周期的平均值与标准差的差,作为所述统计周期的信息熵基线的最小值;从所述多个统计周期的信息熵基线中,选择信息熵的最大的峰值以及最小的谷值;根据所述信息熵的最大的峰值与所述最小的谷值之间的差距,获取所述信息熵阈值。
可选地,所述获取模块,用于执行下述至少一项:
对于所述多种历史载荷特征中的每种历史载荷特征,获取出现所述历史载荷特征的数据包数量,当所述数据包数量超过数量阈值时,将所述历史载荷特征作为所述目标历史载荷特征;
对于所述多种历史载荷特征中的每种历史载荷特征,获取所述历史载荷特征的占比,当所述历史载荷特征的占比超过占比阈值时,将所述历史载荷特征作为所述目标历史载荷特征,所述占比为具有所述历史载荷特征的数据包的数量与所述历史数据流中多个数据包的数量之间的比值;
对于所述多种历史载荷特征中的每种历史载荷特征,获取所述历史载荷特征的出现时长,当所述历史载荷特征的出现时长超过出现时长阈值时,将所述历史载荷特征作为所述目标历史载荷特征;
对于所述多个历史词向量中的每个历史词向量,获取所述历史词向量的占比,对所述多个历史词向量按照占比的大小进行排序,得到排序结果,从所述排序结果中选取排在前预设位数的历史词向量,作为所述目标历史词向量,任一历史词向量的占比为历史词向量为所述历史词向量的数据包数量与所述历史数据流中多个数据包的数量之间的比值;
对于所述多个历史词向量中的每个历史词向量,获取历史词向量为所述历史词向量的数据包数量,对所述多个历史词向量按照数据包数量的大小进行排序,得到排序结果,从所述排序结果中选取排在前预设位数的历史词向量,作为所述目标历史词向量。
可选地,所述获取模块,用于:根据每个维度的权重,对所述多个维度的分类结果加权求和,得到加权和值;当所述加权和值大于加权和值阈值时,获取第一检测结果,所述第一检测结果表示所述数据流的目的地址受到网络攻击;当所述加权和值不大于加权和值阈值时,获取第二检测结果,所述第二检测结果表示所述数据流的目的地址受到网络攻击。
另一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个易失性或非易失性存储器,所述一个或多个易失性或非易失性存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现上述网络攻击检测方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述网络攻击检测方法。
本发明实施例提供的技术方案带来的有益效果至少包括:本实施例提供的方法,提供了一种基于多维特征检测网络攻击的方案,通过采用集成学习的方式,通过多个分类模型,依据多个维度的特征分别判定数据流是否异常,再汇总多个维度的分类结果,来综合判决是否发生网络攻击,考虑的特征更加多样化,可以适应于现网多样化的业务形态,提高检测网络攻击的准确性。
附图说明
图1是本发明实施例提供的一种网络攻击检测方法的实施环境的架构图;
图2是本发明实施例提供的一种网络攻击检测方法的流程图;
图3是本发明实施例提供的一种网络攻击检测方法的系统架构图;
图4是本发明实施例提供的一种网络攻击检测装置的结构示意图;
图5是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
以下对本申请的术语进行简介:
分布式拒绝服务(全称:Distributed Denial of Service,简称:DDoS)攻击是一种用来使服务器瘫痪的网络攻击手段。DDoS攻击的本质是利用分布式的客户端,向服务器发起大量看似合法的请求,从而消耗或者长期占用服务器的大量资源,达到让服务器拒绝向合法用户提供服务的目的。DDoS攻击的方式有很多种,主要可以分为两类:资源消耗型和带宽拥塞型。资源消耗型的DDoS攻击是指利用合理的服务请求来占用过多的服务资源,从而使合法用户服务请求无法得到响应;带宽拥塞型DDoS攻击是指通过短时间内向服务器发送海量数据包,阻塞数据中心的上行链路的带宽,造成正常业务流量陡降,从而达到拒绝服务的目的。
欧式距离:即欧几里得度量(Euclidean Metric),也称欧氏距离。是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。m为正整数。
余弦相似度:通过测量两个向量的夹角的余弦值,来度量两个向量之间的相似性。如果两个向量的方向相同,两个向量的余弦相似度的值为1;如果两个向量的夹角为90°,两个向量的余弦相似度的值为0;如果两个向量的方向相反,余弦相似度的值为-1。
信息熵:描述变量的不确定性,可以用于度量变量的取值集合的离散度进行度量,从而反映变量取值的混乱程度。一个集合中的元素越有序且越集中,则信息熵越小,一个集合中的元素越无序且越分散,则信息熵越大。
集成学习:是指组合多个弱监督模型以期得到一个更好更全面的强监督模型的算法。集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。对于多维特征通过训练若干个个体学习器,通过一定的结合策略,可以最终形成一个强学习器,以达到博采众长的目的。
图1是本发明实施例提供的一种网络攻击检测方法的实施环境的架构图,该实施环境包括计算机设备101以及网络设备102,计算机设备101以及网络设备102通过网络连接,计算机设备101可以获取发送至网络设备102的数据流,根据数据流,检测网络设备102是否受到网络攻击。计算机设备101可以是服务器,网络设备102可以是服务器、数据中心、路由器、交换机等任意设备。
图2是本发明实施例提供的一种网络攻击检测方法的流程图,如图2所示,该方法包括由计算机设备执行的步骤201至205:
201、计算机设备获取发送至目的地址的数据流。
本实施例可以应用于检测DDoS攻击的场景中,可以检测出任一目的地址是否发生了DDoS攻击。当然也可以应用检测DDoS攻击以外的网络攻击中,例如应用于检测蠕虫繁殖、端口扫描、突发访问请求等场景中,对此不做限定。
可选地,计算机设备获取到数据流后,可以对数据流进行大流量检测,当数据流为大流量时,则直接判定发生了网络攻击,另外可以进行告警,而无需执行下述步骤202等检测逻辑,从而简化流程,缩短数据链路,减少计算量。当数据流不为大流量时,则执行下述步骤202等检测逻辑。关于大流量检测的具体过程,可以获取数据流的流量,当数据流的流量大于第一流量阈值,则确定数据流为大流量。当数据流的流量不大于第一流量阈值,则确定数据流不为大流量。其中,第一流量阈值可以根据经验或业务场景设置,第一流量阈值可以预存在计算机设备中。
202、计算机设备获取数据流的多个维度的特征。
在一些可能的实施例中,计算机设备可以采用滑动窗口机制,根据该数据流以及当前时间窗,获取数据流在当前时间窗内的数据包,根据该数据流在当前时间窗的多个数据包,获取数据流的多个维度的特征。
其中,滑动时间窗是指每隔滑动间隔滑动一次当前时间窗的机制。随着时间窗的滑动,数据流在时间窗中的数据包会发生更新,计算机设备会实时根据数据流当前处于时间窗内的数据包进行网络攻击检测,以保证检测的实时性。时间窗的长度可以根据需求、经验或实验确定。另外,滑动间隔可以小于时间窗的长度,则上一个时间窗与下一个时间窗会具有重叠部分,避免根据时间窗内的数据包提取特征时产生特征突变的情况。
以时间窗的长度为10秒,预设时长为2秒为例,假设要检测是否发生网络攻击的目的互联网协议(全称:Internet Protocol Address,简称:IP)地址为IP地址1,当前时间窗为0秒到10秒,计算机设备会根据0秒到10秒内发送至IP地址1的数据包进行检测,当经过2秒后,时间窗滑动至2秒至12秒,计算机设备会根据2秒至12秒内发送至IP地址1的数据包进行检测。
在一些可能的实施例中,步骤201可以包括下述步骤2011至步骤2015中的至少两项。
2011、计算机设备获取数据流的流量或包量。
流量可以为单位时间内数据流的比特数量,流量的单位可以是位每秒(全称:bitsper second,简称:bps)、千位每秒(全称:Kilo bits pro second,简称:Kbps)、百万位每秒(全称:Million bits pro second,简称:Mbps)等。作为示例,计算机设备可以根据该数据流在当前时间窗的多个数据包,获取该多个数据包的数据量总和,获取该多个数据包的数据量与该当前时间窗的时长之间的比值,得到该数据流的流量。
包量可以为每秒传输的数据包的数量,即包每秒(全称:Packets per Second,简称:PPS)。作为示例,计算设备可以获取数据流在当前时间窗的数据包的数量与当前时间窗的时长的比值,作为数据流的包量。
2012、计算机设备获取数据流的斜率。
在一种可能的实现中,计算机设备可以获取单位时间内流量的增长率,作为斜率。作为示例,计算机设备可以获取该数据流在第一统计时间段的第一流量以及数据流在第二统计时间段的第二流量,根据该第一流量与该第二流量之间的差距,获取该数据流的斜率,例如,可以获取第一流量与该第二流量之间的差距与统计时间段的时长之间的比值,作为数据流的斜率。
其中,第一统计时间段以及第二统计时间段为该当前时间窗中两个相邻的时间段,第一统计时间段可以是前一个统计时间段,第二统计时间段可以是后一个统计时间段。第一流量是指数据流在第一统计时间段的流量,第二流量是指数据流在第二统计时间段的流量。
例如,假设当前时间窗为0秒到10秒,第一统计时间段可以是0秒到2秒,第二统计时间段可以是2秒到4秒,第一流量可以是数据流在0秒到2秒的流量,第二流量可以是数据流在2秒到4秒的流量,可以获取2秒到4秒的流量与0秒到2秒的流量之间的差距,获取该差距与2秒的比值,作为斜率。
在另一种可能的实现中,计算机设备可以获取单位时间内包量的增长率,作为斜率。作为示例,计算机设备可以获取该数据流在第一统计时间段的第一包量以及该数据流在第二统计时间段的第二包量,根据该第一包量与该第二包量之间的差距,获取该数据流的斜率,例如,可以获取第一包量与该第二包量之间的差距与统计时间段的时长之间的比值,作为数据流的斜率。
2013、计算机设备获取数据流的信息熵。
步骤2013包括而不限于下述实现方式一至实现方式四中的至少一项。
实现方式一、获取数据流的源IP地址的信息熵。
作为示例,可以根据该数据流在当前时间窗的多个数据包,获取该多个数据包中每个数据包的源IP地址,得到多个源IP地址,根据每个源IP地址的出现次数,获取每个源IP地址的出现概率,根据每个源IP地址的出现概率,获取该源IP地址的信息熵,作为该数据流的信息熵。
其中,任一源IP地址的出现次数是指源IP地址为该源IP地址的数据包的总数量,例如,假设多个数据包中有N个数据包的源IP地址为源IP地址i,则记源IP地址i的出现次数为N,i和N为正整数。出现概率可以为出现次数与时间窗内的多个数据包的总数量的比值。作为示例,信息熵可以通过下式(1)计算:
其中,log表示取对数运算,H(x)表示信息熵,∑为求和符号,S表示时间窗内数据包的总数量,S为正整数,IPi表示源IP地址i出现的次数,IPi/S表示源IP地址i出现的概率,H大于或等于0,IPi/S大于或等于0且小于或等于1。
DDoS攻击发生时,通常会有大量的不同主机对设备进行联合攻击,则由于不同主机的IP地址不同,则不同主机的数据包的源IP地址不同,则数据流中源IP地址的不确定性会极大地增加,即源IP的熵值增加。而从上述计算信息熵的公式可以看出,当数据流的源IP地址相同时,信息熵取得最小值0,表示数据流的源IP地址的不确定性小,有序且集中,当数据流的源IP地址互不相同时,信息熵取得最大值,表示数据流的源IP地址的不确定性大,数据流的源IP地址的无序且混乱,表明发生攻击的概率高,由此可见,信息熵这种特征可以充分反映DDoS攻击的特性,利用信息熵这种特征来检测DDoS攻击,可以有效提高检测的准确性。
实现方式二、获取数据流的源端口号的信息熵。
作为示例,可以根据该数据流在当前时间窗的多个数据包,获取该多个数据包中每个数据包的源端口号,得到多个源端口号,根据每个源端口号的出现次数,获取每个源端口号的出现概率,根据每个源端口号的出现概率,获取该源端口号的信息熵,作为该数据流的信息熵。
实现方式三、获取数据流的源IP地址与源端口号的比值的信息熵。
作为示例,可以根据该数据流在当前时间窗的多个数据包,获取该多个数据包中每个数据包的源IP地址与源端口号之间的比值;根据每个比值的出现次数,获取每个比值的出现概率,根据每个比值的出现概率,获取该比值的信息熵,作为该数据流的信息熵。
通过实现方式三,对于同一主机通过开启多个端口发送数据流以进行攻击的场景中,由于同一主机发送的数据流的源IP地址固定为该主机的IP地址,而同一主机中不同端口发送的数据流的源端口号不同,通过实现方式三获取的信息熵,可以恰好反映这种场景的DDoS攻击的特性,从而有效提高检测这种场景的DDoS攻击的准确性。
实现方式四、获取数据流的目的端口号的信息熵。
作为示例,可以根据该数据流在当前时间窗的多个数据包,获取该多个数据包中每个数据包的目的端口号,得到多个目的端口号,根据每个目的端口号的出现次数,获取每个目的端口号的出现概率,根据每个目的端口号的出现概率,获取该目的端口号的信息熵,作为该数据流的信息熵。
实现方式二、实现方式三、实现方式四的具体过程与实现方式一同理,在此不做赘述。
2014、计算机设备获取数据流的包长分布向量。
可以根据区间间隔,将包长的取值范围划分为多个包长区间,包长分布向量中每一个位对应一个包长区间,每个位的取值为数据流中包长处于对应包长区间的包量。其中,每个包长区间可以称为一个包长分段,每个包长区间的索引号可以称为一个分段值。
以数学的方式表述,包长分布向量可以有N个位,N个位中第i个位可以表示包长区间i,如果第i个位的取值为M,表示数据流中包长处于包长区间i的包量为M。其中,i为大于或等于0的整数,i小于或等于N,M为正整数。
区间间隔可以根据需求、经验或实验确定,例如,区间间隔可以为150。以区间间隔为150为例,可以将包长的取值范围(0,1500)按照150划分为10个包长区间,向量的第1位对应包长区间(0,150),向量的第1位的取值为包长处于(0,150)的包量,向量的第2位对应包长区间(150,300),向量的第2位的取值为包长处于(150,300)的包量,以此类推,向量的第10位对应包长区间(1350,1500),向量的第10位的取值为包长处于(1350,1500)的包量。
关于获取包长分布向量的过程,可以根据数据流处于时间窗内的多个数据包,获取该多个数据包中每个数据包的包长,对于包长分布向量的每个位,根据该每个数据包的包长,获取包长处于该位对应的包长区间的包量,将该位置为该包量。例如,对于包长分布向量的第0位,可以获取数据流中包长处于包长区间(0,150)的包量,假设为M包每秒,则将包长分布向量的第0位置为M,M为正整数或0。
2015、计算机设备获取数据流中的多个数据包的载荷。
作为示例,可以根据该数据流在当前时间窗的多个数据包,获取该多个数据包中每个数据包的载荷。
需要说明的一点是,上述步骤2011至步骤2015可以采用并行的方式执行,例如在执行步骤2011的同时,执行步骤2012。通过并发提取多维特征,可以提高提取特征的速度。当然,也可以采用顺序的方式执行,本实施例对此不做限定。
需要说明的一点是,上述步骤2011至步骤2015可以由同一计算机设备执行,也可以由不同计算机设备执行,例如可以由网络攻击检测系统中的不同节点设备执行,比如说,节点设备A执行步骤2011,节点设备B执行步骤2012,依次类推,通过由不同节点设备执行不同步骤,可以分担提取特征的运算量。
202、计算机设备调用多个分类模型。
本实施例中,计算机设备可以采用集成学习的方式,基于多个维度的特征,采用多个分类器分别对流量进行检测,通过汇总多个分类器的分类结果,来判决是否发生网络攻击。
每个分类模型用于根据数据流的一个维度的特征预测数据流是否为异常数据流。每个分类模型可以是二分类模型,具体来说,可以将数据流按照是否异常分为两类,一类是异常数据流,一类是非异常数据流,例如是正常数据流。相应地,分类模型的分类结果分为两种,一种分类结果表示数据流为异常数据流,另外一种结果表示数据流不为异常数据流,为了区分描述这两种结果,在此分别描述为第一分类结果以及第二分类结果。第一分类结果表示数据流为异常数据流,第二分类结果表示数据流不为异常数据流。第一分类结果以及第二分类结果可以通过不同的数据来表示,举例来说,第一分类结果可以是1,第二分类结果可以是0。
204、对于多个维度的特征中每个维度的特征,计算机设备将该维度的特征输入多个分类模型中该维度对应的分类模型,输出该维度的分类结果。
作为示例,步骤204可以包括下述步骤2041至步骤2045中的至少两项。
2041、计算机设备将数据流的流量或包量输入第一分类模型,输出流量或包量维度的分类结果。
第一分类模型是指多个分类模型中流量或包量维度对应的分类模型。在一些可能的实施例中,在第一分类模型中对流量进行检测的过程可以包括下述步骤一至步骤五。
步骤一、根据流量基线,检测流量的突变点。
流量基线是指流量的正常波动范围。在一种可能的实现中,可以根据历史数据流的流量,获取流量基线。具体来说,可以获取历史数据流的流量的平均值以及标准差,可以获取平均值与标准差的和,作为正常波动范围的最大值,可以获取平均值与标准差的差,作为正常波动范围的最小值,将正常波动范围的最大值与正常波动范围的最小值组成的范围作为流量基线。
历史数据流的目的IP地址与该数据流的目的IP地址相同,历史数据流的生成时间点早于数据流的时间点,由于历史数据流是与现网的数据流发送至同一目的IP地址的数据流,因此根据该历史数据流来获取流量基线,得到的流量基线可以视为目的IP地址在流量维度的特征画像,可以保证流量基线与目的IP地址的实际流量波动情况吻合,例如,对于一些业务繁忙的主机,例如存储了热点数据的主机来说,该主机的流量通常较大,则根据该主机的历史数据流,可以计算出幅值较高的流量基线,则根据该流量基线,在现网中检测该主机的流量的突变点时,可以避免误将正常的业务流量检测为突变点的情况。同理地,对于一些业务空闲的主机来说,该主机的流量通常较小,则根据该主机的历史数据流,可以计算出幅值较低的流量基线。从上述举例可以看出,通过这种方式检测异常流量,考虑了实际业务场景,灵活性高,准确性高。
以数学的方式表述,流量基线可以通过下式(2)计算:
其中,表示平均值,δ表示标准差。
标准差可以通过下式(3)计算:
其中,X表示历史数据流的流量,i表示流量的索引,i为正整数,n为获取到的流量的总数量,∑为求和符号。
作为示例,可以采集目的IP地址在一天中每分钟的流量,由于1天共有1440分钟,则可以得到1440个流量,可以获取1440个流量的平均值,获取1440个流量的标准差,根据该平均值与该标准差,采用上式(2)获取流量基线。
流量的突变点为超过该流量基线的流量。例如,假设某一时刻的流量为500GB(GB为十亿字节),流量基线为400GB,则500GB为流量的突变点。关于检测流量的突变点的过程。作为示例,第一分类模型中可以预存流量基线,每当第一分类模型接收到输入的任一流量时,可以判断该流量是否超过流量基线,当流量超过流量基线时,则将流量记为突变点,当流量没有超过流量基线时,则继续判断下一个输入的流量是否超过流量基线。
步骤二、根据多个流量的突变点,获取该流量的累计和。
流量的累计和可以为多个流量的突变点的差距之和。在一种可能的实现中,第一分类模型可以采用实时累加的方式,每当检测出一个流量的突变点,则对该突变点的差距与已获取的差距之和进行累加,来获取流量的累计和。
具体来说,可以当检测出第一个突变点时,获取该第一个突变点的差距。当检测出第二个突变点时,获取第二个突变点的差距,再获取第二个突变点的差距与第一个突变点的差距的和,得到两个突变点的差距之和。当检测出第三个突变点时,获取第三个突变点的差距,再获取第三个突变点的差距与两个突变点的差距的和,得到三个突变点的差距之和。以此类推,当得到预设数目个突变点的差距之和时,将该预设数目个突变点的差距之和作为累计和。其中,该预设数目可以根据需求、经验或实验确定,例如可以是5。
当然,实时累加的方式仅是实例,也可以每当检测出一个突变点时,缓存该突变点的差距,同时,可以判断当前检测出的突变点的数目是否达到预设数目,当突变点的数目达到预设数目时,则获取已缓存的预设数目的突变点的差距之和,得到累计和。
步骤三、对流量的累计和与流量阈值进行比较。
在一些可能的实施例中,可以获取历史数据流的流量的标准差,根据流量的标准差,获取流量阈值。作为示例,流量阈值的获取过程可以包括下述步骤A至步骤D:
步骤A、获取历史数据流的流量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值。
对于多个统计周期中的任一统计周期,可以获取历史数据流在该统计周期的流量,得到该统计周期的多个流量,可以获取该统计周期的多个流量的标准差,以及该统计周期的多个流量的平均值。举例来说,可以将7天作为获取流量阈值的周期,将1天作为一个统计周期,对于7天中的每1天,可以获取历史数据流在1天的流量,得到1天中的1440个流量,可以获取1440个流量的标准差,以及1440个流量的平均值。
步骤B、对于任一个统计周期,获取统计周期的平均值与标准差的和,作为该统计周期对应的流量基线的最大值,获取统计周期的平均值与标准差的差,作为统计周期对应的流量基线的最小值。
以数学的方式表述,统计周期对应的流量基线的最大值为统计周期对应的流量基线的最小值为其中表示平均值,δ表示标准差。
举例来说,对于7天中的每1天,可以获取1天的1440个流量的平均值与这1天的1440个流量的标准差的和,作为1天的流量基线的最大值,获取1天的1440个流量的平均值与这1天的1440个流量的标准差的差,作为1天的流量基线的最小值。
步骤C、从多个统计周期的流量基线中,选择流量的最大的峰值以及最小的谷值。
任意统计周期的流量基线会具有峰值,峰值即为流量基线的最大值,可以根据每个统计周期的流量基线的峰值,从多个统计周期的流量基线中选择最大的峰值。举例来说,7天中第1天的流量基线的峰值可以记为7天中第2天的流量基线的峰值可以记为以此类推,7天中第7天的流量基线的峰值可以记为可以从 中选择最大值,作为流量的最大的峰值。
同理地,任意统计周期的流量基线会具有谷值,谷值即为流量基线的最小值,可以根据每个统计周期的流量基线的谷值,从多个统计周期的流量基线中选择最小的谷值。举例来说,7天中第1天的流量基线的谷值可以记为7天中第2天的流量基线的谷值可以记为以此类推,7天中第7天的流量基线的谷值可以记为可以从 中选择最小值,作为流量的最小的谷值。
步骤D、根据流量的最大的峰值与最小的谷值之间的差距,获取流量阈值。
在一些可能的实施例中,可以获取流量的最大的峰值与最小的谷值之间的差距,获取流量的最大的峰值与差距的和,将和作为流量阈值。
举例来说,7天中流量的最大的峰值可以记为Emax1,7天中流量的最小的谷值可以记为Emin1,流量阈值可以记为S1,则S1=Emax1+(Emax1-Emin1)。其中,Emax1和Emin1为正数,Emax1大于Emin1
需要说明的一点是,在一些可能的实施例中,计算机设备可以为每个IP地址制定不同的流量阈值。具体来说,计算机设备可以预存至少一个IP地址,对于任一IP地址,可以根据目的IP地址为该IP地址的历史数据流,执行上述步骤A至步骤D,当得到流量阈值后,可以对该流量阈值与该IP地址关联存储,得到流量阈值与IP地址之间的对应关系。在现网分析时,当获取到任一数据流时,可以根据该数据流的目的IP地址,从流量阈值与IP地址之间的对应关系中,获取该目的IP地址对应的流量阈值。
需要说明的另一点是,上述步骤A至步骤D可以预先执行,例如在执行步骤201之前执行。另外,步骤A至步骤D可以离线执行。另外,步骤A至步骤D的执行主体与步骤201至步骤205的执行主体可以相同或不同。
从上述描述可以看出,本实施例提供了一种结合历史数据流的流量振幅(即历史流量的波动范围),来获取用于现网分析的流量阈值的方式。在提供业务的过程中,随着业务场景的不断变化,历史数据流的流量通常会不断发生波动,而通过上述方式来获取流量阈值,流量阈值可以随着历史数据流的流量波动而自适应性地变化,从而保证流量阈值的大小符合当前的业务场景。通过这种基于历史流量来获取动态的流量阈值的方式,相对于人工设置固定的静态的流量阈值来说,可以极大地提高流量阈值的准确性,从而保证基于流量阈值检测异常流量的准确性。
步骤四、当流量的累计和大于流量阈值时,第一分类模型输出第一分类结果。
步骤五、当流量的累计和不大于流量阈值时,第一分类模型输出第二分类结果。
通过上述步骤一至步骤五,提供了一种通过累积和(Cumulative Sum,CUSUM)算法来进行流量检测的方式,通过对多个突变点的差距进行累计,对累计和与流量阈值进行比较,相对于对单个突变点与流量阈值进行比较或者对单个流量与流量阈值进行比较来说,可以放大攻击流量与正常流量的差异,及时检测出攻击流量,从而提高网络攻击的检测的精确性。
在一些可能的实施例中,第二分类模型对包量进行检测的过程可以包括下述步骤一至步骤五。
步骤一、根据包量基线,检测包量的突变点。
包量基线是指包量的正常波动范围。在一种可能的实现中,可以根据历史数据流的包量,获取包量基线。具体来说,可以获取历史数据流的包量的平均值以及标准差,可以获取平均值与标准差的和,作为包量的正常波动范围的最大值,可以获取平均值与标准差的差,作为包量的正常波动范围的最小值,将正常波动范围的最大值与正常波动范围的最小值组成的范围作为包量基线。
包量基线可以视为目的IP地址在包量维度的特征画像。包量的突变点为超过该包量基线的包量。例如,假设包量为5万包每秒,包量基线为4万包每秒,则5万包每秒为包量的突变点。关于检测包量的突变点的过程,作为示例,第一分类模型中可以预存包量基线,每当第一分类模型接收到输入的任一包量时,可以判断该包量是否超过包量基线,当包量超过包量基线时,则将包量记为包量的突变点,当包量没有超过包量基线时,则继续判断下一个输入的包量是否超过包量基线。
步骤二、根据多个包量的突变点,获取该包量的累计和。
包量的累计和可以为多个包量的突变点的差距之和。在一种可能的实现中,第一分类模型可以采用实时累加的方式,每当检测出一个突变点,则对该突变点的差距与已获取的差距之和进行累加,来获取包量的累计和。
步骤三、对包量的累计和与包量阈值进行比较。
在一些可能的实施例中,可以获取历史数据流的包量的标准差,根据包量的标准差,获取包量阈值。作为示例,包量阈值的获取过程可以包括下述步骤A至步骤D:
步骤A、获取历史数据流的包量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值。
对于多个统计周期中的任一统计周期,可以获取历史数据流在该统计周期的包量,得到该统计周期的多个包量,可以获取该统计周期的多个包量的标准差,以及该统计周期的多个包量的平均值。举例来说,可以将7天作为获取包量阈值的周期,将1天作为一个统计周期,对于7天中的每1天,可以获取历史数据流在1天的包量,得到1天中的1440个包量,可以获取1440个包量的标准差,以及1440个包量的平均值。
步骤B、对于任一个统计周期,获取统计周期的平均值与标准差的和,作为统计周期的包量基线的最大值,获取统计周期的平均值与标准差的差,作为统计周期的包量基线的最小值。
以数学的方式表述,统计周期的包量基线的最大值为统计周期的包量基线的最小值为其中表示平均值,δ表示标准差。
举例来说,对于7天中的每1天,可以获取1天的1440个包量的平均值与这1天的1440个包量的标准差的和,作为1天的包量基线的最大值,获取1天的1440个包量的平均值与这1天的1440个包量的标准差的差,作为1天的包量基线的最小值。
步骤C、从多个统计周期的包量基线中,选择包量的最大的峰值以及最小的谷值。
任意统计周期的包量基线会具有峰值,峰值即为包量基线的最大值,可以根据每个统计周期的包量基线的峰值,从多个统计周期的包量基线中选择最大的峰值。举例来说,7天中第1天的包量基线的峰值可以记为7天中第2天的包量基线的峰值可以记为以此类推,7天中第7天的包量基线的峰值可以记为可以从 中选择最大值,作为包量的最大的峰值。
同理地,任意统计周期的包量基线会具有谷值,谷值即为包量基线的最小值,可以根据每个统计周期的包量基线的谷值,从多个统计周期的包量基线中选择最小的谷值。举例来说,7天中第1天的包量基线的谷值可以记为7天中第2天的包量基线的谷值可以记为以此类推,7天中第7天的包量基线的谷值可以记为可以从 中选择最小值,作为包量的最小的谷值。
步骤D、根据包量的最大的峰值与最小的谷值之间的差距,获取包量阈值。
在一些可能的实施例中,可以获取包量的最大的峰值与最小的谷值之间的差距,获取包量的最大的峰值与差距的和,将和作为包量阈值。
举例来说,7天中包量的最大的峰值可以记为Emax2,7天中包量的最小的谷值可以记为Emin2,包量阈值可以记为S2,则S2=Emax2+(Emax2-Emin2)。其中,Emax2和Emin2为正数,Emax2大于Emin2
需要说明的一点是,在一些可能的实施例中,计算机设备可以为每个IP地址制定不同的包量阈值。具体来说,计算机设备可以预存至少一个IP地址,对于任一IP地址,可以根据目的IP地址为该IP地址的历史数据流,执行上述步骤A至步骤D,当得到包量阈值后,可以对该包量阈值与该IP地址关联存储,得到包量阈值与IP地址之间的对应关系。在现网分析时,当获取到任一数据流时,可以根据该数据流的目的IP地址,从包量阈值与IP地址之间的对应关系中,获取该目的IP地址对应的包量阈值。
需要说明的一点是,上述步骤A至步骤D可以预先执行,例如在执行步骤201之前执行。另外,步骤A至步骤D可以离线执行。另外,步骤A至步骤D的执行主体与步骤201至步骤205的执行主体可以相同或不同。
从上述描述可以看出,本实施例提供了一种结合历史数据流的包量振幅(即历史包量的波动范围),来获取用于现网分析的包量阈值的方式。在提供业务的过程中,随着业务场景的不断变化,历史数据流的包量通常会不断发生波动,而通过上述方式来获取包量阈值,包量阈值可以随着历史数据流的包量波动而自适应性地变化,从而保证包量阈值的大小符合当前的业务场景。通过这种基于历史包量来获取动态的包量阈值的方式,相对于人工设置固定的静态的包量阈值来说,可以极大地提高包量阈值的准确性,从而保证基于包量阈值检测异常包量的准确性。
步骤四、当包量的累计和大于包量阈值时,第一分类模型输出第一分类结果。
步骤五、当包量的累计和不大于包量阈值时,第一分类模型输出第二分类结果。
通过上述步骤一至步骤五,提供了一种通过CUSUM算法来进行包量检测的方式,通过对多个突变点的差距进行累计,可以放大攻击流量的包量与正常流量的包量之间的差异,提高网络攻击的检测的精确性。
2042、计算机设备将数据流的斜率输入第二分类模型,输出斜率的分类结果。
第二分类模型是指多个分类模型中斜率维度对应的分类模型。在一些可能的实施例中,第二分类模型对斜率进行检测的过程可以包括下述步骤一至步骤三。
步骤一、对斜率与斜率阈值进行比较。
斜率阈值可以根据人工操作预先设置,也可以获取历史数据流的流量的斜率的标准差,根据斜率的标准差来获取斜率阈值,根据斜率的标准差来获取斜率阈值的方式与根据流量的标准差来获取流量阈值的方式同理,对此不做赘述。
在一种可能的实现中,可以为不同等级的流量,设置不同大小的斜率阈值,从而实现流量分级检测。作为示例,第二分类模型可以根据该数据流的流量查询级别信息,得到该数据流的流量对应的斜率阈值。
级别信息可以包括数据流的流量与数据流的斜率之间的对应关系,例如,级别信息中可以包括流量1对应斜率阈值A,流量2对应斜率阈值B,其中,斜率阈值的大小与流量的大小正相关,流量越大,斜率阈值越高。
其中,级别信息可以预存在第二分类模型中,则可以将数据流的斜率以及数据流的流量一起输入第二分类模型,由第二分类模型根据数据流的流量查询数据流的流量阈值。另外,级别信息也可以预存在第二分类模型以外的其他模块中,有其他模块查询数据流的流量阈值,将流量阈值以及数据流的斜率一起输入第二分类模型,本实施例对执行这两种方式中的哪一种不做限定。
步骤二、当斜率大于斜率阈值时,第二分类模型输出第一分类结果。
步骤三、当斜率不大于斜率阈值时,第二分类模型输出第二分类结果。
2043、计算机设备将数据流的信息熵输入第三分类模型,输出信息熵维度的分类结果。
第三分类模型是指多个分类模型中信息熵维度对应的分类模型。在一些可能的实施例中,第三分类模型对信息熵进行检测的过程可以包括下述步骤一至步骤五。
在一些可能的实施例中,可以获取历史数据流的信息熵的标准差,根据信息熵的标准差,获取信息熵阈值,作为示例,第三分类模型对信息熵进行检测的过程可以包括下述步骤一至步骤五。
步骤一、根据信息熵基线,检测信息熵的突变点。
信息熵基线可以视为目的IP地址在信息熵维度的特征画像。信息熵基线是指信息熵的正常波动范围。在一种可能的实现中,可以根据历史数据流的信息熵,获取信息熵基线。具体来说,可以获取历史数据流的信息熵的平均值以及标准差,可以获取平均值与标准差的和,作为信息熵的正常波动范围的最大值,可以获取平均值与标准差的差,作为信息熵的正常波动范围的最小值,将正常波动范围的最大值与正常波动范围的最小值组成的范围作为信息熵基线。
信息熵的突变点为超过该信息熵基线的信息熵。关于检测信息熵的突变点的过程。作为示例,第三分类模型中可以预存信息熵基线,每当第三分类模型接收到输入的任一信息熵时,可以判断该信息熵是否超过信息熵基线,当信息熵超过信息熵基线时,则将信息熵记为信息熵的突变点,当信息熵没有超过信息熵基线时,则继续判断下一个输入的信息熵是否超过信息熵基线。
步骤二、根据多个信息熵的突变点,获取该信息熵的累计和。
信息熵的累计和可以为多个信息熵的突变点的差距之和。在一种可能的实现中,第三分类模型可以采用实时累加的方式,每当检测出一个突变点,则对该突变点的差距与已获取的差距之和进行累加,来获取信息熵的累计和。
步骤三、对信息熵的累计和与信息熵阈值进行比较。
在一些可能的实施例中,信息熵阈值的获取过程可以包括下述步骤A至步骤D:
步骤A、获取历史数据流的信息熵在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值。
对于多个统计周期中的任一统计周期,可以获取历史数据流在该统计周期的信息熵,得到该统计周期的多个信息熵,可以获取该统计周期的多个信息熵的标准差,以及该统计周期的多个信息熵的平均值。举例来说,可以将7天作为获取信息熵阈值的周期,将1天作为一个统计周期,对于7天中的每1天,可以获取历史数据流在1天的信息熵,得到1天中的1440个信息熵,可以获取1440个信息熵的标准差,以及1440个信息熵的平均值。
步骤B、对于任一个统计周期,获取统计周期的平均值与标准差的和,作为统计周期的信息熵基线的最大值,获取统计周期的平均值与标准差的差,作为统计周期的信息熵基线的最小值。
以数学的方式表述,统计周期的信息熵基线的最大值为统计周期的信息熵基线的最小值为其中表示平均值,δ表示标准差。
举例来说,对于7天中的每1天,可以获取1天的1440个信息熵的平均值与这1天的1440个信息熵的标准差的和,作为1天的信息熵基线的最大值,获取1天的1440个信息熵的平均值与这1天的1440个信息熵的标准差的差,作为1天的信息熵基线的最小值。
步骤C、从多个统计周期的信息熵基线中,选择信息熵的最大的峰值以及最小的谷值。
任意统计周期的信息熵基线会具有峰值,峰值即为信息熵基线的最大值,可以根据每个统计周期的信息熵基线的峰值,从多个统计周期的信息熵基线中选择最大的峰值。举例来说,7天中第1天的信息熵基线的峰值可以记为7天中第2天的信息熵基线的峰值可以记为以此类推,7天中第7天的信息熵基线的峰值可以记为可以从中选择最大值,作为信息熵的最大的峰值。
同理地,任意统计周期的信息熵基线会具有谷值,谷值即为信息熵基线的最小值,可以根据每个统计周期的信息熵基线的谷值,从多个统计周期的信息熵基线中选择最小的谷值。举例来说,7天中第1天的信息熵基线的谷值可以记为7天中第2天的信息熵基线的谷值可以记为以此类推,7天中第7天的信息熵基线的谷值可以记为可以从中选择最小值,作为信息熵的最小的谷值。
步骤D、根据信息熵的最大的峰值与最小的谷值之间的差距,获取信息熵阈值。
在一些可能的实施例中,可以获取信息熵的最大的峰值与最小的谷值之间的差距,获取信息熵的最大的峰值与差距的和,将和作为信息熵阈值。
举例来说,7天中信息熵的最大的峰值可以记为Emax3,7天中信息熵的最小的谷值可以记为Emin3,信息熵阈值可以记为S3,则S3=Emax3+(Emax3-Emin3)。其中,Emax3和Emin3为正数。
需要说明的一点是,在一些可能的实施例中,计算机设备可以为每个IP地址制定不同的信息熵阈值。具体来说,计算机设备可以预存至少一个IP地址,对于任一IP地址,可以根据目的IP地址为该IP地址的历史数据流,执行上述步骤A至步骤D,当得到信息熵阈值后,可以对该信息熵阈值与该IP地址关联存储,得到信息熵阈值与IP地址之间的对应关系。在现网分析时,当获取到任一数据流时,可以根据该数据流的目的IP地址,从信息熵阈值与IP地址之间的对应关系中,获取该目的IP地址对应的信息熵阈值。
需要说明的一点是,上述步骤A至步骤D可以预先执行,例如在执行步骤201之前执行。另外,步骤A至步骤D可以离线执行。另外,步骤A至步骤D的执行主体与步骤201至步骤205的执行主体可以相同或不同。
从上述描述可以看出,本实施例提供了一种结合历史数据流的信息熵振幅(即历史信息熵的波动范围),来获取用于现网分析的信息熵阈值的方式。在提供业务的过程中,随着业务场景的不断变化,历史数据流的信息熵通常会不断发生波动,而通过上述方式来获取信息熵阈值,信息熵阈值可以随着历史数据流的信息熵波动而自适应性地变化,从而保证信息熵阈值的大小符合当前的业务场景。通过这种基于历史信息熵来获取动态的信息熵阈值的方式,相对于人工设置固定的静态的信息熵阈值来说,可以极大地提高信息熵阈值的准确性,从而保证基于信息熵阈值检测异常信息熵的准确性。
步骤四、当信息熵的累计和大于信息熵阈值时,第三分类模型输出第一分类结果。
步骤五、当信息熵的累计和不大于信息熵阈值时,第三分类模型输出第二分类结果。
通过上述步骤一至步骤五,提供了一种通过CUSUM算法来进行信息熵检测的方式,通过对多个突变点的差距进行累计,可以放大攻击流量的信息熵与正常流量的信息熵之间的差异,从而提高检测网络攻击的精确性。
2044、计算机设备将数据流的包长分布向量输入第四分类模型,输出包长分布维度的分类结果。
第四分类模型是指多个分类模型中包长分布维度对应的分类模型。在一些可能的实施例中,第四分类模型根据包长分布向量进行分类的过程可以包括下述步骤一至步骤四。
步骤一、获取该数据流的包长分布向量与历史数据流的包长分布向量之间的向量差距。
关于获取历史数据流的包长分布向量的过程,对于多个统计周期中的每个统计周期,可以获取历史数据流在该统计周期内的数据包,得到多个数据包;对于多个数据包中的每个数据包,可以根据该数据包的包长以及包长区间的区间间隔,获取该数据包的包长所处的包长区间;对于包长分布向量的每个位,可以根据该位对应的包长区间,获取统计周期内该包长区间对应的包量的平均值以及标准差,根据该平均值以及标准差,获取统计周期内该包长区间的包量的波动范围;根据多个统计周期的包量的波动范围的最大值以及最小值之间的差距,获取该包长区间的包量的阈值,将历史数据流的包长分布向量中该包长区间对应的位置位为该阈值。
以根据7天的历史流量数据来获取包长分布向量,每个统计周期为1天为例,对于7天中的每1天,可以根据1天的1440个数据,获取1440个包长;以计算包长分布向量中第1个位的取值为例,包长分布向量中第1个位对应于包长区间(0,150),则可以根据1440个包长,获取包长处于包长区间(0,150)的包量的平均值和标准差,根据平均值和标准差,获取1天中包长处于包长区间(0,150)的包量的波动范围;同理地,获取7天中每一天包长处于包长区间(0,150)的包量的波动范围,得到7天的包量的波动范围,可以根据7天的包量的波动范围中包量的最大值以及包量的最小值,获取包长区间(0,150)对应的阈值,将历史数据流的包长分布向量的第1位置位为该阈值。依次类推,可以通过同样的方式计算包长分布向量第2个位、第3个位直至最后一个位。
向量之间的差异可以通过欧式距离或夹角来度量,相应地,步骤一可以包括下述实现方式一至实现方式二中的任意一项:
实现方式一、获取该数据流的包长分布向量与历史数据流的包长分布向量之间的欧式距离,将欧式距离作为两个向量之间的差异。
实现方式二、获取该数据流的包长分布向量与历史数据流的包长分布向量之间的夹角,将夹角作为两个向量之间的差异。
步骤二、对差异与差异阈值进行比较。
步骤三、当差异超过差异阈值时,第四分类模型输出第一分类结果。
步骤四、当差异未超过差异阈值时,第四分类模型输出第二分类结果。
与上述步骤一中的实现方式一对应,可以对欧式距离与欧式距离阈值进行比较。当该欧式距离超过欧式距离阈值时,第四分类模型输出第一分类结果。当该欧式距离未超过欧式距离阈值时,第四分类模型输出第二分类结果。与上述步骤一中的实现方式二对应,可以对夹角与夹角阈值进行比较。当该夹角超过夹角阈值时,第四分类模型输出第一分类结果。当该夹角未超过夹角阈值时,第四分类模型输出第二分类结果。在一些可能的实施例中,第四分类模型根据包长分布向量进行分类的过程可以包括下述步骤一至步骤四。
步骤一、获取该数据流的包长分布向量与历史数据流的包长分布向量之间的相似度。
例如,可以获取该数据流的包长分布向量与历史数据流的包长分布向量之间的余弦相似度,将余弦相似度作为两个向量之间的相似度。
步骤二、对相似度与相似度阈值进行比较。
步骤三、当相似度未超过相似度阈值时,第四分类模型输出第一分类结果。
步骤四、当相似度超过相似度阈值时,第四分类模型输出第二分类结果。
步骤2045、计算机设备将数据流的多个数据包的载荷输入第五分类模型,输出载荷维度的分类结果。
第五分类模型是指多个分类模型中载荷维度对应的分类模型。在一些可能的实施例中,步骤2045可以包括下述实现方式一至实现方式二中的至少一项。
实现方式一、通过统计多个数据包中的业务数据包,判定数据流是否为异常数据流。业务数据包是指承载业务数据的数据包,业务数据包可以视为正常数据包。具体来说,实现方式一可以包括下述步骤一至步骤五。
步骤一、根据该多个数据包的载荷,确定该多个数据包中的业务数据包。
步骤一可以包括下述(1.1)至(1.2)中的任一项或多项的组合。
(1.1)对于多个数据包中的每个数据包,可以采用统计学方式,来判定数据包是否为业务数据包。
具体来说,可以根据数据包的载荷,获取载荷特征,判断载荷特征是否属于业务特征库,当载荷特征属于业务特征库,则确定数据包为业务数据包。
其中,关于获取载荷特征的过程,可以获取载荷的头部信息,作为载荷特征。作为示例,可以从该载荷中提取排在前预设数目的字节,作为该载荷特征。其中,该预设数目可以根据实验、经验或需求设置,例如可以为8。
通过将载荷中排在前预设数目的字节作为载荷信息,一方面,考虑到数据包的载荷的数据量通常较大,如果对数据包的全部载荷进行分析,会导致计算量较大,对性能产生影响,而通过对排在前预设数目的字节进行分析,可以显著减少计算量,从而提高检测网络攻击的速度。另一方面,经过实验发现,某一业务的正常数据流的载荷中排在前预设数目的字节为固定字节的概率较高,载荷中排在前预设数目的字节的规律性较强,通过载荷中排在前预设数目的字节来检测数据流是否为异常数据流的准确性较高。
业务特征库可以视为白特征库或业务强特征库。关于业务特征库的构建过程,作为示例,可以根据历史数据流中的多个数据包的载荷,获取多种历史载荷特征,从多种历史载荷特征中选择目标历史载荷特征,存入业务特征库。其中,对于历史数据流中任一个数据包的载荷,可以获取载荷的头部信息,作为历史载荷特征。作为示例,可以从该载荷中提取排在前预设数目的字节,作为历史载荷特征。
作为示例,可以将7天作为更新业务特征库的周期,对于7天中的每1天,可以获取历史数据流在1天中的每个数据包,得到1440个数据包,可以获取1440个数据包的载荷,得到1440个载荷,可以根据1440个载荷,获取1440个载荷的前8字节,从1440个载荷的前8字节中选择一个或多个载荷的前8字节,将这些载荷的前8字节存入业务特征库。
作为示例,选择目标历史载荷特征的方式可以包括下述方式A至方式C中的至少一项:
方式A、对于多种历史载荷特征中的每种历史载荷特征,获取出现历史载荷特征的数据包数量,当数据包数量超过数量阈值时,将历史载荷特征作为目标历史载荷特征。其中,该数量阈值可以根据实验、经验或需求设置,例如可以为500。
举例来说,对于1440个载荷的前8字节中的每个前8字节,可以获取1440个数据包中包含前8字节的数据包数量,当任一前8字节被连续超过500个数据包包含时,将前8字节作为目标历史载荷特征。
方式B、对于多种历史载荷特征中的每种历史载荷特征,获取历史载荷特征的占比,当历史载荷特征的占比超过占比阈值时,将历史载荷特征作为目标历史载荷特征。占比为具有历史载荷特征的数据包的数量与历史数据流中多个数据包的数量之间的比值,即该历史载荷特征的总数量与多种历史载荷特征的总数量之间的比值,占比阈值可以根据实验、经验或需求设置,例如可以为50%。
举例来说,对于1440个载荷的前8字节中的每个前8字节,可以获取包含前8字节的数据包数量与1440的比值,作为前8字节的占比,当任一前8字节的占比超过50%时,将前8字节作为目标历史载荷特征。
方式C、对于多种历史载荷特征中的每种历史载荷特征,获取历史载荷特征的出现时长,当历史载荷特征的出现时长超过出现时长阈值时,将历史载荷特征作为目标历史载荷特征,该出现时长可以根据实验、经验或需求设置,例如可以为1000分钟。
举例来说,对于1440个载荷的前8字节中的每个前8字节,可以获取1天的1440分钟中出现前8字节的时长,当1天中超过1000分钟出现该前8字节时,将该前8字节作为目标历史载荷特征。
(1.2)对于多个数据包中的每个数据包,可以采用机器学习方式,来判定数据包是否为业务数据包。
具体来说,可以根据该数据包的载荷,获取该载荷特征,对该载荷特征进行自然语言处理,得到词向量,可以获取该词向量与词向量库中每个词向量之间的相似度,当该词向量与词向量库中的任一词向量之间的相似度大于相似度阈值时,确定该数据包为业务数据包。
关于自然语言处理的过程,可以对载荷信息进行分词,得到词序列,将词序列输入自然语言处理模型,输出词向量。可选地,可以采用多种不同的分词方式对载荷信息进行分词,得到多个分词结果,将多个分词结果进行拼接,得到词序列。例如,可以对前8字节采用2字节方式进行分词,得到4个2字节的词,对前8字节采用4字节方式进行分词,得到2个4字节的词,对前8字节采用4字节方式进行分词,得到1个8字节的词,将4个词、2个词以及1个词拼接,得到7个词,作为词序列。
关于词向量库的构建过程,作为示例,可以根据历史数据流中的多个数据包的历史载荷,获取多种历史载荷特征,对多种历史载荷特征进行自然语言处理,得到多个历史词向量,从多个历史词向量中选择目标历史词向量,存入词向量库。
作为示例,可以将7天作为更新词向量库的周期,对于7天中的每1天,可以获取历史数据流在1天中的每个数据包,得到1440个数据包,可以获取1440个数据包的载荷,得到1440个载荷,可以根据1440个载荷,获取1440个载荷的前8字节,对1440个载荷的前8字节进行自然语言处理,得到1440个历史词向量,从1440个历史词向量中选择目标历史词向量,存入词向量库。
作为示例,选择目标历史词向量的方式可以包括下述方式一至方式二中的至少一项:
方式一、对于多个历史词向量中的每个历史词向量,获取历史词向量的占比,对多个历史词向量按照占比的大小进行排序,得到排序结果,从排序结果中选取排在前预设位数的历史词向量,作为目标历史词向量。其中,任一历史词向量的占比为历史词向量为历史词向量的数据包数量与历史数据流中多个数据包的数量之间的比值。预设位数可以根据实验、经验或需求设置。
举例来说,可以获取1440个历史词向量中每个历史词向量的占比,从1440个历史词向量中选取占比排在前N位的历史词向量,作为目标历史词向量。其中N为正整数。
方式二、对于多个历史词向量中的每个历史词向量,获取历史词向量为历史词向量的数据包数量,也即是,该历史词向量在多个历史词向量中的出现次数;可以对多个历史词向量按照数据包数量的大小进行排序,得到排序结果,从排序结果中选取排在前预设位数的历史词向量,作为目标历史词向量。
步骤二、根据该多个数据包中业务数据包的数量,获取第一比例,第一比例为业务数据包的数量与该多个数据包的数量的比值。
步骤三、对第一比例与第一比例阈值进行比较。
步骤四、当第一比例大于第一比例阈值时,第五分类模型输出第一分类结果。
步骤五、当第一比例不大于第一比例阈值时,第五分类模型输出第二分类结果。
实现方式二、通过统计多个数据包中的异常数据包,判定数据流是否为异常数据流。具体来说,实现方式二可以包括下述步骤一至步骤五。
步骤一、根据该多个数据包的载荷,确定该多个数据包中的异常数据包。
在一种可能的实现中,对于该多个数据包中的每个数据包,可以检测数据包的载荷是否为无意义数据,当该数据包的载荷为无意义数据时,确定该数据包为异常数据包。其中,无意义数据可以根据经验或需求设置,例如可以为全0、“ABCD。。”、“12345等”
步骤二、根据该多个数据包中异常数据包的数量,获取第二比例,该第二比例为异常数据包的数量与该多个数据包的数量的比值
步骤三、对第二比例与第二比例阈值进行比较。
步骤四、当第二比例大于第二比例阈值时,第五分类模型输出第一分类结果,
步骤五、当第二比例不大于第二比例阈值时,第五分类模型输出第二分类结果。
需要说明的一点是,上述(1.1)至(1.2)可以以或的方式结合,例如,可以当第一比例大于第一比例阈值或第二比例大于第二比例阈值时,第五分类模型输出第一分类结果,当第一比例不大于第一比例阈值或第二比例不大于第二比例阈值时,第五分类模型输出第二分类结果。当然,上述(1.1)至(1.2)可以以且的方式结合,例如,可以当第一比例大于第一比例阈值且第二比例大于第二比例阈值时,第五分类模型输出第一分类结果,当第一比例不大于第一比例阈值且第二比例不大于第二比例阈值时,第五分类模型输出第二分类结果,本实施例对采用哪种结合方式不做具体限定。
205、计算机设备根据多个维度的分类结果,获取网络攻击的检测结果。
网络攻击的检测结果可以包括两种,一种是数据流的目的地址受到网络攻击,一种是数据流的目的地址没有受到网络攻击。为了区分描述这两种结果,在此分别描述为第一检测结果以及第二检测结果。第一检测结果表示数据流的目的地址受到网络攻击,第二检测结果表示数据流的目的地址未受到网络攻击。第一检测结果以及第二检测结果可以通过不同的数据来表示,举例来说,第一检测结果可以是1,第二检测结果可以是0。
可选地,计算机设备可以采用加权表决的方式,为每个维度的特征设置对应的权重,根据每个维度的权重以及根据每个维度的分类结果,来判断数据流的目的地址是否受到网络攻击。
每个维度的权重可以根据业务场景、经验或实验配置。例如,如果某个维度的特征在正常数据流与异常数据流的出现概率近似,可以为该维度的特征设置较小的权重,如果某个维度的特征在异常数据流的出现概率远大于在正常数据流的出现概率,可以为该维度的特征设置较大的权重。作为示例,流量或包量维度以及斜率维度的权重可以最大,载荷维度的权重其次,信息熵维度以及包长分布维度的权重可以最小。每个维度的权重可以预先存储在计算机设备中。
作为示例,加权表决的方式可以包括下述步骤一至步骤四:
步骤一、计算机设备根据每个维度的权重,对该多个维度的分类结果加权求和,得到加权和值。
示例性地,如果流量/包量这一维度的权重为5,信息熵的权重为5,载荷的权重为4,包长分布的权重为3,斜率的权重为3,第一分类结果记为1,第二分类结果记为0,五个维度的分类结果分别是1、1、0、0、0,则加权和值=5*1+5*1+4*0+3*0+3*0=10。
步骤二、计算机设备对加权和值与加权和值阈值进行比较。
步骤三、当加权和值大于加权和值阈值时,计算机设备获取第一检测结果。
步骤四、当加权和值不大于加权和值阈值时,计算机设备获取第二检测结果。
通过加权表决的方式来判决是否发生网络攻击,一方面,能够将通过多个维度的特征得到的判定结果有效地结合起来,另一方面,可以为不同维度的特征设置不同的权重,例如提高更反映异常数据流的特征的维度的权重,来强化该维度的特征在投票过程中的作用,从而令最终判决结果偏向该维度的特征的判决结果,从而降低误报率,提高检测网络攻击的准确性。
可选地,计算机设备也可以采用多数投票的方式,判断数据流的目的设备是否受到攻击。例如,如果多数维度的分类模型输出第一分类结果,则确定该数据流的目的地址受到网络攻击。如果多数维度的分类模型输出第二分类结果,则确定该数据流的目的地址未受到网络攻击。
可选地,在根据多个维度的特征来检测网络攻击的基础上,可以设置兜底策略,来保证平台最基本的稳定性。作为示例,可以为数据流的流量设置第二流量阈值,可以判断数据流的流量是否大于第二流量阈值,当数据流的流量大于第二流量阈值,无论根据多个维度的分类结果得到的检测结果是第一检测结果还是第二检测结果,均可以将网络攻击的检测结果直接置为第一检测结果。同理地,可以为数据流的包量设置第二包量阈值,可以判断数据流的包量是否大于第二包量阈值,当数据流的包量大于第二包量阈值,无论根据多个维度的分类结果得到的检测结果是第一检测结果还是第二检测结果,均可以将网络攻击的检测结果直接置为第一检测结果。
其中,第二流量阈值可以视为流量的兜底阈值,第二流量阈值小于第一流量阈值,第二流量阈值可以根据经验设置,也可以由用户自定义设置。同理地,第二包量阈值可以视为包量的兜底阈值,第二包量阈值小于第一包量阈值,第二包量阈值可以根据经验设置,也可以由用户自定义设置。
在一种可能的实现中,可以在计算机设备中设置兜底阈值接口,该兜底阈值接口用于供用户设置第二流量阈值以及第二包量阈值中的至少一项,用户可以在终端上输入第二流量阈值以及第二包量阈值中的至少一项,终端会调用计算机设备的兜底阈值接口,将用户输入的第二流量阈值以及第二包量阈值中的至少一项发送至计算机设备,计算机设备可以通过兜底阈值接口接收第二流量阈值以及第二包量阈值中的至少一项,根据第二流量阈值以及第二包量阈值中的至少一项执行上述兜底策略,从而满足用户的自定义需求,实现共建安全。
在一些可能的实施例中,计算机设备可以具备告警的功能,可以当获取到第一检测结果后,进行告警。其中,告警的时机可以而不限于:当通过多个维度的特征获取到第一检测结果后,进行告警;当通过兜底策略获取到第一检测结果后,进行告警;当通过超大流量检测机制获取到第一检测结果后,进行告警;其中,可以当三种检测逻辑中任一种检测逻辑获取到第一检测结果时就进行告警。如此,可以通过多种检测逻辑,提高准确性,保证用户及时获知数据流的目的地址受到网络攻击,启动网络攻击抵御机制。另外,计算机设备可以将异常的流量发送至后端系统,以便后端系统根据异常的流量进一步处理。
在一些可能的实施例中,可以对数据流进行降噪处理以及去坏值处理中的至少一项,得到处理后的数据流;将处理后的数据流作为历史数据流,以便根据历史数据流重新计算各个维度的阈值。
降噪处理的过程可以包括:根据至少一个预设目的IP地址,从数据流中删除目的IP地址不是预设目的IP地址的流量,例如预设目的IP地址可以是企业服务器的IP地址,可以根据企业服务器的IP地址,从数据流中删除不是发往企业服务器的流量。另外,可以从数据流中删除网络混杂流量,从数据流中删除DDoS攻击流量。
去坏值的过程可以包括:从数据流中删除可疑值,该可疑值可以是误差或者攻击流量,从而提高自适应速度。具体来说,一组重复测试的n个数据中,残差的绝对值最大值为可疑值xb,在置信区间p=0.99或p=0.95,也就是显著性水平α=1-p=0.01或0.05时,如果v满足下式,则可以判定v的xb为异常值。
其中,δ为实验得出的标准偏差,G(α,n)查格拉布斯准则的临界值表。另外,当剔除xb后,可以通过上述去坏值的方法对数据流继续去坏值,直到为止,将数据流作为已经去坏值了的数据流。
本实施例提供的方法,提供了一种基于多维特征检测网络攻击的方案,通过采用集成学习的方式,通过多个分类模型,依据多个维度的特征分别判定数据流是否异常,再汇总多个维度的分类结果,来综合判决是否发生网络攻击,考虑的特征更加多样化,可以适应于现网多样化的业务形态,提高检测网络攻击的准确性。经过试验验证,通过本实施例提供的网络攻击检测方法,误告警数量下降了近94%,极大地降低了误告警数量,另外1Mbps的小流量突增即可有效检测出来,大大提升了检测灵敏度。
图3是本发明实施例提供的一种网络攻击检测方法的系统架构图,该系统中可以包括以下逻辑架构:
数据源,用于按照网络协议栈,对原始的数据包进行解析,将数据包的数据实时输出至实时检测模块和离线计算模块。
实时检测,包括超大流量告警、多维特征统计分析、多特征联合检测算法、兜底策略及告警模块。
超大流量告警:用于判断数据流是否为大流量,如果是,则直接告警,无需再过后续检测逻辑,缩短数据链路,提高时效性。
多维特征统计分析,用于对实时流量成分的变化进行多个维度的统计分析,例如分析载荷特征、斜率、流量/包量、源IP信息熵以及包长分布,多维特征统计分析模块的分析结果会结合离线计算模块的分析结果,通过多特征联合检测算法综合判断是否流量异常,如果异常则告警。
离线计算,包括基线数据采集模块,基线离线计算模块,黑白特征库构建模块。基线数据采集模块,用于采集流量的基线数据,例如采集每个IP近7天的多个维度的特征。基线离线计算模块对采集到的多个维度的特征进行存储,通过离线计算平台,对每个IP的流量进行多级降噪、异常流量过滤,再提取每个IP的多维画像,即流量的多个维度的特征,如载荷特征,斜率,流量/包量,源IP信息熵以及包长分布,计算出多个维度的统计值信息(包括最大值、均值、标准差),将统计值信息存储在后台数据库中供实时检测模块关联调用。
告警,用于进行告警,另外可以将异常告警发送至后端系统,以供后端系统进一步处理。
图4是本发明实施例提供的一种网络攻击检测装置的结构示意图,如图4所示,该装置包括:
获取模块401,用于获取数据流的多个维度的特征;
调用模块402,用于调用多个分类模型,每个分类模型用于根据数据流的一个维度的特征预测数据流是否为异常数据流;
处理模块403,用于对于多个维度的特征中每个维度的特征,将维度的特征输入多个分类模型中维度对应的分类模型,输出维度的分类结果;
获取模块401,用于根据多个维度的分类结果,获取网络攻击的检测结果。
可选地,处理模块403,用于执行下述任意一项:
将数据流的流量输入流量或包量维度对应的第一分类模型,在第一分类模型中,根据流量基线,检测流量的突变点,根据多个流量的突变点,获取流量的累计和,当流量的累计和大于流量阈值时,输出第一分类结果,当流量的累计和不大于流量阈值时,输出第二分类结果,流量的突变点为超过流量基线的流量,流量的累计和为每个流量的突变点与流量基线之间的差距的和,第一分类结果表示数据流为异常数据流,第二分类结果表示数据流不为异常数据流;
将数据流的包量输入第一分类模型,在第一分类模型中,根据包量基线,检测包量的突变点,根据多个包量的突变点,获取包量的累计和,当包量的累计和大于包量阈值时,输出第一分类结果,当包量的累计和不大于包量阈值时,输出第二分类结果,包量的突变点为超过包量基线的包量,包量的累计和为每个包量的突变点与包量基线之间的差距的和。
可选地,处理模块403,用于执行下述任意一项:
将数据流的斜率以及数据流的流量输入斜率维度对应的第二分类模型,在第二分类模型中,根据数据流的流量查询级别信息,得到数据流的流量对应的斜率阈值,数据流的斜率为单位时间内数据流的流量的增长率或包量的增长率,级别信息包括数据流的流量与斜率阈值之间的对应关系;
当斜率大于斜率阈值时,输出第一分类结果,第一分类结果表示数据流为异常数据流;
当斜率不大于斜率阈值时,输出第二分类结果,第二分类结果表示数据流不为异常数据流。
可选地,处理模块403,用于执行下述任意一项:
将数据流的信息熵输入信息熵维度对应的第三分类模型,在第三分类模型中,根据信息熵基线,检测信息熵的突变点,信息熵的突变点为超过信息熵基线的信息熵;
根据多个信息熵的突变点,获取信息熵的累计和,信息熵的累计和为每个信息熵的突变点与信息熵基线之间的差距的和;
当信息熵的累计和大于信息熵阈值时,输出第一分类结果,第一分类结果表示数据流为异常数据流;
当信息熵的累计和不大于信息熵阈值时,输出第二分类结果,第二分类结果表示数据流不为异常数据流。
可选地,处理模块403,用于执行下述任意一项:
将数据流的包长分布向量输入包长分布维度对应的第四分类模型,在第四分类模型中,获取数据流的包长分布向量与历史数据流的包长分布向量的向量差距,包长分布向量中每一个位对应一个包长区间,每个位的取值为数据流中包长处于对应包长区间的包量;
当向量差距超过向量差距阈值时,输出第一分类结果,第一分类结果表示数据流为异常数据流;
当向量差距未超过向量差距阈值时,输出第二分类结果,第二分类结果表示数据流不为异常数据流。
可选地,处理模块403,用于执行下述任意一项:
将数据流的多个数据包的载荷输入载荷维度对应的第五分类模型,在第五分类模型中,根据多个数据包的载荷,确定多个数据包中的业务数据包;根据多个数据包中业务数据包的数量,获取第一比例,当第一比例大于第一比例阈值时,输出第一分类结果,当第一比例不大于第一比例阈值时,输出第二分类结果,第一比例为业务数据包的数量与多个数据包的数量的比值,第一分类结果表示数据流为异常数据流,第二分类结果表示数据流不为异常数据流;
将数据流的多个数据包的载荷输入载荷维度对应的第五分类模型,在第五分类模型中,根据多个数据包的载荷,确定多个数据包中的异常数据包;根据多个数据包中异常数据包的数量,获取第二比例,当第二比例大于第二比例阈值时,输出第一分类结果,当第二比例不大于第二比例阈值时,输出第二分类结果,第二比例为异常数据包的数量与多个数据包的数量的比值。
可选地,处理模块403,用于:对于多个数据包中的每个数据包,从载荷中提取排在前预设数目的字节,作为载荷特征;当载荷特征属于业务特征库时,确定数据包为业务数据包;或者,对载荷特征进行自然语言处理,得到词向量,当词向量与词向量库中的任一词向量之间的相似度大于相似度阈值时,确定数据包为业务数据包。
可选地,获取模块401,用于执行下述至少一项:
获取数据流在当前时间窗的数据包的数据量总和与当前时间窗的时长之间的比值,得到数据流的流量;
获取数据流在当前时间窗的数据包的数量与当前时间窗的时长之间的比值,得到数据流的包量;
获取数据流在第一统计时间段的第一流量以及数据流在第二统计时间段的第二流量,根据第一流量与第二流量之间的差距,获取数据流的斜率,第一统计时间段以及第二统计时间段为当前时间窗中两个相邻的统计时间段;
获取数据流在第一统计时间段的第一包量以及数据流在第二统计时间段的第二包量,根据第一包量与第二包量之间的差距,获取数据流的斜率;
根据数据流在当前时间窗的多个数据包,获取多个数据包中每个数据包的源互联网协议地址IP地址,得到多个源IP地址,根据每个源IP地址在多个源IP地址中的出现次数,获取每个源IP地址的出现概率,根据每个源IP地址的出现概率,获取源IP地址的信息熵,作为数据流的信息熵;
根据数据流在当前时间窗的多个数据包,获取多个数据包中每个数据包的源端口号,得到多个源端口号,根据每个源端口号的出现次数,获取每个源端口号的出现概率,根据每个源端口号的出现概率,获取源端口号的信息熵,作为数据流的信息熵;
根据数据流在当前时间窗的多个数据包,获取多个数据包中每个数据包的源IP地址与源端口号之间的比值;根据每个比值的出现次数,获取每个比值的出现概率,根据每个比值的出现概率,获取比值的信息熵,作为数据流的信息熵;
根据数据流在当前时间窗的多个数据包,获取多个数据包中每个数据包的目的端口号,得到多个目的端口号,根据每个目的端口号的出现次数,获取每个目的端口号的出现概率,根据每个目的端口号的出现概率,获取目的端口号的信息熵,作为数据流的信息熵;
根据数据流在当前时间窗的多个数据包,获取多个数据包中每个数据包的包长,对于包长分布向量的每个位,根据每个数据包的包长,获取包长处于位对应的包长区间的包量,将位置位为包量,包长分布向量中每一个位对应一个包长区间,每个位的取值为数据流中包长处于对应包长区间的包量;
获取数据流在当前时间窗的多个数据包中每个数据包的载荷。
可选地,获取模块401,还用于执行下述至少一项:
获取历史数据流的流量的标准差,根据流量的标准差,获取流量阈值,历史数据流的目的IP地址与数据流的目的IP地址相同;
获取历史数据流的包量的标准差,根据包量的标准差,获取包量阈值;
获取历史数据流的信息熵的标准差,根据信息熵的标准差,获取信息熵阈值;
根据历史数据流中的多个数据包的载荷,获取多种历史载荷特征,从多种历史载荷特征中选择目标历史载荷特征,存入业务特征库;
根据历史数据流中的多个数据包的历史载荷,获取多种历史载荷特征,对多种历史载荷特征进行自然语言处理,得到多个历史词向量,从多个历史词向量中选择目标历史词向量,存入词向量库。
可选地,获取模块401,用于执行下述至少一项:
获取历史数据流的流量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取统计周期的平均值与标准差的和,作为统计周期的流量基线的最大值,获取统计周期的平均值与标准差的差,作为统计周期的流量基线的最小值;从多个统计周期的流量基线中,选择流量的最大的峰值以及最小的谷值;根据流量的最大的峰值与最小的谷值之间的差距,获取流量阈值;
获取历史数据流的包量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取统计周期的平均值与标准差的和,作为统计周期的包量基线的最大值,获取统计周期的平均值与标准差的差,作为统计周期的包量基线的最小值;从多个统计周期的包量基线中,选择包量的最大的峰值以及最小的谷值;根据包量的最大的峰值与最小的谷值之间的差距,获取包量阈值;
获取历史数据流的信息熵在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取统计周期的平均值与标准差的和,作为统计周期的信息熵基线的最大值,获取统计周期的平均值与标准差的差,作为统计周期的信息熵基线的最小值;从多个统计周期的信息熵基线中,选择信息熵的最大的峰值以及最小的谷值;根据信息熵的最大的峰值与最小的谷值之间的差距,获取信息熵阈值。
可选地,获取模块401,用于执行下述至少一项:
对于多种历史载荷特征中的每种历史载荷特征,获取出现历史载荷特征的数据包数量,当数据包数量超过数量阈值时,将历史载荷特征作为目标历史载荷特征;
对于多种历史载荷特征中的每种历史载荷特征,获取历史载荷特征的占比,当历史载荷特征的占比超过占比阈值时,将历史载荷特征作为目标历史载荷特征,占比为具有历史载荷特征的数据包的数量与历史数据流中多个数据包的数量之间的比值;
对于多种历史载荷特征中的每种历史载荷特征,获取历史载荷特征的出现时长,当历史载荷特征的出现时长超过出现时长阈值时,将历史载荷特征作为目标历史载荷特征;
对于多个历史词向量中的每个历史词向量,获取历史词向量的占比,对多个历史词向量按照占比的大小进行排序,得到排序结果,从排序结果中选取排在前预设位数的历史词向量,作为目标历史词向量,任一历史词向量的占比为历史词向量为历史词向量的数据包数量与历史数据流中多个数据包的数量之间的比值;
对于多个历史词向量中的每个历史词向量,获取历史词向量为历史词向量的数据包数量,对多个历史词向量按照数据包数量的大小进行排序,得到排序结果,从排序结果中选取排在前预设位数的历史词向量,作为目标历史词向量。
可选地,获取模块401,用于:根据每个维度的权重,对多个维度的分类结果加权求和,得到加权和值;当加权和值大于加权和值阈值时,获取第一检测结果,第一检测结果表示数据流的目的地址受到网络攻击;当加权和值不大于加权和值阈值时,获取第二检测结果,第二检测结果表示数据流的目的地址受到网络攻击。
需要说明的是,上述实施例提供的网络攻击检测装置在检测网络攻击时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网络攻击检测装置与网络攻击检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)501和一个或一个以上的存储器502,其中,存储器502中存储有至少一条指令,至少一条指令由处理器501加载并执行以实现上述网络攻击检测方法。当然,该计算机设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由计算机设备中的处理器执行以完成上述实施例中的网络攻击检测方法。例如,计算机可读存储介质可以是只读存储器(Read-Only Memory,简称:ROM)、随机存取存储器(Random Access Memory,简称:RAM)、只读光盘(Compact Disc Read-Only Memory,简称:CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种网络攻击检测方法,其特征在于,所述方法包括:
获取数据流的多个维度的特征;
调用多个分类模型,每个分类模型用于根据数据流的一个维度的特征预测数据流是否为异常数据流;
对于所述多个维度的特征中每个维度的特征,将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果;
根据所述多个维度的分类结果,获取网络攻击的检测结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果,包括下述任意一项:
将所述数据流的流量输入流量或包量维度对应的第一分类模型,在所述第一分类模型中,根据流量基线,检测所述流量的突变点,根据多个流量的突变点,获取所述流量的累计和,当所述流量的累计和大于流量阈值时,输出第一分类结果,当所述流量的累计和不大于所述流量阈值时,输出第二分类结果,所述流量的突变点为超过所述流量基线的流量,所述流量的累计和为每个所述流量的突变点与所述流量基线之间的差距的和,所述第一分类结果表示所述数据流为异常数据流,所述第二分类结果表示所述数据流不为异常数据流;
将所述数据流的包量输入所述第一分类模型,在所述第一分类模型中,根据包量基线,检测所述包量的突变点,根据多个包量的突变点,获取所述包量的累计和,当所述包量的累计和大于包量阈值时,输出所述第一分类结果,当所述包量的累计和不大于所述包量阈值时,输出所述第二分类结果,所述包量的突变点为超过所述包量基线的包量,所述包量的累计和为每个所述包量的突变点与所述包量基线之间的差距的和。
3.根据权利要求1所述的方法,其特征在于,所述将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果,包括:
将所述数据流的斜率以及所述数据流的流量输入斜率维度对应的第二分类模型,在所述第二分类模型中,根据所述数据流的流量查询级别信息,得到所述数据流的流量对应的斜率阈值,所述数据流的斜率为单位时间内数据流的流量的增长率或包量的增长率,所述级别信息包括数据流的流量与斜率阈值之间的对应关系;
当所述斜率大于斜率阈值时,输出第一分类结果,所述第一分类结果表示所述数据流为异常数据流;
当所述斜率不大于所述斜率阈值时,输出第二分类结果,所述第二分类结果表示所述数据流不为异常数据流。
4.根据权利要求1所述的方法,其特征在于,所述将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果,包括:
将所述数据流的信息熵输入信息熵维度对应的第三分类模型,在所述第三分类模型中,根据信息熵基线,检测所述信息熵的突变点,所述信息熵的突变点为超过所述信息熵基线的信息熵;
根据多个信息熵的突变点,获取所述信息熵的累计和,所述信息熵的累计和为每个所述信息熵的突变点与所述信息熵基线之间的差距的和;
当所述信息熵的累计和大于信息熵阈值时,输出第一分类结果,所述第一分类结果表示所述数据流为异常数据流;
当所述信息熵的累计和不大于所述信息熵阈值时,输出第二分类结果,所述第二分类结果表示所述数据流不为异常数据流。
5.根据权利要求1所述的方法,其特征在于,所述将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果,包括:
将所述数据流的包长分布向量输入包长分布维度对应的第四分类模型,在所述第四分类模型中,获取所述数据流的包长分布向量与历史数据流的包长分布向量的向量差距,所述包长分布向量中每一个位对应一个包长区间,每个位的取值为所述数据流中包长处于对应包长区间的包量;
当所述向量差距超过向量差距阈值时,输出第一分类结果,所述第一分类结果表示所述数据流为异常数据流;
当所述向量差距未超过所述向量差距阈值时,输出第二分类结果,所述第二分类结果表示所述数据流不为异常数据流。
6.根据权利要求1所述的方法,其特征在于,所述将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果,包括下述至少一项:
将所述数据流的多个数据包的载荷输入载荷维度对应的第五分类模型,在所述第五分类模型中,根据所述多个数据包的载荷,确定所述多个数据包中的业务数据包;根据所述多个数据包中所述业务数据包的数量,获取第一比例,当所述第一比例大于第一比例阈值时,输出第一分类结果,当所述第一比例不大于所述第一比例阈值时,输出第二分类结果,所述第一比例为所述业务数据包的数量与所述多个数据包的数量的比值,所述第一分类结果表示所述数据流为异常数据流,所述第二分类结果表示所述数据流不为异常数据流;
将所述数据流的多个数据包的载荷输入载荷维度对应的第五分类模型,在所述第五分类模型中,根据所述多个数据包的载荷,确定所述多个数据包中的异常数据包;根据所述多个数据包中所述异常数据包的数量,获取第二比例,当所述第二比例大于第二比例阈值时,输出第一分类结果,当所述第二比例不大于所述第二比例阈值时,输出第二分类结果,所述第二比例为所述异常数据包的数量与所述多个数据包的数量的比值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述多个数据包的载荷,确定所述多个数据包中的业务数据包,包括:
对于所述多个数据包中的每个数据包,从所述载荷中提取排在前预设数目的字节,作为载荷特征;
当所述载荷特征属于业务特征库时,确定所述数据包为所述业务数据包;或者,对所述载荷特征进行自然语言处理,得到词向量,当所述词向量与词向量库中的任一词向量之间的相似度大于相似度阈值时,确定所述数据包为所述业务数据包。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述获取数据流的多个维度的特征,包括下述至少两项:
获取所述数据流在当前时间窗的数据包的数据量总和与所述当前时间窗的时长之间的比值,得到所述数据流的流量;
获取所述数据流在当前时间窗的数据包的数量与所述当前时间窗的时长之间的比值,得到所述数据流的包量;
获取所述数据流在第一统计时间段的第一流量以及所述数据流在第二统计时间段的第二流量,根据所述第一流量与所述第二流量之间的差距,获取所述数据流的斜率,所述第一统计时间段以及所述第二统计时间段为所述当前时间窗中两个相邻的统计时间段;
获取所述数据流在第一统计时间段的第一包量以及所述数据流在第二统计时间段的第二包量,根据所述第一包量与所述第二包量之间的差距,获取所述数据流的斜率;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的源互联网协议地址IP地址,得到多个源IP地址,根据每个源IP地址在所述多个源IP地址中的出现次数,获取所述每个源IP地址的出现概率,根据所述每个源IP地址的出现概率,获取源IP地址的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的源端口号,得到多个源端口号,根据每个源端口号的出现次数,获取所述每个源端口号的出现概率,根据所述每个源端口号的出现概率,获取源端口号的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的源IP地址与源端口号之间的比值,得到多个比值;根据所述多个比值中每个比值的出现次数,获取所述每个比值的出现概率,根据所述每个比值的出现概率,获取比值的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的目的端口号,得到多个目的端口号,根据每个目的端口号的出现次数,获取所述每个目的端口号的出现概率,根据所述每个目的端口号的出现概率,获取目的端口号的信息熵,作为所述数据流的信息熵;
根据所述数据流在当前时间窗的多个数据包,获取所述多个数据包中每个数据包的包长,对于包长分布向量的每个位,根据所述每个数据包的包长,获取包长处于所述位对应的包长区间的包量,将所述位置位为所述包量,所述包长分布向量中每一个位对应一个包长区间,每个位的取值为所述数据流中包长处于对应包长区间的包量;
获取所述数据流在当前时间窗的多个数据包中每个数据包的载荷。
9.根据权利要求1至7中任一项所述的方法,其特征在于,所述获取数据流的多个维度的特征之前,所述方法还包括下述至少一项:
获取历史数据流的流量的标准差,根据所述流量的标准差,获取流量阈值,所述历史数据流的目的IP地址与所述数据流的目的IP地址相同;
获取历史数据流的包量的标准差,根据所述包量的标准差,获取包量阈值;
获取历史数据流的信息熵的标准差,根据所述信息熵的标准差,获取信息熵阈值;
根据历史数据流中的多个数据包的载荷,获取多种历史载荷特征,从所述多种历史载荷特征中选择目标历史载荷特征,存入业务特征库;
根据历史数据流中的多个数据包的历史载荷,获取多种历史载荷特征,对所述多种历史载荷特征进行自然语言处理,得到多个历史词向量,从所述多个历史词向量中选择目标历史词向量,存入词向量库。
10.根据权利要求9所述的方法,其特征在于,
所述获取历史数据流的流量的标准差,根据所述流量的标准差,获取流量阈值,包括:
获取所述历史数据流的流量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取所述统计周期的平均值与标准差的和,作为所述统计周期的流量基线的最大值,获取所述统计周期的平均值与标准差的差,作为所述统计周期的流量基线的最小值;从所述多个统计周期的流量基线中,选择流量的最大的峰值以及最小的谷值;根据所述流量的最大的峰值与所述最小的谷值之间的差距,获取所述流量阈值;
所述获取历史数据流的包量的标准差,根据所述包量的标准差,获取包量阈值,包括:
获取所述历史数据流的包量在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取所述统计周期的平均值与标准差的和,作为所述统计周期的包量基线的最大值,获取所述统计周期的平均值与标准差的差,作为所述统计周期的包量基线的最小值;从所述多个统计周期的包量基线中,选择包量的最大的峰值以及最小的谷值;根据所述包量的最大的峰值与所述最小的谷值之间的差距,获取所述包量阈值;
所述获取历史数据流的信息熵的标准差,根据所述信息熵的标准差,获取信息熵阈值,包括:
获取所述历史数据流的信息熵在多个统计周期的标准差以及平均值,得到多个标准差以及多个平均值;对于任一统计周期,获取所述统计周期的平均值与标准差的和,作为所述统计周期的信息熵基线的最大值,获取所述统计周期的平均值与标准差的差,作为所述统计周期的信息熵基线的最小值;从所述多个统计周期的信息熵基线中,选择信息熵的最大的峰值以及最小的谷值;根据所述信息熵的最大的峰值与所述最小的谷值之间的差距,获取所述信息熵阈值。
11.根据权利要求9所述的方法,其特征在于,
所述从所述多种历史载荷特征中选择目标历史载荷特征,包括下述至少一项:
对于所述多种历史载荷特征中的每种历史载荷特征,获取出现所述历史载荷特征的数据包数量,当所述数据包数量超过数量阈值时,将所述历史载荷特征作为所述目标历史载荷特征;
对于所述多种历史载荷特征中的每种历史载荷特征,获取所述历史载荷特征的占比,当所述历史载荷特征的占比超过占比阈值时,将所述历史载荷特征作为所述目标历史载荷特征,所述占比为具有所述历史载荷特征的数据包的数量与所述历史数据流中多个数据包的数量之间的比值;
对于所述多种历史载荷特征中的每种历史载荷特征,获取所述历史载荷特征的出现时长,当所述历史载荷特征的出现时长超过出现时长阈值时,将所述历史载荷特征作为所述目标历史载荷特征;
所述从所述多个历史词向量中选择目标历史词向量,包括下述至少一项:
对于所述多个历史词向量中的每个历史词向量,获取所述历史词向量的占比,对所述多个历史词向量按照占比的大小进行排序,得到排序结果,从所述排序结果中选取排在前预设位数的历史词向量,作为所述目标历史词向量,任一历史词向量的占比为历史词向量为所述历史词向量的数据包数量与所述历史数据流中多个数据包的数量之间的比值;
对于所述多个历史词向量中的每个历史词向量,获取历史词向量为所述历史词向量的数据包数量,对所述多个历史词向量按照数据包数量的大小进行排序,得到排序结果,从所述排序结果中选取排在前预设位数的历史词向量,作为所述目标历史词向量。
12.根据权利要求1所述的方法,其特征在于,所述根据所述多个维度的分类结果,获取网络攻击的检测结果,包括:
根据每个维度的权重,对所述多个维度的分类结果加权求和,得到加权和值;
当所述加权和值大于加权和值阈值时,获取第一检测结果,所述第一检测结果表示所述数据流的目的地址受到网络攻击;
当所述加权和值不大于加权和值阈值时,获取第二检测结果,所述第二检测结果表示所述数据流的目的地址受到网络攻击。
13.一种网络攻击检测装置,其特征在于,所述装置包括:
获取模块,用于获取数据流的多个维度的特征;
调用模块,用于调用多个分类模型,每个分类模型用于根据数据流的一个维度的特征预测数据流是否为异常数据流;
处理模块,用于对于所述多个维度的特征中每个维度的特征,将所述维度的特征输入所述多个分类模型中所述维度对应的分类模型,输出所述维度的分类结果;
所述获取模块,用于根据所述多个维度的分类结果,获取网络攻击的检测结果。
14.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个易失性或非易失性存储器,所述一个或多个易失性或非易失性存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求12任一项所述的网络攻击检测方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求12任一项所述的网络攻击检测方法。
CN201910245176.6A 2019-03-28 2019-03-28 网络攻击检测方法、装置、设备及存储介质 Pending CN109951491A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910245176.6A CN109951491A (zh) 2019-03-28 2019-03-28 网络攻击检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910245176.6A CN109951491A (zh) 2019-03-28 2019-03-28 网络攻击检测方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN109951491A true CN109951491A (zh) 2019-06-28

Family

ID=67012402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910245176.6A Pending CN109951491A (zh) 2019-03-28 2019-03-28 网络攻击检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109951491A (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417748A (zh) * 2019-07-08 2019-11-05 新华三信息安全技术有限公司 一种攻击检测方法及装置
CN110505196A (zh) * 2019-07-02 2019-11-26 中国联合网络通信集团有限公司 物联网卡异常检测方法及装置
CN110958245A (zh) * 2019-11-29 2020-04-03 广州市百果园信息技术有限公司 一种攻击的检测方法、装置、设备和存储介质
CN111131247A (zh) * 2019-12-24 2020-05-08 国家计算机网络与信息安全管理中心 一种车载内部网络入侵检测系统
CN111163114A (zh) * 2020-04-02 2020-05-15 腾讯科技(深圳)有限公司 用于检测网络攻击的方法和设备
CN111212337A (zh) * 2019-12-27 2020-05-29 中国联合网络通信集团有限公司 端口分类方法及装置
CN111291922A (zh) * 2020-01-16 2020-06-16 东华大学 一种基于动态时间窗的混杂数据流分流量预测方法
CN111404949A (zh) * 2020-03-23 2020-07-10 深信服科技股份有限公司 一种流量检测方法、装置、设备及存储介质
CN111478921A (zh) * 2020-04-27 2020-07-31 深信服科技股份有限公司 一种隐蔽信道通信检测方法、装置及设备
CN111600894A (zh) * 2020-05-20 2020-08-28 新华三信息安全技术有限公司 一种网络攻击检测方法及装置
CN111800391A (zh) * 2020-06-12 2020-10-20 哈尔滨安天科技集团股份有限公司 端口扫描攻击的检测方法、装置、电子设备及存储介质
CN111901324A (zh) * 2020-07-20 2020-11-06 杭州安恒信息技术股份有限公司 一种基于序列熵流量识别的方法、装置和存储介质
CN111901316A (zh) * 2020-07-14 2020-11-06 袁媛 应用于工业互联网的网络流量异常检测方法及大数据平台
CN112242971A (zh) * 2019-07-16 2021-01-19 中兴通讯股份有限公司 一种流量异常检测方法、装置、网络设备及存储介质
CN112422554A (zh) * 2020-11-17 2021-02-26 杭州安恒信息技术股份有限公司 一种检测异常流量外连的方法、装置、设备及存储介质
CN112583808A (zh) * 2020-12-08 2021-03-30 国网湖南省电力有限公司 针对物联网设备的异常流量检测方法
TWI730927B (zh) * 2020-11-20 2021-06-11 財團法人資訊工業策進會 模糊測試裝置及模糊測試方法
CN113595995A (zh) * 2021-07-12 2021-11-02 中国联合网络通信集团有限公司 一种容器零信任安全防护方法及系统
CN114257444A (zh) * 2021-12-20 2022-03-29 奇安信科技集团股份有限公司 一种可疑外连的检测方法及装置
CN114745139A (zh) * 2022-06-08 2022-07-12 深圳市永达电子信息股份有限公司 一种基于类脑存算的网络行为检测方法及装置
CN114884715A (zh) * 2022-04-27 2022-08-09 深信服科技股份有限公司 一种流量检测方法、检测模型训练方法、装置及相关设备
CN117439827A (zh) * 2023-12-22 2024-01-23 中国人民解放军陆军步兵学院 一种网络流量大数据分析方法
CN117688464A (zh) * 2024-02-04 2024-03-12 国网上海市电力公司 一种基于多源传感器数据的隐患分析方法及系统
CN117688464B (zh) * 2024-02-04 2024-04-19 国网上海市电力公司 一种基于多源传感器数据的隐患分析方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821081A (zh) * 2011-06-10 2012-12-12 中国电信股份有限公司 监测小流量ddos攻击的方法和系统
US20150350231A1 (en) * 2004-10-13 2015-12-03 Dell Software Inc. Method and an apparatus to perform multiple packet payloads analysis
CN105847250A (zh) * 2016-03-22 2016-08-10 甘肃农业大学 VoIP流媒体多维度信息隐写实时检测方法
CN108234524A (zh) * 2018-04-02 2018-06-29 广州广电研究院有限公司 网络数据异常检测的方法、装置、设备及存储介质
CN108650218A (zh) * 2018-03-22 2018-10-12 平安科技(深圳)有限公司 网络流量监测方法、装置、计算机设备及存储介质
CN108737447A (zh) * 2018-06-22 2018-11-02 腾讯科技(深圳)有限公司 用户数据报协议流量过滤方法、装置、服务器及存储介质
CN108965347A (zh) * 2018-10-10 2018-12-07 腾讯科技(深圳)有限公司 一种分布式拒绝服务攻击检测方法、装置及服务器
CN109067787A (zh) * 2018-09-21 2018-12-21 腾讯科技(深圳)有限公司 分布式拒绝服务ddos攻击检测方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150350231A1 (en) * 2004-10-13 2015-12-03 Dell Software Inc. Method and an apparatus to perform multiple packet payloads analysis
CN102821081A (zh) * 2011-06-10 2012-12-12 中国电信股份有限公司 监测小流量ddos攻击的方法和系统
CN105847250A (zh) * 2016-03-22 2016-08-10 甘肃农业大学 VoIP流媒体多维度信息隐写实时检测方法
CN108650218A (zh) * 2018-03-22 2018-10-12 平安科技(深圳)有限公司 网络流量监测方法、装置、计算机设备及存储介质
CN108234524A (zh) * 2018-04-02 2018-06-29 广州广电研究院有限公司 网络数据异常检测的方法、装置、设备及存储介质
CN108737447A (zh) * 2018-06-22 2018-11-02 腾讯科技(深圳)有限公司 用户数据报协议流量过滤方法、装置、服务器及存储介质
CN109067787A (zh) * 2018-09-21 2018-12-21 腾讯科技(深圳)有限公司 分布式拒绝服务ddos攻击检测方法和装置
CN108965347A (zh) * 2018-10-10 2018-12-07 腾讯科技(深圳)有限公司 一种分布式拒绝服务攻击检测方法、装置及服务器

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110505196A (zh) * 2019-07-02 2019-11-26 中国联合网络通信集团有限公司 物联网卡异常检测方法及装置
CN110417748A (zh) * 2019-07-08 2019-11-05 新华三信息安全技术有限公司 一种攻击检测方法及装置
CN112242971B (zh) * 2019-07-16 2023-06-16 中兴通讯股份有限公司 一种流量异常检测方法、装置、网络设备及存储介质
CN112242971A (zh) * 2019-07-16 2021-01-19 中兴通讯股份有限公司 一种流量异常检测方法、装置、网络设备及存储介质
CN110958245A (zh) * 2019-11-29 2020-04-03 广州市百果园信息技术有限公司 一种攻击的检测方法、装置、设备和存储介质
CN110958245B (zh) * 2019-11-29 2022-03-04 广州市百果园信息技术有限公司 一种攻击的检测方法、装置、设备和存储介质
CN111131247B (zh) * 2019-12-24 2020-12-25 国家计算机网络与信息安全管理中心 一种车载内部网络入侵检测系统
CN111131247A (zh) * 2019-12-24 2020-05-08 国家计算机网络与信息安全管理中心 一种车载内部网络入侵检测系统
CN111212337A (zh) * 2019-12-27 2020-05-29 中国联合网络通信集团有限公司 端口分类方法及装置
CN111212337B (zh) * 2019-12-27 2022-02-25 中国联合网络通信集团有限公司 端口分类方法及装置
CN111291922A (zh) * 2020-01-16 2020-06-16 东华大学 一种基于动态时间窗的混杂数据流分流量预测方法
CN111291922B (zh) * 2020-01-16 2022-06-21 东华大学 一种基于动态时间窗的混杂数据流分流量预测方法
CN111404949A (zh) * 2020-03-23 2020-07-10 深信服科技股份有限公司 一种流量检测方法、装置、设备及存储介质
CN111163114A (zh) * 2020-04-02 2020-05-15 腾讯科技(深圳)有限公司 用于检测网络攻击的方法和设备
CN111478921A (zh) * 2020-04-27 2020-07-31 深信服科技股份有限公司 一种隐蔽信道通信检测方法、装置及设备
CN111600894A (zh) * 2020-05-20 2020-08-28 新华三信息安全技术有限公司 一种网络攻击检测方法及装置
CN111600894B (zh) * 2020-05-20 2023-05-16 新华三信息安全技术有限公司 一种网络攻击检测方法及装置
CN111800391A (zh) * 2020-06-12 2020-10-20 哈尔滨安天科技集团股份有限公司 端口扫描攻击的检测方法、装置、电子设备及存储介质
CN111800391B (zh) * 2020-06-12 2023-05-23 安天科技集团股份有限公司 端口扫描攻击的检测方法、装置、电子设备及存储介质
CN111901316A (zh) * 2020-07-14 2020-11-06 袁媛 应用于工业互联网的网络流量异常检测方法及大数据平台
CN111901324B (zh) * 2020-07-20 2023-02-28 杭州安恒信息技术股份有限公司 一种基于序列熵流量识别的方法、装置和存储介质
CN111901324A (zh) * 2020-07-20 2020-11-06 杭州安恒信息技术股份有限公司 一种基于序列熵流量识别的方法、装置和存储介质
CN112422554A (zh) * 2020-11-17 2021-02-26 杭州安恒信息技术股份有限公司 一种检测异常流量外连的方法、装置、设备及存储介质
TWI730927B (zh) * 2020-11-20 2021-06-11 財團法人資訊工業策進會 模糊測試裝置及模糊測試方法
CN112583808A (zh) * 2020-12-08 2021-03-30 国网湖南省电力有限公司 针对物联网设备的异常流量检测方法
CN112583808B (zh) * 2020-12-08 2022-01-07 国网湖南省电力有限公司 针对物联网设备的异常流量检测方法
CN113595995A (zh) * 2021-07-12 2021-11-02 中国联合网络通信集团有限公司 一种容器零信任安全防护方法及系统
CN114257444A (zh) * 2021-12-20 2022-03-29 奇安信科技集团股份有限公司 一种可疑外连的检测方法及装置
CN114884715A (zh) * 2022-04-27 2022-08-09 深信服科技股份有限公司 一种流量检测方法、检测模型训练方法、装置及相关设备
CN114745139B (zh) * 2022-06-08 2022-10-28 深圳市永达电子信息股份有限公司 一种基于类脑存算的网络行为检测方法及装置
CN114745139A (zh) * 2022-06-08 2022-07-12 深圳市永达电子信息股份有限公司 一种基于类脑存算的网络行为检测方法及装置
CN117439827A (zh) * 2023-12-22 2024-01-23 中国人民解放军陆军步兵学院 一种网络流量大数据分析方法
CN117439827B (zh) * 2023-12-22 2024-03-08 中国人民解放军陆军步兵学院 一种网络流量大数据分析方法
CN117688464A (zh) * 2024-02-04 2024-03-12 国网上海市电力公司 一种基于多源传感器数据的隐患分析方法及系统
CN117688464B (zh) * 2024-02-04 2024-04-19 国网上海市电力公司 一种基于多源传感器数据的隐患分析方法及系统

Similar Documents

Publication Publication Date Title
CN109951491A (zh) 网络攻击检测方法、装置、设备及存储介质
CN110149343A (zh) 一种基于流的异常通联行为检测方法和系统
CN106357622B (zh) 基于软件定义网络的网络异常流量检测防御系统
CN108234524A (zh) 网络数据异常检测的方法、装置、设备及存储介质
CN109067586A (zh) DDoS攻击检测方法及装置
CN111475680A (zh) 检测异常高密子图的方法、装置、设备及存储介质
CN107302547A (zh) 一种web业务异常检测方法及装置
CN107579956A (zh) 一种用户行为的检测方法和装置
CN110519128A (zh) 一种基于随机森林的操作系统识别方法
CN103581186A (zh) 一种网络安全态势感知方法及系统
Li et al. A supervised clustering and classification algorithm for mining data with mixed variables
CN106982230A (zh) 一种流量检测方法及系统
TWI783229B (zh) 網路異常流量偵測裝置及網路異常流量偵測方法
CN110505630A (zh) 无线网络入侵检测方法、装置及电子设备
CN109818961A (zh) 一种网络入侵检测方法、装置和设备
CN110324327B (zh) 基于特定企业域名数据的用户及服务器ip地址标定装置及方法
CN109684052A (zh) 事务分析方法、装置、设备及存储介质
CN109936113A (zh) 一种基于随机森林算法的保护动作智能诊断方法及系统
CN110493260A (zh) 一种网络洪范攻击行为检测方法
CN108156114A (zh) 电力信息物理系统网络攻击图的关键节点确定方法及装置
CN106506557B (zh) 一种端口扫描检测方法及装置
CN109299160B (zh) 一种基于监控大数据挖掘的电力cps安全性分析方法
CN107766204A (zh) 一种检查集群健康状态的方法和系统
CN107247450A (zh) 基于贝叶斯网络的断路器故障诊断方法
CN107483487A (zh) 一种基于topsis的多维网络安全度量方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190628

RJ01 Rejection of invention patent application after publication