一种基于抽象语法树的XSS对抗攻击检测方法及模型技术

技术编号:35690892 阅读:9 留言:0更新日期:2022-11-23 14:39
本发明专利技术涉及一种基于抽象语法树的XSS对抗攻击检测方法及模型,包括请求预处理模块、抽象语法树处理模块、分词处理和词向量化模块以及XSS分类器模块,能够检测出攻击者使用绕过方法构造的XSS对抗样本,弥补了现有模型无法精准检测XSS对抗样本的缺陷,提高了Web应用系统的安全性,通过预处理,删除样本中无意义的字符串,然后通过抽象语法树找出样本中HTML部分和JavaScript部分,再使用训练过的XSS分类器对样本进行分类,从而精准识别出攻击者使用绕过方法构造的XSS对抗样本,提高WEB应用系统的安全性。本发明专利技术还进一步在两种对抗样本数据集上进行验证,结果表明,本发明专利技术所提方法对XSS对抗样本的检测率高达98.2%和99.8%,使得XSS对抗样本的绕过率低至1.8%和0.2%。XSS对抗样本的绕过率低至1.8%和0.2%。XSS对抗样本的绕过率低至1.8%和0.2%。

【技术实现步骤摘要】
一种基于抽象语法树的XSS对抗攻击检测方法及模型


[0001]本专利技术涉及一种基于抽象语法树的XSS对抗攻击检测方法及模型,属于网络安全防御


技术介绍

[0002]XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),该攻击方法将恶意代码注入到浏览器页面,诱使用户执行该恶意代码。执行后,攻击者可以访问浏览器保存的任何敏感信息,导致用户的敏感信息泄露,威胁WEB应用程序的安全,以达到攻击目的。
[0003]目前的XSS攻击检测模型主要基于深度学习,具有很高的检测率,但忽略了检测模型本身的安全性。攻击者会通过构造XSS对抗样本,绕过模型检测,攻击WEB应用程序。现有检测模型会被攻击者误导,从而将XSS对抗样本分类为正常样本,导致模型对XSS对抗样本的检测率较低。
[0004]针对上述问题,本专利技术提出一种基于抽象语法树的XSS对抗攻击检测方法及模型。能够检测出攻击者使用绕过方法构造的XSS对抗样本,检测率达98%以上,弥补了现有模型无法精准检测XSS对抗样本的缺陷。本专利技术首先通过预处理,删除样本中无意义的字符串,然后通过抽象语法树找出样本中HTML部分和JavaScript部分,再使用训练过的XSS分类器对样本进行分类,从而精准识别出攻击者使用绕过方法构造的XSS对抗样本,提高WEB应用系统的安全性。本专利技术还进一步在两种对抗样本数据集上进行验证,结果表明,本专利技术所提方法对XSS对抗样本的检测率高达98.2%和99.8%,使得XSS对抗样本的绕过率低至1.8%和0.2%。
[0005]绕过方法,是指攻击者对普通XSS样本中的HTML或JavaScript部分,进行字符串替换、字符编码、添加新的字符串等操作,生成XSS对抗样本,从而躲避XSS攻击检测模型的检测。
[0006]检测率(Detection Rate,DR),是指XSS样本使用绕过方法后,仍被攻击检测模型判断为XSS样本的个数占总样本个数的比例,检测率越高代表攻击检测模型的检测能力越强。
[0007]绕过率(Escape Rate,ER),是指XSS样本使用绕过方法后,仍被攻击检测模型判断为良性样本的个数占总样本个数的比例,绕过率越低代表攻击检测模型的防御能力越强。

技术实现思路

