基于机器学习的XSS攻击检测方法技术

技术编号:31797964 阅读:63 留言:0更新日期:2022-01-08 10:58
本发明专利技术公开了一种基于机器学习的XSS攻击检测方法,其包括以下步骤:步骤一,数据收集和数据预处理;步骤二,XSS特征提取;其包括:扫描数据库中的样本数据,循环计算每个词的信息熵,以及使用TF

【技术实现步骤摘要】
基于机器学习的XSS攻击检测方法


[0001]本专利技术涉及一种网络安全智能防御技术。更具体地说,本专利技术涉及一种基于机器学习的XSS攻击检测方法。

技术介绍

[0002]近些年,随着移动互联网的迅猛发展,客户端与服务端的交互变得越来越频繁。很多服务器后端从以前的单一设备访问,发展为现在的多设备访问。而这些不同设备的不同系统跟服务器交互,虽然交互变得更加便利且高效但同时也引发了更多的安全问题。而跨站脚本攻击(Cross

Site Scripting,XSS)就是最常见且危害最广泛的一种Web攻击,严重威胁着Web系统的安全。
[0003]而随着移动互联的发展,交互便利使得网络请求越来越复杂,参数更加多元化,从而导致网络攻击的复杂性增大,防御复杂性增大。目前,当前主流的XSS攻击检测以传统工具的静态防御为主,滞后性较强。比如一些传统的防御组件只针对一些变形的XSS攻击,除了防御规则的时效性外,还有很多攻击欺诈绕过风险,会产生很多漏报。并且伴随着当前网络请求的复杂性增加,一些常规的合法请求,由于其参数的复杂,容易与传统工具的防御规则发生冲突,导致了很多误报行为。

技术实现思路

[0004]本专利技术的一个目的是解决至少上述问题,并提供至少后面将说明的优点。
[0005]本专利技术还有一个目的是提供一种基于机器学习的XSS攻击检测方法,其不仅可以在针对已有攻击数据的检测准确度中高达90%以上,而且能够大大提高对未知的XSS攻击数据的检测精准度和防御效果。
[0006]为了实现根据本专利技术的这些目的和其它优点,提供了一种基于机器学习的XSS攻击检测方法,其包括以下步骤:
[0007]步骤一,数据收集和数据预处理;
[0008]步骤二,XSS特征提取;其包括:扫描数据库中的样本数据,循环计算样本数据的信息熵,以及使用TF

IDF算法提取样本数据的TF

IDF值;将满足关联规则的信息熵和TF

IDF值形成XSS特征;
[0009]步骤三,将所述步骤二提取的XSS特征送入SVM分类模型中进行训练,生成训练后的XSS攻击检测模型,对XSS攻击进行检测。
[0010]优选的是,所述基于机器学习的XSS攻击检测方法还包括:在所述步骤二的特征提取前,数据预处理后,通过构建转义及加密对照树,进行递归多次解码,并结合相似度算法匹配缺失部分机构的标签,直至还原到最原始文本。现有的XSS攻击数据中往往会出现将字符串进行拼接转义的情况,例如“alert("hey!")</scRi</script>pt>”会出现在url或者request_body等部位。本专利技术所述基于机器学习的XSS攻击检测方法针对目前XSS攻击数据极端复杂的现状,在特征提取时,选择将样本数据的信息熵和TF

IDF值加入特征矩阵中,大
大提高了分类准确率。
[0011]优选的是,所述步骤二中,还包括:通过Aprior算法从黑数据的分词结果中提取出频繁项,通过支持度(support)与置信度(confidence)提取出频繁项集,将各个样本中频繁项集的出现频次形成XSS特征。
[0012]优选的是,所述步骤二中,所述信息熵通过以下步骤计算:
[0013]步骤1,通过香农公式,循环计算每个词出现的频率;
[0014]步骤2,通过公式(Ⅰ)循环计算出信息熵;公式(Ⅰ)如下:
[0015][0016]其中p(x
i
)表示第i个词出现的频率,N表示公有词的总数。
[0017]优选的是,所述步骤二中,所述TF

IDF值通过以下步骤计算:将数据库中的XSS攻击黑数据作为对照样本库,利用公式(Ⅱ)提取出每条日志数据的TF

