1.一种基于机器学习的动态网络攻击识别方法,其特征在于,包括以下步骤:S10:采集动态网络的待检测流量,转换获得流量样本集;
S20:剔除所述流量样本集中不完全特征和格式错误特征的流量样本;
S30:基于流量样本集的特征方差对流量样本进行二次剔除;
S40:基于K‑means算法对二次剔除后的流量样本集进行类簇划分,获得异常类簇;
S50:判断所述异常类簇对应的动态网络遭受的攻击类型;
所述S40中的类簇划分包括选取二次剔除后的流量样本集最近的簇心,对簇心进行迭代更新并计算样本与更新后簇心之间的距离,基于样本与更新后簇心之间的距离得到多个类簇,并划分异常类簇和正常类簇;
所述划分异常类簇和正常类簇包括按照类簇中包含的数据的个数进行排序,预设数据个数数值,将大于预设数据个数数值的类簇划分为异常类簇,对应被网络攻击的样本数据;
将小于或等于预设数据个数数值的类簇划分为正常类簇,对应未被网络攻击的样本数据;
所述S40包括:首先选取一个数据,采用欧式距离获取距离选取数据最近的簇心,并使簇心在选取数据所在的路径中进行迭代更新,计算样本与迭代更新后的簇心之间的距离,完成类簇划分;
选取数据所在路径公式为:
迭代更新的损失函数公式为:
′
使簇心在选取数据所在的路径中进行迭代更新的迭代计算方式不断更新α的值;
使簇心在选取数据所在的路径中进行迭代更新的迭代计算方式为在路径方向上求得极小点进行迭代更新,极小点公式为:式中,minf(α)为路径上的极小点,H为样本数据, 为全部样本数据的平均值,T为数据特征的方差;
所述S30中的二次剔除包括计算流量样本集的特征方差,设置过滤阈值,将特征方差小于过滤阈值的流量样本进行剔除;
所述计算流量样本集的特征方差公式如下:
i
式中,xj为样本集中第j维的特征,n为样本集中的样本数量, 为样本x 的第j维的特征, 为样本集中第j维的特征均值;
所述流量样本集公式如下:
i
式中,m为样本x的维度数量。
2.根据权利要求1所述的一种基于机器学习的动态网络攻击识别方法,其特征在于,所述S10中的转换获得流量样本集包括采用CICFlowerMeter工具的在线和/或离线的处理模式,将待检测流量转换为格式统一和维度相同的流量样本集。
3.根据权利要求2所述的一种基于机器学习的动态网络攻击识别方法,其特征在于,所述CICFlowerMeter工具的在线和/或离线的处理模式包括:在线处理模式下,终端连接动态网络后捕获数据包,将数据包导入CICFlowerMeter中进行在线处理获得流量样本集;
离线处理模式下,将离线下载的pcap文件导入,利用文件生成双向流计算网络流量并统计特征,获得流量样本集。
4.根据权利要求1所述的一种基于机器学习的动态网络攻击识别方法,其特征在于,在所述S30中的二次剔除后还包括对二次剔除后的流量样本集进行归一化处理,公式如下:式中, 为归一化后的样本集中第j维的特征,xj为样本集中第j维的特征,min(xj)为样本集中第j维的特征的最小值,max(xj)为样本集中第j维的特征的最大值,m为编码后维度,δ为预设常数。
5.根据权利要求1所述的一种基于机器学习的动态网络攻击识别方法,其特征在于,所述S50中判断所述异常类簇对应的动态网络遭受的攻击类型包括将异常类簇输入单分类器的支持向量机,输出置信度,基于置信度判断异常类簇遭受的网络攻击是否为已知的网络攻击类型。
6.根据权利要求5所述的一种基于机器学习的动态网络攻击识别方法,其特征在于,所述基于置信度判断异常类簇遭受的网络攻击是否为已知的网络攻击类型包括当支持向量机输出的置信度高于0.8,标记为已知攻击类型;当支持向量机输出的置信度低于0.3,标记为未知攻击类型;当支持向量机输出的置信度介于0.8和0.3之间包括0.8和0.3,人工进行二次判定检查。