[0008]本专利技术的目的是针对现有方法存在的不足,提供一种基于抽象语法树的XSS对抗攻击检测方法及模型,用于检测攻击者为躲避模型检测,使用绕过方法构造的XSS对抗攻击。本方法首先对用户的访问请求进行预处理,并使用抽象语法树对其进行解析,然后经过分词处理及词向量化,得到的词向量矩阵作为XSS分类器的输入,最终通过XSS分类器分类出该请求是否为正常请求。
[0009]为实现上述目的,本专利技术的技术方案是:
[0010]一种基于抽象语法树的XSS对抗攻击检测方法及模型,包括以下步骤:
[0011]步骤一、请求预处理:本步骤的目的是,对用户访问请求进行预处理,得到具体执行的请求参数。攻击者经常使用大文件传输、分块传输和HTTP pipeline传输,隐藏请求参数,从而绕过攻击检测模型的检测。因此,本方法根据请求传输方式,分别对其进行相应的预处理,从而得到请求参数。
[0012]所述请求参数,是用户访问请求中请求体部分,通过解析用户访问请求得到请求参数,格式一般为key=value&key=value形式,其中value包含HTML部分和JavaScript部分。如id=1&name=test%3Cimg%20src=x%20onerror=alert(1)%3E,1和test%3Cimg%20src=x%20onerror=alert(1)%3E为value部分,其中%3Cimg%20src=x%20onerror=alert(1)%3E为HTML部分,alert(1)为JavaScript部分。
[0013]解析大文件传输请求。攻击者将请求中的文件部分修改为较大的文件,攻击检测模型为提高传输效率,将直接通过该请求,从而使攻击者逃过攻击检测模型的检测,导致检测失效。因此,本方法将请求中的文件部分统一修改为字符串“post file”,从而让模型能够检测每一个请求,阻止攻击者的逃逸行为。
[0014]解析分块传输请求。攻击者为绕过攻击检测模型的检测,将恶意数据分为多个数据块,依次进行传输,若攻击检测模型没有对分块传输数据进行合并解析,将无法识别实际请求中的数据,攻击者利用此漏洞,逃过攻击检测。因此,本方法在解析分块传输的请求时,对所有数据块进行合并,从而能够识别完整的请求,避免攻击者逃逸。
[0015]解析HTTP pipeline传输请求。攻击者利用HTTP pipeline传输一次性发送多个请求的特性,将包含恶意数据的请求参数隐藏至HTTP pipeline队列中后续请求中,若攻击检测模型只检测处理HTTP pipeline队列中第一个请求,将导致后续请求逃过攻击检测。因此,本方法对一次性发送的多个请求均进行参数解析处理,从而能够检测队列中每一个请求,避免攻击者逃逸。
[0016]上述三种解析方法得到的结果均为请求参数,经过URL编码后,进行传输。比如,得到请求参数为<img src=x onerror=alert(1)>,对其进行URL编码,得到%3Cimg%20src=x%20onerror=alert(1)%3E,进行传输。
[0017]步骤二、抽象语法树处理。将步骤一中所提取的参数中HTML部分解析为HTML抽象语法树,将参数中的JavaScript部分解析为JavaScript抽象语法树,并将语法树中的无效数据移除,重新构建为HTML和JavaScript,最后得到简化后的参数。具体方法为:
[0018]步骤2.1.将步骤一中所提取的参数中的HTML部分进行URL解码,得到实际请求参数,如对%3Cimg%20src=x%20onerror=alert(1)%3E进行URL解码得到<img src=x onerror=alert(1)>。
[0019]步骤2.2.使用解析器,对实际请求参数进行解析,得到HTML抽象语法树。如可以使用parse5解析器进行解析,使用的解析器不同,生成的树格式也不同。
[0020]步骤2.3.对HTML抽象语法树进行遍历,找到其具体执行的JavaScript部分,使用解析器进行解析,得到JavaScript抽象语法树。
[0021]步骤2.4.对JavaScript抽象语法树进行遍历,排除语法树中影响检测的无效数据,即注释数据、通过绕过方法加入的特殊字符等,得到简化后的参数。
[0022]所述抽象语法树,是指使用树状图表示源代码抽象语法结构,语法树上的每个节
点均代表源代码中的一种结构。抽象语法树不依赖于源语言的语法,即语法分析阶段所采用的是上下文无关法。
[0023]所述无效数据,是指一些注释本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于抽象语法树的XSS对抗攻击检测模型,其特征在于:包括请求预处理模块:用于处理用户请求,得到请求参数,用户访问WEB页面时,模型获取到用户访问请求,对访问请求进行预处理,根据请求传输方式选择解析大文件传输请求、解析分块传输请求或解析HTTPpipeline请求,得到请求参数;抽象语法树处理模块:用于处理请求预处理模块得到的请求参数,将请求参数中的HTML部分解析为HTML抽象语法树,将请求参数中的JavaScript部分解析为JavaScript抽象语法树,后将抽象语法树中的无效数据移除后,重新构建为HTML和JavaScript,得到抽象语法树处理后的简化参数;分词处理和词向量化模块:用于对抽象语法树处理后的简化参数进行分词处理,得到分词序列,利用Word2vec把该分词序列映射为词向量矩阵;以及XSS分类器模块:用于判断请求是否为正常请求,将分词处理和词向量化模块得到的词向量矩阵作为分类器的输入,然后输出分类结果,即是否为正常请求。2.一种根据权利要求1所述的基于抽象语法树的XSS对抗攻击检测模型的检测方法,其特征在于:包括以下步骤:步骤一、请求预处理:对用户访问请求进行预处理,得到具体执行的请求参数;步骤二、抽象语法树处理:将步骤一中所提取的参数中HTML部分解析为HTML抽象语法树,将参数中的JavaScript部分解析为JavaScript抽象语法树,并将语法树中的无效数据移除,重新构建为HTML和JavaScript,最后得到简化后的参数;步骤三、分词处理和词向量化:对上述抽象语法树处理后的简化参数进行分词处理,得到分词序列,利用Word2vec把该分词序列映射为词向量矩阵;步骤四、XSS攻击分类器分类:对步骤三得到的词向量矩阵P
m
×
k
进行分类,判断其是否为正常请求。3.根据权利要求2所述的一种基于抽象语法树的XSS对抗攻击的检测方法,其特征在于:所述步骤二具体包括:步骤2.1:将步骤一中所提取的参数中的HTML部分进行URL解码,得到实际请求参数;步骤2.2:使用解析器,对实际请求参数进行解析,得到HTML抽象语法树;步骤2.3:对HTML抽象语法树进行遍历,找到其具体执行的Java...

【专利技术属性】
技术研发人员:王秋华李逸佳李成煜吴国华王烨茹张祯袁理锋任一支王冬
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

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

1