技术领域
[0001] 本
发明涉及计算机应用于互联网安全技术领域,特别涉及一种基于大数据环境下网络流量异常检测方法。
背景技术
[0002] 当前网络安全态势异常严峻,网络攻击越来越多地见诸报道,对重点企业、个人和重要部
门机关带来了严重的网络安全威胁。这种高级持续性威胁(APT,advanced persistent threat)利用其极强的针对性、伪装性和阶段性等特性能够很容易地躲避传统检测技术的识别。新型攻击手段技术层出不穷,使得一般的入侵防御系统不能有效匹配识别。与此同时,任何网络攻击都是通过网络传输,在攻击主机与被攻击主机之间必然会有相关数据包传输,这给予了很多网络安全工程师与灵感。其中,从分析、处理网络之间传输流量的
角度去检测网络攻击是一种最有效途径之一。若只是监测、分析部分网络传输数据,则会大大降低网络攻击检测的成功率,一旦局域网被攻破,会带来各种巨大的意想不到的损失。但从全局实时处理所有数据,需要大量的时间及强大的运算能
力。
[0003] 网络异常检测系统需要强大的时效性,越早发现出网络异常,就能更早的阻断网络攻击,也就能很好的减轻甚至避免网络攻击带来的损失。
[0004] 随着计算机技术的发展,
机器学习和
深度学习等相关
算法研究越来越成熟,同时在很多领域运用取得了巨大成功。大
数据处理技术和手段也越来越丰富,从单台计算机处理到由成百上千台计算机组成的集群处理,从批处理衍生到高效、实时流处理,这些大数据处理技术不仅在算力上得到了巨大的提升,同时在响应时间上实现了秒级响应,甚至达到了毫秒级响应,大数据处理方式在技术和和运用上越来越成熟,计算机的处理能力也是越来越强。
[0005] 综上所述,在这样的技术背景和巨大的网络安全威胁下,一种基于大数据实时流量异常检测方法能够通过大数据分析技术对网络流量进行处理和分析,预测网络攻击发生的时间和攻击类型,进而采取有效的防范措施加以防范。网络攻击的发起也不是一瞬间的,网络攻击者对目标进行攻击之前,对目标进行全面的扫描和评估,根据目标的漏洞进而确定将要使用的攻击方法,进行攻击前的准备,然后才发起实施攻击的行为。针对网络攻击者的先前扫描网络流量的捕获和分析,通过在一堆无序的网络流量数据中发现规律,可以预测出网络攻击的发生和行为。
发明内容
[0006] 本发明提供一种基于大数据实时网络流量异常检测方法,能够通过大数据分析技术对网络流量进行处理和分析,预测网络攻击发生的时间和攻击类型,进而采取有效的防范措施加以防范。
[0007] 为实现上述目的,本发明提供一种基于大数据实时网络流量异常检测方法,包括:
[0008] 步骤S1,获取已收集并分析得出攻击类型、存储在
数据库中带攻击标签的历史流量数据;
[0009] 步骤S2,对步骤S1中的所述历史流量数据进行特征提取,数据特征预处理,将类别特征进行文本特征提取编码,对数值型特征进行标准化处理,构建第一类
特征向量;
[0010] 步骤S3,基于步骤S2中的所述第一类特征向量,通过模型训练构建聚类模型,并利用模型评估与调优得到满足预设条件的目标模型;
[0011] 步骤S4,将步骤S3得到的所述目标模型保存并部署上线;
[0012] 步骤S5,实时抓取、收集局域网内传输的实时网络数据流量包信息;
[0013] 步骤S6,对步骤S5中的所述实时网络数据流量包进行特征提取,数据特征预处理,将类别特征进行文本特征提取编码,对数值型特征进行标准化处理,构建第二类特征向量;
[0014] 步骤S7,根据步骤S3中的所述目标模型和所述步骤S6中的所述第二类特征向量,实时在线分析检测并判断出当前的实时网络数据流量是异常流量或是正常流量。
[0015] 所述步骤S2及步骤S6对相应的数据包提取的特征特性,包含:网络数据包的基本数据属性及网络流量的统计特性作为数据属性特征。
[0016] 所述步骤S2及步骤S6类别特征采用one-hot编码。
[0017] 所述步骤S3使用spark大数据计算引擎搭建k-means算法通道,K均值
聚类算法将大量
训练数据进行聚类,训练模型。
[0018] 所述步骤S3中,通过模型评估并增加聚类
迭代次数防止达到局部最优值,同时搜索出最优模型情况下的超参数K值;所述模型评估方法可采用欧氏距离计算方法及使用已经标记攻击类型的样本标签两种方法相结合,其中:
[0019] 欧氏距离计算方法,计算所有样本点的距离,使类簇内部的样本距离尽可能接近,不同类簇的样本相对较远;
[0020] 使用已经标记攻击类型的样本标签,计算出每个类簇中预测正确样本占该类簇中总数的百分比,以此表示该类簇中模型预测的正确率。将所有类簇的正确率相加并求平均得出平均正确率。
[0021] 所述步骤S6构建的特征向量来自实时网络环境下抓取的网络数据,用于步骤S7分析检测和/或用于作为训练集来迭代自优化模型。
[0022] 所述步骤S7中,若判断得出实时网络数据流量为异常流量,给出不正常的网络连接或
访问,则直接发送邮件或短信通知相关人士以示网络流量异常报警。
[0023] 本发明从原始网络流量数据出发,通过41个维度特征进行建模分析,这些特征有基于网络连接基本属性的、基于网络连接内容属性的、基于时间序列的网络流量统计特性的、基于主机的网络流量统计特性的,从无序特征提取到有序特征统计分析,全方位、多角度、大数据背景下构建聚类模型。簇群界定了正常连接区域,那么可以相信那些通过各种复杂的、非法的、非正常的手段发送连接
请求都是异常的,只要处理好那些“未知的未知”,就很很大程度上减免网络攻击带来的威胁,因为最大的威胁往往来自于那些从未被识别和分类的网络连接情况下。
[0025] 特征数据提取于传输于网络中的原始网络数据包中,能够更加真实地、实时地
感知检测网络中的流量状况。
[0026] 特征构建源自全方位、多角度的属性选择和更进一步的统计加工,有基本连接属性,也有基于时间序列网络流量统计特性,使得网络流量异常检测变得更加精准,减少误判率。
[0027] 实时抓取网络数据包提供了海量数据,更能充分训练和完善聚类模型。
[0028] 采用spark计算
框架集群实时计算和分析,大大提升运算能力,真正做到秒级响应,减轻或避免网络攻击带来的威胁和损失。
[0029] 通过设置迭代次数,增大迭代次数,可以减少初始质心随机选择所带来的不利因素,使得模型更加接近最真实的情况,最优模型超参数达到一个全局最优解。
附图说明
[0031] 图2为本发明提供步骤S3的流程图;
[0033] 图4为本发明提供系统部署图。
具体实施方式
[0034] 以下结合附图,进一步说明本发明的具体
实施例。
[0035] 本发明提供一种基于大数据实时网络流量异常检测方法,能够通过大数据分析技术对网络流量进行处理和分析,预测网络攻击发生的时间和攻击类型,进而采取有效的防范措施加以防范。
[0036] 如图1所示,本发明实施例提供的,包括如下步骤:
[0037] (1)步骤S1、读取已经收集并分析出攻击类型、存储在数据库中带攻击标签的流量数据,去掉数据的标签攻击类别。此处去掉标签攻击类别并不代表此类标签不会被使用,而是由于使用的是非监督聚类算法,因此用不到标签类别,但在步骤S3中模型评估将会使用,可以通过标签类别来计算我们聚类的准确率,因此也可以很好的评价聚类模型的好坏。
[0038] (2)步骤S2、
对流量数据进行特征提取,数据特征预处理,将类别类型特征进行one-hot编码处理,对数值型特征进行规范化处理,将其统一缩放在[0,1]之间,优化计算同时可以降低不同维度特征之间数据量级差距之间的影响。
[0039] 规范化处理转换公式如下:
[0040]
[0041] 其中,xi是一列特征向量X的第i个值,xmin是特征向量X中数值最小的一个值,xmax是特征向量X中数值最大的一个值,Xi*是第i个值xi经过规范化变化之后的值。
[0042] 提取的特征主要包含4大类特征,包括:传输控制协议(TCP)连接基本特征、TCP连接的内容特征、基于时间的网络流量统计特征、基于主机的网络流量统计特征。其中具体数据特征包含如下描述:
[0043] a:TCP连接基本特征属性,包括:连接持续时间、协议类型、目标主机的网络服务类型、连接正常或错误的状态、从源主机到目标主机的数据字节数、从目标主机到源主机的数据的字节数、连接是否来自同一主机/端口、错误分段的数量、加急包的个数。
[0044] b:TCP连接的内容特征,包括:访问系统敏感文件和目录的次数、登录尝试失败的次数、是否成功登录、compromised条件(***)出现的次数、是否获得root shell、是否出现“su root”命令、root用户访问次数、文件创建操作的次数、使用shell命令的次数、访问控制文件的次数、一个ftp会话中出现连接的次数、登录是否属于“hot”列表、是否为guest登录。
[0045] c:基于时间序列的网络流量统计特征,以2秒为
时间窗口进行统计,包括:与当前连接具有相同的目标主机的连接数、与当前连接具有相同服务的连接数、在与当前连接具有相同目标主机的连接中,出现“SYN”错误的连接百分比、在与当前连接具有相同服务的连接中,出现“SYN”错误的连接的百分比、在与当前连接具有相同目标主机的连接中,出现“REJ”错误的百分比、在与当前连接具有相同服务的连接中,出现“REJ”错误的连接的百分比、在与当前连接具有相同目标主机的连接中,与当前连接具有相同服务的连接的百分比、在与当前连接具有相同目标主机的连接中,与当前连接具有不同服务的连接的百分比、在与当前连接具有相同服务的连接中,与当前连接具有不同目标主机的连接的百分比。
[0046] d:基于主机的网络流量统计特征,以前100个连接窗口进行统计,包括:在与当前连接具有相同主机的连接数、在与当前连接具有相同目标主机相同服务的连接数、与当前连接具有相同目标主机相同服务的连接所占的百分比、与当前连接具有相同目标主机不同服务的连接所占的百分比、与当前连接具有相同目标主机相同源端口的连接所占的百分比、在与当前连接具有相同目标主机相同服务的连接中,与当前连接具有不同源主机的连接所占的百分比、在与当前连接具有相同目标主机的连接中,出现SYN错误的连接所占的百分比、在与当前连接具有相同目标主机的连接中,出现REJ错误的连接所占的百分比、在与当前连接具有相同目标主机相同服务的连接中,出现REJ错误的连接所占的百分比。
[0047] (3)步骤S3、使用Spark大数据计算引擎,通过Spark ml机器学习库搭建k-means算法通道。K均值聚类算法计算大量训练数据进行聚类,训练模型。模型评估,增加聚类迭代次数防止达到局部最优值,同时搜索出最优模型情况下的超参数K值。
[0048] 其中模型训练和优化包含以下步骤:
[0049] 步骤S31、通过Spark ml机器学习库构建k-means聚类模型进行聚类。
[0050] 步骤S32、对聚类结果进行分析,评估模型的聚类效果。若聚类效果达到预设条件,则进行S4步骤,反之,则进行下一步骤S33。其中,当类簇样本的平方误差E越小、总准确率P越高,则聚类效果就越好,对应地,该预设条件可以是指平方误差E、总准确率P分别达到预设值。
[0051] 步骤S33、可以增加迭代次数,进而增加迭代时间,减少初始质心选择的随机性带来的不利影响,优化聚类结果。对K值进行范围调优,筛选出最优超参数K值。
[0052] 对上述步骤S32步骤中,模型评估方法可采用两种相结合:
[0053] a:采用欧氏距离计算方法,计算所有样本点的距离。具体为:
[0054]
[0055] 其中给定样本xi=(xi1;xi2;...;xin)和给定样本xj=(xj1;xj2;...;xjn)[0056] 使类簇内部的样本距离尽可能接近,不同类簇的样本相对较远,使得最小化平方误差E最小,E值刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。具体为:
[0057]
[0058] 其中样本集D={x1,x2...xm},“k均值”(k-means)算法针对聚类所得划分C={C1,C2,...,Ck}, 是簇Ci的均值向量。
[0059] b:使用已经标记攻击类型的样本标签,计算出每个类簇中预测正确样本占该类簇中总数的百分比,以此表示该类簇中模型聚类的准确率。将所有类簇的准确率相加并求平均得出平均准确率。
[0060] 单个类簇准确率pi计算公式为:
[0061]
[0062] 其中mi为该类簇中数量占第一位的数据的个数,wi为该类簇中所有数据的个数。
[0063] 总准确率P计算公式为:
[0064]
[0065] 其中∑mi为所有类簇中占比第一数据的和,∑wi为所有类簇中所有的数据的和。
[0066] (4)步骤S4、将构建好的模型程序运行在需要进行网络异常检测的局域网中的机器上。
[0067] (5)步骤S5、实时抓取、收集局域网内传输的实时网络数据流量包信息。
[0068] (6)步骤S6、对抓取的实时网络数据流量包进行特征提取,数据特征预处理,将类别特征进行one-hot编码,对数值型特征进行标准化处理,构建特征向量。处理方式见上面步骤S2步骤。步骤S6构建的特征向量来自实时网络环境下抓取的网络数据,用于步骤S7分析检测,同时也会充当训练集来迭代自优化模型,从而不断提高模型分析、判断网络异常的能力。
[0069] (7)步骤S7、异常检测模型对实时处理的特征向量进行分析和预测,给出当前网络流量环境是否正常的判断,若异常,意味着面临被攻击的
风险或者正在被攻击。步骤S7中主要是通过判断待检测的数据点是否在正常网络流量簇范围内,若是,则可以认定为属于正常数据,若否,则判定认为待检测数据点为异常数据。
[0070] 尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种
修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的
权利要求来限定。