本公开涉及网络,尤其涉及一种网络攻击检测方法、模型训练方法及装置、设备及介质。
背景技术:
1、网络攻击有很多种,例如,跨站脚本攻击(xss)是一种比较常见的网页(web)攻击之一。xss攻击常年位居开放web应用安全项目组top10漏洞的前三。现有关于xss的检测方案主要有基于机器学习和基于规则两种。应用于xss检测的常用机器学习算法主要有隐含马尔柯夫模型(hidden markov model,hmm)、k均值聚类算法、支持向量机(support vectormachines,svm)等,基于规则的检测模型都是将攻击样本特征与特征库进行正则匹配。两种检测方法中,基于规则的检测方案实现简便,但相对于未知xss的检测效果不及基于机器学习的检测方案,容易被变种的xss攻击请求给绕过。
技术实现思路
1、本公开实施例提供了一种网络攻击检测方法、模型训练方法及装置、设备及介质,以解决提升xss攻击的防御率和检测正确率。
2、本公开实施例第一方面提供一种网络攻击检测模型训练方法,包括:
3、将网络攻击检测模型识别的统一资源定位符(uniform resource locator,url),确定为继续训练所述网络攻击检测模型的样本url,其中,所述样本url包括:第一类标签为正常url的url和第一类标签为异常url的url;所述异常url至少包括:xss攻击的url;
4、对所述样本url进行聚类,得到聚类结果;
5、获取所述聚类结果中至少一类所述样本url的第二类标签,并将已获取第二类标签的样本url添加到样本池中;
6、从所述样本池的所述样本url中选择目标url和所述目标url的标签训练所述网络攻击检测模型。
7、基于上述方案,所述对所述样本url进行聚类,得到聚类结果,包括:
8、对所述样本url进行k均值聚类算法k-means聚类,得到k-means聚类结果。
9、基于上述方案,所述获取所述聚类结果中至少一类所述样本url的第二类标签,包括:
10、根据所述聚类结果,将信息增量最大的一个或多个聚类簇包含的所述样本url输出;
11、得到基于输出的所述样本url的第二类标签。
12、基于上述方案,所述从所述样本池的所述样本url中选择目标url和所述目标url的标签训练所述网络攻击检测模型,包括:
13、基于随机森林算法从所述样本池选择所述目标url,构造决策树;
14、根据所述决策树中一个或多个节点所对应特征的信息增益或者信息量,确定所述目标url的训练特征;
15、利用所述目标url的训练特征和所述目标url的标签,训练所述网络攻击检测模型。
16、基于上述方案,所述基于随机森林算法从所述样本池选择所述目标url,构造决策树,包括:
17、基于所述目标url的特征,构建所述决策树的第s节点;
18、根据所述第s节点对应的所述目标url的特征的信息增益或信息量,分裂所述第s节点得到第s+1节点和第s+2节点,其中,第s+1节点和第s+2节点均为所述决策树中所述第s节点的子节点。
19、基于上述方案,所述根据所述第s节点对应的所述目标url的特征的信息增益或信息量,分裂所述第s节点得到第s+1节点和第s+2节点,包括:
20、根据所述第s节点对应的所述样本url的特征中随机选择部分特征;
21、确定被选择的部分特征的信息增益或信息量最大的特征;
22、根据信息增益或信息量最大的特征,分裂所述第s节点得到所述第s+1节点和所述第s+2节点。
23、基于上述方案,所述从所述样本池的所述样本url中选择目标url和所述目标url的标签训练所述网络攻击检测模型,包括:
24、对所述目标url进行分词,得到每一条所述目标url的分词;
25、根据所述分词的词频和逆文档频率,确定每一个所述分词的权重;
26、根据所述权重,确定每一条所述目标url的特征向量;
27、基于所述特征训练,训练所述网络攻击检测模型得到判别结果;
28、基于所述判别结果和所述目标url的标签之间的差异,更新所述网络攻击检测模型的模型参数。
29、本公开实施例第二方面提供一种网络攻击检测方法,所述方法包括:
30、获取待识别的url;
31、使用前述第一方面任意技术方案提供的网络攻击检测模型,识别所述url得到所述url的分类结果;其中,所述分类结果包括:指示所述url为正常url的第一类标签,或者,指示所述url为异常url的第一类标签;
32、收集所述网络攻击检测模型识别的url,其中,收集的所述url作为继续训练所述第一模型的样本url。
33、本公开实施例第三方面提供一种网络攻击检测模型训练装置,所述装置包括:
34、确定模块,用于将网络攻击检测模型识别的统一资源定位符,确定为继续训练所述网络攻击检测模型的样本url,其中,所述样本url包括:第一类标签为正常url的url和第一类标签为异常url的url;所述异常url至少包括:xss攻击的url;
35、聚类模块,用于对所述样本url进行聚类,得到聚类结果;
36、样本池模块,用于获取所述聚类结果中至少一类所述样本url的第二类标签,并将已获取第二类标签的样本url添加到样本池中;
37、训练模块,用于从所述样本池的所述样本url中选择目标url和所述目标url的标签训练所述网络攻击检测模型。
38、基于上述方案,所述聚类模块,具体用于对所述样本url进行k均值聚类算法k-means聚类,得到k-means聚类结果。
39、基于上述方案,所述样本池模块,具体用于根据所述聚类结果,将信息增量最大的一个或多个聚类簇包含的所述样本url输出;得到基于输出的所述样本url的第二类标签。
40、基于上述方案,所述训练模块,具体用于基于随机森林算法从所述样本池选择所述目标url,构造决策树;根据所述决策树中一个或多个节点所对应特征的信息增益或者信息量,确定所述目标url的训练特征;利用所述目标url的训练特征和所述目标url的标签,训练所述网络攻击检测模型。
41、基于上述方案,所述训练模块,具体用于基于所述目标url的特征,构建所述决策树的第s节点;根据所述第s节点对应的所述目标url的特征的信息增益或信息量,分裂所述第s节点得到第s+1节点和第s+2节点,其中,第s+1节点和第s+2节点均为所述决策树中所述第s节点的子节点。
42、基于上述方案,所述训练模块,具体用于根据所述第s节点对应的所述样本url的特征中随机选择部分特征;确定被选择的部分特征的信息增益或信息量最大的特征;根据信息增益或信息量最大的特征,分裂所述第s节点得到所述第s+1节点和所述第s+2节点。
43、基于上述方案,所述训练模块,具体用于对所述目标url进行分词,得到每一条所述目标url的分词;根据所述分词的词频和逆文档频率,确定每一个所述分词的权重;根据所述权重,确定每一条所述目标url的特征向量;基于所述特征训练,训练所述网络攻击检测模型得到判别结果;
44、基于所述判别结果和所述目标url的标签之间的差异,更新所述网络攻击检测模型的模型参数。
45、本公开实施例第四方面提供一种网络攻击检测装置,所述装置包括:
46、获取模块,用于获取待识别的url;
47、识别模块,用于使用前述任意技术方案提供的网络攻击检测模型,识别所述url得到所述url的分类结果;其中,所述分类结果包括:指示所述url为正常url的第一类标签,或者,指示所述url为异常url的第一类标签;
48、收集模块,用于收集网络攻击检测模型识别的url作为继续训练所述网络攻击检测模型的样本url。
49、本公开实施例第五方面提供一种电子设备,包括:
50、存储器;
51、处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,能够实现前述任意第一方面和/或第二方面任意技术方案提供的网络攻击检测模型训练方法和网络攻击检测方法。
52、本公开实施例第六方面提供一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现前述任意第一方面和/或第二方面任意技术方案提供的网络攻击检测模型训练方法和网络攻击检测方法。
53、本公开实施例提供的技术方案,会收集已经上线应用的网络攻击检测模型识别的url,并将收集的url作为继续训练网络攻击模型的url,通过聚类得到聚类结果,并根据聚类结果将至少一类样本url的第一类标签进行校正得到第二类标签,将获得第二类标签的url和其第二类标签加入到样本池,继续训练网络攻击检测模型,如此,即便出现了新的网络攻击类型和/或网络攻击模型当前的检测正确率还不是特别高的情况下,通过上线后的增量训练可以继续提升网络攻击模型的检测能力,提升检测正确率。