一种基于机器学习的跨站脚本攻击识别方法技术

技术编号:32510819 阅读:44 留言:0更新日期:2022-03-02 10:55
本发明专利技术公开了一种基于机器学习的跨站脚本攻击识别方法,包括以下步骤:S1、网页数据收集:搭建含有跨站脚本攻击漏洞的靶场,使用扫描器和人工渗透的方式收集含有跨站脚本攻击的相关数据,对相关数据进行分类标注;S2、数据特征工程:对相关数据进行数据清洗;S3、数据特征化分析:将跨站脚本攻击语句视为文本信息,进行文本特征抽取,生成分词信息;S4、机器学习:将分词信息通过XGBoost集成算法模型进行训练,得到用于跨站脚本攻击识别的分类器模型;S5、跨站脚本攻击识别:将Web请求数据经过特征工程及向量化处理后进入分类器模型进行预测,识别跨站脚本攻击。本发明专利技术能够有效提高跨站脚本攻击识别效率,提高安全性。提高安全性。提高安全性。

【技术实现步骤摘要】
一种基于机器学习的跨站脚本攻击识别方法


[0001]本专利技术涉及网络数据安全
,具体涉及一种基于机器学习的跨站脚本攻击识别方法。

技术介绍

[0002]当今,计算机网络技术发展得十分迅速,网络犯罪行为日益增加。网络犯罪行为主要有两种形式,一是非法获取系统数据,二是让系统无法提供服务。在非法获取系统数据方面,跨站脚本攻击利用网站漏洞恶意盗取信息是非常典型的攻击手段。与大多数攻击不同的是,跨站脚本漏洞涉及到攻击者、客户端和网站,而不像大多数攻击一样只有攻击者和受害者。这无疑增加了跨站脚本漏洞的攻防难度。
[0003]传统的方法是人工动态检测检测方法和静态检测方法两种方式进行。第一种动态检测方法,该方法从黑盒测试入手,又结合了渗透攻击相关的方法,实现了对XSS漏洞的检测。当前的动态检测方法都会使用真实的XSS攻击代码,或者利用网络爬虫对目标网页进行爬取分析,但是网络爬虫的时间开销十分巨大,且不能保证爬取到的页面数据覆盖了网站的全部页面,并且数据库中存储的攻击代码又无法涵盖所有的攻击场景,存取的开销对服务器的要求也非常。第二种静态检测方法是HTML5和CORS属性规则在浏览器设计一个过滤器来检测XSS攻击,并提供了一个系统来判断被拦截的请求是否有恶意企图。通过以上我们不难看出传统的跨站脚本检测方法往往需要花费大量的时间和精力来提取这些攻击数据的特征,而且还需要一定的经验相结合才能取得很好的效果。对人员依赖程度很大,人员能力水平参差不齐,会影响最终的效果,并且对服务器资源的开销也是非常大的。
专利技术内
[0004]本专利技术是为了解决现有技术中人们在使用互联网数据时无法及时有效预防跨站脚本攻击的技术问题,提供一种基于机器学习的跨站脚本攻击识别方法,能够有效提高跨站脚本攻击识别效率,提高安全性。
[0005]本专利技术提供一种基于机器学习的跨站脚本攻击识别方法,包括以下步骤:
[0006]S1、网页数据收集:搭建含有跨站脚本攻击漏洞的靶场,使用扫描器和人工渗透的方式收集含有跨站脚本攻击的相关数据,对相关数据进行分类标注;
[0007]S2、数据特征工程:对相关数据进行数据清洗;
[0008]S3、数据特征化分析:将跨站脚本攻击语句视为文本信息,进行文本特征抽取,生成分词信息;
[0009]S4、机器学习:将分词信息通过XGBoost集成算法模型进行训练,得到用于跨站脚本攻击识别的分类器模型;
[0010]S5、跨站脚本攻击识别:将Web请求数据经过特征工程及向量化处理后进入分类器模型进行预测,识别跨站脚本攻击。
[0011]XGBoost是一个优化的分布式梯度增强库,旨在实现高效,灵活和便携。它在
Gradient Boosting框架下实现机器学习算法。XGBoost提供并行树提升(也称为GBDT,GBM),可以快速准确地解决许多数据科学问题。相同的代码在主要的分布式环境上运行,并且可以解决数十亿个示例之外的问题。XGBoost是对梯度提升算法的改进,求解损失函数极值时使用了牛顿法,将损失函数泰勒展开到二阶,另外损失函数中加入了正则化项。训练时的目标函数由两部分构成,第一部分为梯度提升算法损失,第二部分为正则化项。
[0012]本专利技术所述的一种基于机器学习的跨站脚本攻击识别方法,作为优选方式,相关数据包括请求参数、请求方法、响应内容、响应状态。
[0013]本专利技术所述的一种基于机器学习的跨站脚本攻击识别方法,作为优选方式,分类标注包括跨站脚本攻击类和非跨站脚本攻击类。
[0014]本专利技术所述的一种基于机器学习的跨站脚本攻击识别方法,作为优选方式,扫描器为wvs或appscan。
[0015]本专利技术所述的一种基于机器学习的跨站脚本攻击识别方法,作为优选方式,步骤S2进一步包括以下步骤:
[0016]S21、采用下采样算法将相关数据中包含缺失值的数据清除;
[0017]S22、使用xpath将响应内容中的标签去除,只保留页面内容;
[0018]S23、采用urlparse包中的方法将所述请求参数、IP地址、端口号进行区分;
[0019]S24、使用Pearson相关系数评价相关数据的特征变量跟特征之间的关系,去除和最终类别无关的数据。
[0020]XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言;XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
[0021]Pearson相关系数(Pearson Correlation Coefficient)是用来衡量两个数据集合是否在一条线上面,它用来衡量定距变量间的线性关系。
[0022]本专利技术具有以下优点:
[0023](1)对跨站脚本的识别方式更加灵活多样;
[0024](2)减少了对人员的依赖程度;
[0025](3)识别结果不依赖于相关人员的经验。识别准确度大幅度提高;
[0026](4)识别准确度大幅度提高;
[0027](5)进一步提高了跨站脚本的识别效率。
附图说明
[0028]图1为一种基于机器学习的跨站脚本攻击识别方法流程图;
[0029]图2为一种基于机器学习的跨站脚本攻击识别方法数据特征工程流程图。
具体实施方式
[0030]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。
[0031]实施例1
[0032]如图1所示,一种基于机器学习的跨站脚本攻击识别方法,包括以下步骤:
[0033]S1、网页数据收集:搭建含有跨站脚本攻击漏洞的靶场,使用wvs、appscan等扫描
器和人工渗透的方式收集含有跨站脚本攻击的相关数据,对相关数据进行分类标注;相关数据包括请求参数、请求方法、响应内容、响应状态;分类标注包括跨站脚本攻击类和非跨站脚本攻击类;
[0034]S2、数据特征工程:对相关数据进行数据清洗;如图2所示,包括以下步骤:
[0035]S21、采用下采样算法将相关数据中包含缺失值的数据清除;
[0036]S22、使用xpath将响应内容中的标签去除,只保留页面内容;
[0037]S23、采用urlparse包中的方法将所述请求参数、IP地址、端口号进行区分;
[0038]S24、使用Pearson相关系数评价相关数据的特征变量跟特征之间的关系,去除和最终类别无关的数据;
[0039]S3、数据特征化分析:将跨站脚本攻击语句视为文本信息,进行文本特征抽取,生成分词信息;
[0040]S4、机器学习:将分词信息通过XGBoost集成算法模型进行训练,得到用于跨站脚本攻击识别的分类器模型;
[0041]S5、跨站脚本攻击识别:将Web请求数据经过特征工程及向量化处理后进入分类器模型进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于机器学习的跨站脚本攻击识别方法,其特征在于:包括以下步骤:S1、网页数据收集:搭建含有跨站脚本攻击漏洞的靶场,使用扫描器和人工渗透的方式收集含有跨站脚本攻击的相关数据,对所述相关数据进行分类标注;S2、数据特征工程:对所述相关数据进行数据清洗;S3、数据特征化分析:将跨站脚本攻击语句视为文本信息,进行文本特征抽取,生成分词信息;S4、机器学习:将所述分词信息通过XGBoost集成算法模型进行训练,得到用于跨站脚本攻击识别的分类器模型;S5、跨站脚本攻击识别:将Web请求数据经过特征工程及向量化处理后进入所述分类器模型进行预测,识别所述跨站脚本攻击。2.根据权利要求1所述的一种基于机器学习的跨站脚本攻击识别方法,其特征在于:所述相关数据包括请求参数、请求方法、响应...

【专利技术属性】
技术研发人员:刘兵谢鑫何召阳任玉坤何晓刚郗朝旭
申请(专利权)人:北京墨云科技有限公司
类型:发明
国别省市:

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

1