基于机器学习的网络安全攻击类型和威胁等级预测方法与流程

文档序号:29850345发布日期:2022-04-30 07:39阅读:300来源:国知局
基于机器学习的网络安全攻击类型和威胁等级预测方法与流程

1.本发明涉及网络数据安全技术领域,尤其是指一种基于机器学习的网络安全攻击类型和威胁等级预测方法。


背景技术:

2.互联网的飞速发展给人们的生活带来便利的同时,也给网络攻击者提供了良好的环境。网络安全问题不仅关乎民生,也关乎到国家安全,因此,网络安全问题已经成为互联网领域最重要的发展研究方向之一。现有技术中提出了利用机器学习算法进行网络流量异常检测的方法,如支持向量机、人工神经网络、决策树、贝叶斯算法以及一些无监督学习方法,均被应用于网络流量异常检测中。但传统的网络安全态势预测方法对于网络流量数据大多仅进行异常检测,其预测结果也仅能展示网络异常情况,现有技术中并未提出对具体的网络攻击类型或和网络安全威胁等级进行预测的方法。


技术实现要素:

3.本发明的目的是克服现有技术中的缺点,提供一种基于机器学习的网络安全攻击类型和威胁等级预测方法。
4.本发明的目的是通过下述技术方案予以实现:
5.一种基于机器学习的网络安全攻击类型和威胁等级预测方法,包括以下步骤:
6.步骤一,采集历史网络流量数据,并根据攻击类型和安全威胁等级对网络流量数据进行分类;
7.步骤二,对分类后的网络流量数据进行数据预处理,并根据预处理后的网络流量数据构建训练集和测试集;
8.步骤三,对预设的每种机器学习算法建立对应的预测模型,采用每种机器学习算法根据训练集对对应的预测模型进行训练,获取每种机器学习算法的预测准确率;
9.步骤四,选择预测准确率最高机器学习算法对应的预测模型,实时采集新的网络流量数据,并采用选择的预测模型以及新的网络流量数据获取攻击类型和威胁等级的预测结。
10.进一步的,步骤三中通过混淆矩阵图像获取每种机器学习算法训练后的预测模型的预测准确率,通过混淆矩阵图像获取预测模型的预测准确率的具体过程为:根据预测模型的预测结果获取每种攻击类型的数量,并根据每种攻击类型的数量构建混淆矩阵,并对每种攻击类型在矩阵图像中的位置进行检测,根据每种攻击类型在矩阵图像中的位置获取预测模型的预测准确曲线,并将预测准确曲线与矩阵图像的对角线进行比较,并计算预测准确曲线与矩阵图像的对角线的偏差值,根据计算所得偏差值获取预测准确度,偏差值越小,该预测模型的预测准确性越高。
11.进一步的,步骤四中在选择预测准确率最高的预测模型后,还对选择的预测模型的预测误报率进行计算,并将预测误报率的计算结果与预设阈值范围进行比较,若预测误
报率的计算结果超过预设阈值范围,则从剩下的预测模型中重新选择预测准确性最高的预测模型,并重新进行预测误报率的计算,直至选择的预测模型的预测误报率处于预设阈值范围内;若预测误报率的计算结果处于预设阈值范围内,则利用选择的预测模型进行网络安全攻击类型和威胁等级的预测。
12.进一步的,所述网络攻击类型包括dos攻击类型、probe攻击类型、r2l攻击类型和u2r攻击类型。
13.进一步的,步骤三中预设的机器学习算法包括决策树算法、支持向量机算法、k最近邻算法、随机森林算法、多层人工神经网络深度学习算法和双向循环神经网络深度学习算法。
14.进一步的,步骤二中所述数据预处理包括数值化处理和标准化处理,在进行数据预处理前,将分类后的历史网络流量数据按照数值类型和字符类型进行二次分类,对于数值类型的历史网络流量数据进行标准化处理,对于字符类型的历史网络流量数据进行数值化处理,再对数值化处理后的字符类型的历史网络流量数据进行标准化处理。
15.进一步的,所述数值化处理具体为选择字符类型的历史网络流量数据的其中一个特征,筛选出该特征内所有不同的字符串,并确定不同的字符串的数量,并将不同的字符串用整数进行标号。
16.进一步的,所述标准化处理的公式为:
[0017][0018]
其中:x
ij
为第j个属性的第i个值,max(xj)为第j个属性的最大值。
[0019]
本发明的有益效果是:
[0020]
能够进一步细化网络安全的异常预测问题,能够给出网络异常情况下,具体的攻击类型和威胁等级的预测,为后续网络安全异常处理提供处理依据,提高网络安全的异常处理效率,进一步保障网络安全。且考虑到网络流量数据中各种网络安全因素之间的相关性和重要程度之间的差异性对于模型预测准确性的影响,采用了多种机器学习算法进行模型训练,并从各类机器学习算法中选择预测准确率最高的算法,用于攻击类型和威胁等级的预测,保障了预测结果的准确性。还对各种攻击类型的预测误报率进行计算,进一步保证选择的预测模型的预测准确性。
附图说明
[0021]
图1是本发明的一种流程示意图;
[0022]
图2是本发明实施例的一种基于kdd99数据集的攻击类型分布示意图;
[0023]
图3是本发明实施例的一种基于kdd99数据集的6种机器学习算法的预测准确性和对应运行时长测算结果示意图;
[0024]
图4是本发明实施例的一种基于kdd99数据集的决策树算法预测的每类攻击类型预测误报率示意图;
[0025]
图5是本发明实施例的一种基于网络数据集的威胁等级分布示意图;
[0026]
图6是本发明实施例的一种基于网络数据集的6种机器学习算法的预测准确性和对应运行时长测算结果示意图。
具体实施方式
[0027]
下面结合附图和实施例对本发明进一步描述。
[0028]
实施例:
[0029]
一种基于机器学习的网络安全攻击类型和威胁等级预测方法,如图1所示,包括以下步骤:
[0030]
步骤一,采集历史网络流量数据,并根据攻击类型和安全威胁等级对网络流量数据进行分类;
[0031]
步骤二,对分类后的网络流量数据进行数据预处理,并根据预处理后的网络流量数据构建训练集和测试集;
[0032]
步骤三,对预设的每种机器学习算法建立对应的预测模型,采用每种机器学习算法根据训练集对对应的预测模型进行训练,获取每种机器学习算法的预测准确率;
[0033]
步骤四,选择预测准确率最高机器学习算法对应的预测模型,实时采集新的网络流量数据,并采用选择的预测模型以及新的网络流量数据获取攻击类型和威胁等级的预测结。
[0034]
步骤三中通过混淆矩阵图像获取每种机器学习算法训练后的预测模型的预测准确率,通过混淆矩阵图像获取预测模型的预测准确率的具体过程为:根据预测模型的预测结果获取每种攻击类型的数量,并根据每种攻击类型的数量构建混淆矩阵,并对每种攻击类型在矩阵图像中的位置进行检测,根据每种攻击类型在矩阵图像中的位置获取预测模型的预测准确曲线,并将预测准确曲线与矩阵图像的对角线进行比较,并计算预测准确曲线与矩阵图像的对角线的偏差值,根据计算所得偏差值获取预测准确度,偏差值越小,该预测模型的预测准确性越高。
[0035]
步骤四中在选择预测准确率最高的预测模型后,还对选择的预测模型的预测误报率进行计算,并将预测误报率的计算结果与预设阈值范围进行比较,若预测误报率的计算结果超过预设阈值范围,则从剩下的预测模型中重新选择预测准确性最高的预测模型,并重新进行预测误报率的计算,直至选择的预测模型的预测误报率处于预设阈值范围内;若预测误报率的计算结果处于预设阈值范围内,则利用选择的预测模型进行网络安全攻击类型和威胁等级的预测。
[0036]
所述网络攻击类型包括dos攻击类型、probe攻击类型、r2l攻击类型和u2r攻击类型。
[0037]
步骤三中预设的机器学习算法包括决策树算法(dectr)、支持向量机算法(svm)、k最近邻算法(knn)、随机森林算法(rf)、多层人工神经网络深度学习算法(bp)和双向循环神经网络深度学习算法(bi-gru)。
[0038]
步骤二中所述数据预处理包括数值化处理和标准化处理,在进行数据预处理前,将分类后的历史网络流量数据按照数值类型和字符类型进行二次分类,对于数值类型的历史网络流量数据进行标准化处理,对于字符类型的历史网络流量数据进行数值化处理,再对数值化处理后的字符类型的历史网络流量数据进行标准化处理。
[0039]
所述数值化处理具体为选择字符类型的历史网络流量数据的其中一个特征,筛选出该特征内所有不同的字符串,并确定不同的字符串的数量,并将不同的字符串用整数进行标号。
[0040]
以某个特征为例,该特征中具备10个不同的字符串,则将这些字符串转化为1-10数值,后续进行标准化处理时,将每个数值除以10,即可实现标准化处理。
[0041]
所述标准化处理的公式为:
[0042][0043]
其中:x
ij
为第j个属性的第i个值,max(xj)为第j个属性的最大值。
[0044]
以kdd99数据集为例进行网络攻击类型预测。
[0045]
kdd99数据集内含有约16.7万条信息,41个特征,1个标签,标签为攻击类型,能够将kdd99数据集的标签分为五类数据,具体类型为normal类型、dos攻击类型、probe攻击类型、r2l攻击类型和u2r攻击类型,其中normal类数据为正常类数据,表示网络没有遭受任何潜在安全威胁。
[0046]
kdd99数据集中的41个特征包括9个tcp连接基本特征,13个tcp连接的内容特征、9个基于时间的网络流量统计特征以及10个基于主机的网络流量统计特征。在后续根据预测模型进行预测时,基于41个特征对某一行为是否存在网络安全威胁进行预测,并对其攻击类型进行预测。
[0047]
在将kdd99数据集进行预处理后,将其随机分为训练集、验证集和测试集,其占比分别为训练集占比60%,验证集占比15%,测试集占比25%。根据kdd99数据集构建的训练集和测试集中对应的攻击类型分布如图2所示,分析后可知训练集和测试集中各攻击类型分布相近,其中正常类型的最多,而攻击类型中dos攻击类型的占比最高,u2r攻击占比最低,可知u2r类攻击较少出现。
[0048]
在通过机器学习算法进行模型训练学习时,对于决策树算法,支持向量机算法,最近邻算法,随机森林算法四种算法,直接采用默认模型参数,对于多层人工神经网络深度学习算法和双向循环神经网络深度学习算法,对模型参数进行设置,所述模型参数的设置具体为设置3个隐藏层,每层神经元数量设置为80个,且模型最后一层采用全连接层。并将dropout设为0.2,即随机将20%的神经元当作遗忘,能够有效减少或避免进入局部最优解和过拟合,将运算批量大小batch_size设置为64,其他模型参数则采用默认参数。
[0049]
具体采用混淆矩阵图像确定每个机器学习算法的预测准确性,混淆矩阵表示测试集中的数据被预测为各个攻击类型的数量构成的矩阵。如果各个攻击类型在混淆矩阵图像上的位置全在对角线上,则表明预测准确度达到了100%,6种算法的预测准确性和相应算法的运行时长测算结果如图3所示,由此可以看出,决策树算法准确度最高,约为99.20%,多层人工神经网络深度学习算法次之,约为99.03%,最近邻算法约为98.89%,随机森林算法约为98.68%,双向循环神经网络算法约为96.83%,而支持向量机算法准确度最差,约为94.06%。
[0050]
综合运行时长,可以看出,支持向量机算法不仅准确度低,运行时长也高,而k最近邻算法尽管准确度较高,但是预测时间较长,约为270秒。决策树算法则在准确度和时间方面都占据绝对优势,因此选定决策树算法作为进行预测的机器学习算法。
[0051]
为了对预测结果的精确度进行更加准确的判断,还进一步分析各类攻击类型的预测误报率,每类攻击类型对应的预测误报率如图4所示,由图可知,u2r误报为“正常”的比例比其他几种类型要高,约为8%,r2l误报为“正常”的比例约为7%,其他攻击类型的误报率
都低于2%。u2r和r2l攻击类型误报率较高的原因可能是这两种攻击类型样本很少,如u2r攻击类型样本数不到50,而误报率均处于预设阈值范围内。
[0052]
以某公司的网络数据集为例进行网络攻击类型预测。
[0053]
根据某公司一整年的网络信息构建网络数据集,所述网络数据集内包括13万余条网络信息,每条网络信息包含38个字段,其中与网络安全威胁等级相关的字段有12个,分别为msgtype(消息类型)、protocol(协议类型),direct(威胁方向)、acted(对该告警的策略动作)、sport(源端口)、dport(目的端口)、msg(告警描述信息)、ds(触发告警威胁字段)、iscdnip(是否为cdn ip)、alert_type(告警类型)、attack_dir(攻击方向)和attack_chain(攻击阶段)。而该网络数据集的标签为alterlevel(威胁等级),可以分为1级威胁等级、2级威胁等级和3级威胁等级。
[0054]
在进行威胁等级预测前,需要先对该网络数据集进行数据过滤,仅留下异常数据,然后对异常数据的安全威胁等级进行预测,即预测alterlevel的值。
[0055]
首先将数据过滤后的网络数据集随机分为训练集、验证集和测试集,并利用训练接、验证集和测试集根据6类机器学习算法进行预测学习,训练集和测试集中各威胁等级的分布如图5所示。
[0056]
在进行预测学习时,对预测模型的参数进行设置,对于决策树算法、支持向量机算法、最近邻算法、随机森林算法四种算法,直接使用默认模型参数;对于多层人工神经网络深度学习算法和双向循环神经网络深度学习算法,对模型参数进行设置,所述模型参数的设置具体为设置3个隐藏层,每层神经元数量设置为80个,且模型最后一层采用全连接层。并将dropout设为0.2,即随机将20%的神经元当作遗忘,能够有效减少或避免进入局部最优解和过拟合,将运算批量大小batch_size设置为64,其他模型参数则采用默认参数。
[0057]
通过测试集获取每种机器学习算法的预测结果,结果如图6所示,从图6的预测结果发现,随机森林算法、决策树算法和k最近邻算法三种算法预测准确度都能达到100%。支持向量机算法预测准确度最差,同时支持向量机算法和双向循环神经网络算法的运行时长也很高。随机森林算法、决策树算法和k最近邻算法三种算法不仅预测非常准确,运行时间也短,尤其是决策树算法,不管是训练时间还是预测时间,都不到1秒,因此也采用决策树算法实现威胁等级的预测。
[0058]
由此可见决策树算法对于攻击类型和威胁等级均能够实现高效准确的预测。
[0059]
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1