IDF矩阵;公式(Ⅱ)如下:
[0018][0019]其中,i表示单一词条,j表示全部词条,tf
i,j
表示词条i出现的频次,N表示数据库中的文档总数,df
i
表示包含词条i的文档数+1。
[0020]优选的是,所述支持度通过公式(Ⅲ)计算,公式(Ⅲ)如下:
[0021][0022]其中,X,Y表示全部样本集中任意两个分词结果;词X与词Y的支持度则为项集X、Y同时发生的概率,
[0023]所述置信度通过公式(Ⅳ)计算,公式(Ⅳ)如下:
[0024][0025]其中,X,Y代表全部样本集中任意两个分词结果,项集X发生的情况下,则项集Y发生的概率为关联规则的置信度。
[0026]优选的是,所述步骤二中,将支持度大于0.375的项集作为频繁项集,将各个样本中频繁项集的出现频次,作为XSS特征送入SVM分类模型中进行训练。
[0027]优选的是,所述步骤三中,还包括:使用SVM算法进行SVM分类模型训练后,通过安全组件对所述XSS攻击检测模型进行攻击测试,同时也会加入正常请求来检测模型的准确率和召回率;当预测值低于预设值时,则将检测数据送进SVM分类模型继续训练,直至所述预测值等于大于预设值。
[0028]优选的是,所述步骤一中,所述数据收集具体为:收集用于模型训练的学习样本,其包括防御平台记录的日志数据和互联网上的公开数据集。
[0029]优选的是,所述步骤一中,所述数据预处理包括:清除空值数据和异常数据;以及扩充数据集。
[0030]本专利技术所述基于机器学习的XSS攻击检测方法包括以下步骤:
[0031]S1,数据收集
[0032]收集防御平台记录的日志数据,以及互联网上的公开数据集,并实时更新样本数据库。
[0033]S2,数据预处理
[0034]首先,将日志数据进行标准化处理,包括:
[0035]将空值数据进行去除,以保证数据维度的一致性;
[0036]将异常数据进行去除或变换,例如连接时间过长,url过长,访问浏览器版本过老,返回包过大等异常数据。这一类数据无论是访问异常,或者是日志记录出错,均会影响模型准确率。
[0037]对自有记录的日志数据以及互联网上的公开数据集进行维度合并。
[0038]其次,对数据集进行扩充,例如从公开网络请求数据集中提取数据进行补充。重复日志数据标准化处理,保证维度和日志维度一致,将数据集和日志数据进行拼接。并通过Fisher

Yates shuffle算法将数据进行离散化。由此,可以提高本专利技术所述XSS攻击检测模型的泛化能力。
[0039]S3,特征提取
[0040]首先,从http请求中提取特殊字符个数、url长度、url复杂程度、request

body复杂程度、url最长参数长度,url参数长度占比等特征,同时提取数字字符转换频次、request

body长度、请求体中高风险词出现频次、请求体中中风险词本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于机器学习的XSS攻击检测方法,其特征在于,包括以下步骤:步骤一,数据收集和数据预处理;步骤二,XSS特征提取;其包括:扫描数据库中的样本数据,循环计算每个词的信息熵,以及使用TF

IDF算法提取样本数据的TF

IDF值;将满足关联规则的信息熵和TF

IDF值形成XSS特征;步骤三,将所述步骤二提取的XSS特征送入SVM分类模型中进行训练,生成训练后的XSS攻击检测模型,对XSS攻击进行检测。2.如权利要求1所述的基于机器学习的XSS攻击检测方法,其特征在于,还包括:在所述步骤二的特征提取前,数据预处理后,通过构建转义及加密对照树,进行递归多次解码,并结合相似度算法匹配缺失部分机构的标签,直至还原到最原始文本。3.如权利要求1所述的基于机器学习的XSS攻击检测方法,其特征在于,所述步骤二中,还包括:通过Aprior算法从黑数据的分词结果中提取出频繁项,通过支持度(support)与置信度(confidence)提取出频繁项集,将各个样本中频繁项集的出现频次形成XSS特征。4.如权利要求1所述的基于机器学习的XSS攻击检测方法,其特征在于,所述步骤二中,所述信息熵通过以下步骤计算:步骤1,通过香农公式,循环计算每个词出现的频率;步骤2,通过公式(Ⅰ)循环计算出信息熵;公式(Ⅰ)如下:其中p(x
i
)表示第i个词出现的频率,N表示公有词的总数。5.如权利要求1所述的基于机器学习的XSS攻击检测方法,其特征在于,所述步骤二中,所述TF

IDF值通过以下步骤计算:将数据库中的XSS攻击黑数据作为对照样本库,利用公式(...

【专利技术属性】
技术研发人员:田新远
申请(专利权)人:北京华清信安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1