CN115720159A - 一种xss注入攻击检测方法、装置、设备及存储介质 - Google Patents
一种xss注入攻击检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115720159A CN115720159A CN202211378925.0A CN202211378925A CN115720159A CN 115720159 A CN115720159 A CN 115720159A CN 202211378925 A CN202211378925 A CN 202211378925A CN 115720159 A CN115720159 A CN 115720159A
- Authority
- CN
- China
- Prior art keywords
- target
- attack
- segment
- suspicious
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种xss注入攻击检测方法、装置、设备及存储介质,涉及计算机技术领域,包括:对捕获到的待检测流量数据包进行解析,并按照预设处理规则对解析后数据进行处理;将处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询模型字典中是否存在目标三元组;模型字典为利用预先构建的词频文件构成的字典;若存在,则根据目标三元组确定出待检测流量数据包中的所有可疑片段,并计算可疑片段的属性分值;将分值最高的属性分值对应的可疑片段确定为目标可疑片段,并基于目标可疑片段对应的目标属性分值确定目标可疑片段的攻击类别是否为xss注入攻击,能够提高xss注入攻击的检测精度,对新出现的xss注入攻击有一定的检测能力。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种xss注入攻击检测方法、装置、设备及存储介质。
背景技术
当前,xss注入攻击是web攻击中常见的网络攻击,其危害大,由于xss注入是由js语句构成,在检测该xss注入攻击时有可能将业务js错误识别成xss注入攻击,或者将xss注入误判成业务js,无论是出现哪种误判情况,都会对系统造成一定的风险。
基于规则匹配的检测方案能较好检测所属的恶意软件行为,但会造成一些业务js语句被命中,导致识别成xss注入攻击;或者是一些新型的xss注入攻击,匹配规则没有,导致不能识别检测出来。同时规则命中效率以及精度较大依靠规则编写人员的经验能力,规则是否能精确识别有一定的人为因素影响,受安全分析人员的经验影响。基于虚拟环境执行的检查方式,通过将相关的xss语句在虚拟的环境下执行,监视并查看是否会对虚拟环境下产生危害,该方法检测方式能有效检测xss攻击,但该方法存在检测效率低,不能有效应对大流量环境检测,同时存在虚拟环境不覆盖全部的场景导致漏报xss情况,导致漏报的情况,进而导致攻击者攻击成功。
发明内容
有鉴于此,本发明的目的在于提供一种xss注入攻击检测方法、装置、设备及存储介质,能够提高xss注入攻击的检测精度。其具体方案如下:
第一方面,本申请公开了一种xss注入攻击检测方法,包括:
对捕获到的待检测流量数据包进行解析得到解析后数据,并按照预设处理规则对所述解析后数据进行处理得到处理后元组;
将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组;所述模型字典为利用预先构建的词频文件构成的字典;
若存在,则根据所述目标三元组确定出所述待检测流量数据包中的所有可疑片段,并计算所述可疑片段的属性分值;
将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,并基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击。
可选的,所述对捕获到的待检测流量数据包进行解析得到解析后数据,包括:
提取从目标网关上捕获到的待检测流量数据包中的请求头信息和请求体信息;
对所述请求头信息和所述请求体信息进行URL编码解析得到解析后数据。
可选的,所述计算所述可疑片段的属性分值,包括:
对所述可疑片段进行片段切分处理得到各子片段;
基于所述子片段对应的三元组中的词频信息计算各所述子片段对应的攻击子属性分值和正常子属性分值;
基于各所述子片段对应的攻击子属性分值和所述正常子属性分值确定所述可疑片段的攻击属性分值和正常属性分值;
相应的,所述将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,包括:
确定出分值最高的所述攻击属性分值得到目标攻击属性分值,并将所述目标攻击属性分值对应的所述可疑片段确定为目标可疑片段。
可选的,所述基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击,包括:
判断所述目标可疑片段对应的目标攻击属性分值是否低于预设xss阈值得到第一判断结果,并判断所述目标攻击属性分值是否小于所述目标可疑片段对应的目标正常属性分值得到第二判断结果;
基于所述第一判断结果和所述第二判断结果确定所述目标可疑片段的攻击类别是否为xss注入攻击。
可选的,所述基于所述第一判断结果和所述第二判断结果确定所述目标可疑片段的攻击类别是否为xss注入攻击,包括:
如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;
如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;
如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值不小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为xss注入攻击。
可选的,所述对所述可疑片段进行片段切分处理得到各子片段之后,还包括:
判断所述子片段是否为所述模型字典中存储的白名单中的字符串;
若是,则将所述子片段进行过滤得到过滤后子片段;
相应的,所述基于所述子片段对应的三元组中的词频信息计算各所述子片段对应的攻击子属性分值和正常子属性分值,包括:
基于所述子片段对应的三元组中的词频信息计算各所述过滤后子片段对应的攻击子属性分值和正常子属性分值。
可选的,所述按照预设处理规则对所述解析后数据进行处理得到处理后元组,包括:
按照由字符替换规则、字符大小写转换规则和泛化处理规则中的任意一种或几种组合而成的目标处理规则对所述解析后数据进行处理得到处理后元组。
第二方面,本申请公开了一种xss注入攻击检测装置,包括:
数据包解析模块,用于对捕获到的待检测流量数据包进行解析得到解析后数据;
数据处理模块,用于按照预设处理规则对所述解析后数据进行处理得到处理后元组;
三元组匹配模块,用于将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组;所述模型字典为利用预先构建的词频文件构成的字典;
可疑片段确定模块,用于当所述模型字典中存在所述目标三元组,则根据所述目标三元组确定出所述待检测流量数据包中的所有可疑片段;
属性分值计算模块,用于计算所述可疑片段的属性分值;
xss注入攻击确定模块,用于将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,并基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的xss注入攻击检测方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的xss注入攻击检测方法的步骤。
可见,本申请提供了一种xss注入攻击检测方法,包括:对捕获到的待检测流量数据包进行解析得到解析后数据,并按照预设处理规则对所述解析后数据进行处理得到处理后元组;将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组;所述模型字典为利用预先构建的词频文件构成的字典;若存在,则根据所述目标三元组确定出所述待检测流量数据包中的所有可疑片段,并计算所述可疑片段的属性分值;将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,并基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击。由此可知,本申请将捕获到的流量数据包进行解析,进而按照预设处理规则对对解析后数据进行处理的到处理后元组,然后查询模型字典中是否存在处理后元组,若存在,则计算出待检测流量数据包中的目标可疑片段的目标属性分值,然后基于该目标属性分值确定出目标可疑片段是否为xss注入攻击,也就是说,本申请的技术方案,能够对xss注入攻击识别具有普适性,能对大多数的xss注入攻击有较高的检测精度,对新出现的xss注入攻击也有一定的检测能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种xss注入攻击检测方法流程图;
图2为本申请公开的一种待检测字符串示意图;
图3为本申请公开的一种泛化后的待检测字符串元组示意图;
图4为本申请公开的一种可疑片段属性分值示意图;
图5为本申请公开的一种具体的xss注入攻击检测方法流程图;
图6为本申请公开的一种xss注入攻击检测装置结构示意图;
图7为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,现有技术中,xss注入攻击是web攻击中常见的网络攻击,其危害大,由于xss注入是由js语句构成,在检测该xss注入攻击时有可能将业务js错误识别成xss注入攻击,或者将xss注入误判成业务js,无论是出现哪种误判情况,都会对系统造成一定的风险。为此,本申请提供了一种新的xss注入攻击检测方案,能够提高xss注入攻击的检测精度。
本发明实施例公开了一种xss注入攻击检测方法,参见图1所示,该方法包括:
步骤S11:对捕获到的待检测流量数据包进行解析得到解析后数据,并按照预设处理规则对所述解析后数据进行处理得到处理后元组。
本实施例中,通过相关设备的流量探针在相关目标网关上进行流量捕获,得到待检测流量数据包,然后对该待检测流量数据包进行解析,得到解析后数据,如图2所示,然后按照预设处理规则对所述解析后数据进行处理得到处理后元组。具体的,提取从目标网关上捕获到的待检测流量数据包中的请求头信息和请求体信息;对所述请求头信息和所述请求体信息进行URL(Uniform Resource Locator,即统一资源定位系统)编码解析得到解析后数据。按照由字符替换规则、字符大小写转换规则和泛化处理规则中的任意一种或几种组合而成的目标处理规则对所述解析后数据进行处理得到处理后元组。可以理解的是,解析待检测流量数据包信息,提取该待检测流量数据包信息中的请求头信息和请求体信息,进而对提取出来的所述请求头信息和所述请求体信息进行三次URL编码解析得到解析后数据,然后对解析后数据进行字符替换、字符大小写转换或泛化等处理,得到待检测流量数据包中处理后的元组,所述元组即数据记录。所述解析后数据为明文数据,进而将解析后的明文数据输入至预先构建的检测模型中进行xss注入攻击检测。
例如,如图3所示,对上述图2中的xss语句进行相关的泛化处理,所述泛化是指将不常见的各类符合一定类型的字符串用某种字符固定代替,使检测模型能对xss语句有更好的识别能力,比如将xss语句中的数字用Digital泛化代替,则所有的数字类型都可以用Digital代替,在后续的识别,不用准备大量的已有数字进行数据库准备,减少数据库文件的容量,并且能够使得模型计算识别更加方便高效。
步骤S12:将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组;所述模型字典为利用预先构建的词频文件构成的字典。
需要指出的是,预先构建词频文件,所述词频文件可以包括但不限于js.data、js.fp、normal.data、normal.fp、dictAggregate.py等文件,其中,上述js.data存储的是相关的js(javascript)语句,上述normal.data存储的是相关的web语句,用于在模型构建时,计算相关词频的词库以及相关词组的构建连接性,所述js.fp存储的是js语句中的白名单词组,所述normal.fp存储的是web语句中的白名单词组,在检测中过滤相关词组,用来中断检测时的语句连接性,所述dictAggregate.py存储的是重要词频的人为设定分值,让重要词频起更重要的分值作用。通过js.data、js.fp、normal.data、normal.fp的文件,并通过牛顿插值定理计算js.data以及normal.data文件中每个三元组词频以构建模型文件。所述词频的计算可以通过牛顿插值定理进行计算,其中,所述牛顿插值定理为一类概率计算的算法,主要用于计算条件概率,本实施例中通过牛顿插值算法计算三元组词频,相关算法如下:
p(abc)=[k1*Num(c)/Num(all)]+[k2*Num(bc)/Num(c)]+[k3*Num(abc)/Num(bc)]p(abc)=p(c/c_n)+p(bc/c)+p(abc/bc);
其中,ki=(i/10)+1,所述abc指代三元组abc,所述p(c/c_n)指一元组词汇c在一元组条件下的词频,所述p(bc/c)指二元组词汇bc在仅含c词汇的一元组条件下的词频,所述p(abc/bc)指三元组词汇abc在仅含bc词汇的二元组条件下的词频。
例如:eval(Digital在整个js.data文件中的词频)即返回Digital在整个js.data文件中的词频;并将js.fp中的词组一并存入模型文件中,构成模型文件,所以所述模型文件存储的是相关词组词频以及白名单词组,即模型字典。所以在进行xss注入攻击检测时,主要基于检测模型中的模型字典存储的的词组词频信息和相关的白名单词组,然后通过权值以及牛顿冷却定理进行属性分值的计算,所述牛顿冷却定理原为传热学的基本定律之一,用于计算对流热量的多少,同时该定理也可以应用在异常检测算法中,通过分析其先出现的频率以及先后顺序进行相关分值计算,例如,可以应用于非连续匹配点之间,降低之前匹配点数据分数,进而计算该异常片段的分值。其中,所述权值为用于加权单一词组分值,使其在进行检测构成一句连续词组时,可以产生相应的效果,例如,可以使得特征更连续,即单一词组更连续,后续的词组的权值越大,还能够加快权值递增的速度,并且识别语句越连续,识别分值的提升幅度越大。
本实施例中,对捕获到的待检测流量数据包进行解析得到解析后数据,并按照预设处理规则对所述解析后数据进行处理得到处理后元组之后,依次遍历处理后元组,将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组,也就是说,遍历所述处理后元组中的三元组,在模型字典中查找匹配相关三元组信息。并且,如果所述目标三元组在所述模型字典中的dictAggregate.py文件中有相关的记录,则将所述dictAggregate.py中的词频替换为模型中的词频。
步骤S13:若存在,则根据所述目标三元组确定出所述待检测流量数据包中的所有可疑片段,并计算所述可疑片段的属性分值。
本实施例中,在模型字典中匹配出与所述目标三元组一致的三元组之后,提取所述目标三元组的相关信息,例如,提取三元组的初始位置,攻击类别,词频,然后根据所述攻击类别,遍历与所述攻击类别一致的所有三元组的相关位置,然后根据三元组确定出相应的可疑片段,进而计算出所述可疑片段的属性分值以便后续基于所述属性分值确定当前的攻击类别是否为xss注入攻击。
本实施例中,所述计算所述可疑片段的属性分值,可以包括:对所述可疑片段进行片段切分处理得到各子片段;基于所述子片段对应的三元组中的词频信息计算各所述子片段对应的攻击子属性分值和正常子属性分值;基于各所述子片段对应的攻击子属性分值和所述正常子属性分值确定所述可疑片段的攻击属性分值和正常属性分值。可以理解的是,寻找出所有的可疑片段之后,在分别计算各所述可疑片段的属性分值时,首先通过对所述可疑片段进行分段切分得到各子片段,然后基于所述子片段对应的三元组中的词频信息计算各所述子片段对应的攻击子属性分值和正常子属性分值,进而基于该可疑片段切片分段后得到的各子片段对应的攻击子属性分值和正常子属性分值就可以确定出该可疑片段的攻击属性和正常属性分值。
本实施例中,所述对所述可疑片段进行片段切分处理得到各子片段之后,还可以包括:判断所述子片段是否为所述模型字典中存储的白名单中的字符串;若是,则将所述子片段进行过滤得到过滤后子片段;基于所述子片段对应的三元组中的词频信息计算各所述过滤后子片段对应的攻击子属性分值和正常子属性分值。可以理解的是,在对可疑片段切分得到该可疑片段对应的各子片段时,这些子片段中的一部分可能属于所述模型字典中存储的白名单中的字符串,所以可以直接对这些子片段进行过滤,然后在计算子属性分值时,只需要计算过滤后子片段的子属性分值,进而基于过滤后子片段对应的子属性分值确定出该可疑片段的属性分值。
例如,计算子片段的对应的子属性分值的相关算法可以如下:
初始化weight、match_count、continuous_n,并设定所述weight、所述match_count、所述continuous_n的初始值均为1,其中Weight变量表示权值,所述Match_count变量表示子片段已经参与计算三元组数量,所述Continuous_n变量表示一种参与算法计算的参数,无任何含义。其中,所述Continuous_n变量的计算规则如下:
continuous_n=(match_count×match_count-0.3)×0.08×continuous_n;
如果continuous_n小于1,则所述Weight变量的计算规则为:weighti=weighti-1×(continuous_n)3;
如果continuous_n不小于1,则所述Weight变量的计算规则为:weighti=weighti-1×(continuous_n)2;
其中所述weighti表示子片段中第i个三元组的权值。
然后,判断weight变量是否超过预先设定的阈值,预先设定weight分值的上限为400,即当所述weight变量大于阈值时,则将所述weight变量对应的数值确定为当前的阈值大小。
在计算子片段中的一个三元组的权值,所述Match_count变量自加一,即match_count+=1,然后输出weighti,并判断当前是否遍历完所有该子片段中的所有三元组,如果已经遍历完该子片段中的所有三元组得到各三元组对应的权值,则结束;如果未遍历完该子片段中的所有三元组,则继续上述计算三元组权值的步骤,直至该子片段中的所有三元组的权值输出,进而通过牛顿冷却算法计算含有多个子片段的可疑片段的属性分值,其中,所述牛顿冷却算法应用于非连续匹配点之间,降低之前匹配点数据分数相关的算法如下:
其中,所述xi表示同一个可疑片段中顺序下的第i个子片段的子属性分值;i=1、2、3、…、n,n表示该可疑片段中含有的子片段数量,所述yi表示第i个子片段的冷却系数,即:
步骤S14:将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,并基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击。
本实施例中,确定出各所述可疑片段的属性分值之后,将分值最高的所述属性分值对应的可疑片段确定为目标可疑片段,具体的,确定出分值最高的所述攻击属性分值得到目标攻击属性分值,并将所述目标攻击属性分值对应的所述可疑片段确定为目标可疑片段。然后基于所述目标可疑片段对应的目标属性分值确定出所述目标可疑片段的攻击类别是否为xss注入攻击。具体的,判断所述目标可疑片段对应的目标攻击属性分值是否低于预设xss阈值得到第一判断结果,并判断所述目标攻击属性分值是否小于所述目标可疑片段对应的目标正常属性分值得到第二判断结果。基于所述第一判断结果和所述第二判断结果确定所述目标可疑片段的攻击类别是否为xss注入攻击。可以理解的是,如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值不小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为xss注入攻击。例如,如图4所示,基于上述图3,根据检测模型中的模型字典中的信息以及相关词频,识别出的目标可疑片段为‘";alert`Digital`;’这一个词组,每个词组的分值,通过每个词组中的三元组的词频计算,计算出相关分值为36.33644,大于该片段对应的normal分值0.4348,且大于所设阈值17,所以判断为xss注入。
本申请的检测方式能够通过分析js的特征能够构建相关模型,高效分析检测出web中的xss注入,并且具有较好的泛用性,针对于新场景的恶意xss注入也有较好的检测效果。
可见,本申请实施例中,将捕获到的流量数据包进行解析,进而按照预设处理规则对对解析后数据进行处理的到处理后元组,然后查询模型字典中是否存在处理后元组,若存在,则计算出待检测流量数据包中的目标可疑片段的目标属性分值,然后基于该目标属性分值确定出目标可疑片段是否为xss注入攻击,也就是说,本申请的技术方案,能够对xss注入攻击识别具有普适性,能对大多数的xss注入攻击有较高的检测精度,对新出现的xss注入攻击也有一定的检测能力。
例如,如图5所示,加载检测模型,提取所述检测模型中的模型字典存储的三元组字符串及其词频信息,和白名单中的字符串,将流量数据包输入至检测模型中,并解析所述流量数据包信息,也即提取所述流量数据包信息中的请求头信息和请求体信息,对提取出的所述请求头信息和所述请求体信息进行三次url编码解析得到解析后数据,然后对解析后数据进行字符替换、字符小写转换和泛化等处理,得到待检测字符串泛化后的元组,然后依次遍历待检测字符串泛化后的元组中的三元组,并在模型字典中查找匹配相关信息,即查询模型字典是否存在该三元组,若该三元组在字典模型中的dictAggregate.py中有记录,则将dictAggregate.py中的词频替换模型中的词频,并提取该三元组的相关初始位置、相关的攻击类别以及相关的词频,根据该三元组中的攻击类别,遍历该攻击类别下的所有三元组相关位置,并将通过三元组寻找待检测字符串中的可疑片段,进而提取待检测字符串中的可疑片段,同时将片段进行切分,若可疑片段的子片段为白名单中的字符串,则将该子片段进行过滤,并在过滤可疑片段中为白名单中字符串的子片段之后,对可疑片段中的子片段中每个三元组,逐个通过词频与位置权值相乘并累加的方法,计算各片段的攻击属性分值以及正常属性分值,提取攻击属性分值最高的可疑片段及其分值信息,判断该最高的攻击属性分值是否大于正常属性分值,如果否,则判断当前的攻击类别为normal,如果是,则判断该最高的攻击属性分值是否高于xss阈值,如果否,则判断当前的攻击类别是xss注入攻击,如果是,则判断当前的攻击类别是xss注入攻击。
相应的,本申请实施例还公开了一种xss注入攻击检测装置,参见图6所示,该装置包括:
数据包解析模块11,用于对捕获到的待检测流量数据包进行解析得到解析后数据;
数据处理模块12,用于按照预设处理规则对所述解析后数据进行处理得到处理后元组;
三元组匹配模块13,用于将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组;所述模型字典为利用预先构建的词频文件构成的字典;
可疑片段确定模块14,用于当所述模型字典中存在所述目标三元组,则根据所述目标三元组确定出所述待检测流量数据包中的所有可疑片段;
属性分值计算模块15,用于计算所述可疑片段的属性分值;
xss注入攻击确定模块16,用于将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,并基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击。
由上可见,本实施例中将捕获到的流量数据包进行解析,进而按照预设处理规则对对解析后数据进行处理的到处理后元组,然后查询模型字典中是否存在处理后元组,若存在,则计算出待检测流量数据包中的目标可疑片段的目标属性分值,然后基于该目标属性分值确定出目标可疑片段是否为xss注入攻击,也就是说,本申请的技术方案,能够对xss注入攻击识别具有普适性,能对大多数的xss注入攻击有较高的检测精度,对新出现的xss注入攻击也有一定的检测能力。
在一些具体的实施例中,所述数据包解析模块11,具体可以包括:
信息提取模块,用于提取从目标网关上捕获到的待检测流量数据包中的请求头信息和请求体信息;
编码解析模块,用于对所述请求头信息和所述请求体信息进行URL编码解析得到解析后数据。
在一些具体的实施例中,所述属性分值计算模块15,具体可以包括:
片段切分模块,用于对所述可疑片段进行片段切分处理得到各子片段;
子属性分值计算模块,用于基于所述子片段对应的三元组中的词频信息计算各所述子片段对应的攻击子属性分值和正常子属性分值;
属性分值确定模块,用于基于各所述子片段对应的攻击子属性分值和所述正常子属性分值确定所述可疑片段的攻击属性分值和正常属性分值;
在一些具体的实施例中,所述对所述可疑片段进行片段切分处理得到各子片段之后,具体可以包括:
第一判断模块,用于判断所述子片段是否为所述模型字典中存储的白名单中的字符串;
片段过滤模块,用于当所述子片段为所述模型字典中存储的白名单中的字符串,则将所述子片段进行过滤得到过滤后子片段;
在一些具体的实施例中,所述子属性分值计算模块,具体可以包括:
子属性分值计算单元,用于基于所述子片段对应的三元组中的词频信息计算各所述过滤后子片段对应的攻击子属性分值和正常子属性分值。
在一些具体的实施例中,所述属性分值计算模块15,具体可以包括:
目标分值确定模块,用于确定出分值最高的所述攻击属性分值得到目标攻击属性分值;
目标片段确定模块,用于将所述目标攻击属性分值对应的所述可疑片段确定为目标可疑片段。
在一些具体的实施例中,所述xss注入攻击确定模块16,具体可以包括:
第一判断模块,用于判断所述目标可疑片段对应的目标攻击属性分值是否低于预设xss阈值得到第一判断结果;
第二判断模块,用于判断所述目标攻击属性分值是否小于所述目标可疑片段对应的目标正常属性分值得到第二判断结果;
攻击类别确定模块,用于基于所述第一判断结果和所述第二判断结果确定所述目标可疑片段的攻击类别是否为xss注入攻击。
在一些具体的实施例中,所述攻击类别确定模块,具体可以包括:
第一判定模块,用于如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;
第二判定模块,用于如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;
第三判定模块,用于如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值不小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为xss注入攻击。
在一些具体的实施例中,所述数据处理模块12,具体可以包括:
数据处理单元,用于按照由字符替换规则、字符大小写转换规则和泛化处理规则中的任意一种或几种组合而成的目标处理规则对所述解析后数据进行处理得到处理后元组。
进一步的,本申请实施例还提供了一种电子设备。图7是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的xss注入攻击检测方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的xss注入攻击检测方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的xss注入攻击检测方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种xss注入攻击检测方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种xss注入攻击检测方法,其特征在于,包括:
对捕获到的待检测流量数据包进行解析得到解析后数据,并按照预设处理规则对所述解析后数据进行处理得到处理后元组;
将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组;所述模型字典为利用预先构建的词频文件构成的字典;
若存在,则根据所述目标三元组确定出所述待检测流量数据包中的所有可疑片段,并计算所述可疑片段的属性分值;
将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,并基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击。
2.根据权利要求1所述的xss注入攻击检测方法,其特征在于,所述对捕获到的待检测流量数据包进行解析得到解析后数据,包括:
提取从目标网关上捕获到的待检测流量数据包中的请求头信息和请求体信息;
对所述请求头信息和所述请求体信息进行URL编码解析得到解析后数据。
3.根据权利要求1所述的xss注入攻击检测方法,其特征在于,所述计算所述可疑片段的属性分值,包括:
对所述可疑片段进行片段切分处理得到各子片段;
基于所述子片段对应的三元组中的词频信息计算各所述子片段对应的攻击子属性分值和正常子属性分值;
基于各所述子片段对应的攻击子属性分值和所述正常子属性分值确定所述可疑片段的攻击属性分值和正常属性分值;
相应的,所述将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,包括:
确定出分值最高的所述攻击属性分值得到目标攻击属性分值,并将所述目标攻击属性分值对应的所述可疑片段确定为目标可疑片段。
4.根据权利要求3所述的xss注入攻击检测方法,其特征在于,所述基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击,包括:
判断所述目标可疑片段对应的目标攻击属性分值是否低于预设xss阈值得到第一判断结果,并判断所述目标攻击属性分值是否小于所述目标可疑片段对应的目标正常属性分值得到第二判断结果;
基于所述第一判断结果和所述第二判断结果确定所述目标可疑片段的攻击类别是否为xss注入攻击。
5.根据权利要求4所述的xss注入攻击检测方法,其特征在于,所述基于所述第一判断结果和所述第二判断结果确定所述目标可疑片段的攻击类别是否为xss注入攻击,包括:
如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;
如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为非xss注入攻击;
如果所述第一判断结果表明所述目标可疑片段对应的所述目标攻击属性分值不低于所述预设xss阈值且所述第二判断结果表明所述目标攻击属性分值不小于所述目标可疑片段对应的所述目标正常属性分值,则判定所述目标可疑片段的攻击类型为xss注入攻击。
6.根据权利要求3所述的xss注入攻击检测方法,其特征在于,所述对所述可疑片段进行片段切分处理得到各子片段之后,还包括:
判断所述子片段是否为所述模型字典中存储的白名单中的字符串;
若是,则将所述子片段进行过滤得到过滤后子片段;
相应的,所述基于所述子片段对应的三元组中的词频信息计算各所述子片段对应的攻击子属性分值和正常子属性分值,包括:
基于所述子片段对应的三元组中的词频信息计算各所述过滤后子片段对应的攻击子属性分值和正常子属性分值。
7.根据权利要求1至6任一项所述的xss注入攻击检测方法,其特征在于,所述按照预设处理规则对所述解析后数据进行处理得到处理后元组,包括:
按照由字符替换规则、字符大小写转换规则和泛化处理规则中的任意一种或几种组合而成的目标处理规则对所述解析后数据进行处理得到处理后元组。
8.一种xss注入攻击检测装置,其特征在于,包括:
数据包解析模块,用于对捕获到的待检测流量数据包进行解析得到解析后数据;
数据处理模块,用于按照预设处理规则对所述解析后数据进行处理得到处理后元组;
三元组匹配模块,用于将所述处理后元组中的目标三元组与模型字典存储的三元组字符串进行匹配以查询所述模型字典中是否存在所述目标三元组;所述模型字典为利用预先构建的词频文件构成的字典;
可疑片段确定模块,用于当所述模型字典中存在所述目标三元组,则根据所述目标三元组确定出所述待检测流量数据包中的所有可疑片段;
属性分值计算模块,用于计算所述可疑片段的属性分值;
xss注入攻击确定模块,用于将分值最高的所述属性分值对应的所述可疑片段确定为目标可疑片段,并基于所述目标可疑片段对应的目标属性分值确定所述目标可疑片段的攻击类别是否为xss注入攻击。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的xss注入攻击检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的xss注入攻击检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211378925.0A CN115720159A (zh) | 2022-11-04 | 2022-11-04 | 一种xss注入攻击检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211378925.0A CN115720159A (zh) | 2022-11-04 | 2022-11-04 | 一种xss注入攻击检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115720159A true CN115720159A (zh) | 2023-02-28 |
Family
ID=85254899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211378925.0A Pending CN115720159A (zh) | 2022-11-04 | 2022-11-04 | 一种xss注入攻击检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115720159A (zh) |
-
2022
- 2022-11-04 CN CN202211378925.0A patent/CN115720159A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961419B (zh) | WebShell检测方法、装置及系统 | |
US9602525B2 (en) | Classification of malware generated domain names | |
TWI498752B (zh) | 使用簡易貝氏機率模型從未經結構化之資料中擷取資訊並將資訊映射至經結構化之架構描述 | |
CN109768992B (zh) | 网页恶意扫描处理方法及装置、终端设备、可读存储介质 | |
CN108718306B (zh) | 一种异常流量行为判别方法和装置 | |
CN105072089A (zh) | 一种web恶意扫描行为异常检测方法与系统 | |
CN108718298B (zh) | 一种恶意外连流量检测方法及装置 | |
CN111835777B (zh) | 一种异常流量检测方法、装置、设备及介质 | |
WO2018159337A1 (ja) | プロファイル生成装置、攻撃検知装置、プロファイル生成方法、および、プロファイル生成プログラム | |
CN107666468B (zh) | 网络安全检测方法和装置 | |
CN109194677A (zh) | 一种sql注入攻击检测方法、装置及设备 | |
CN113194058B (zh) | Web攻击检测方法、设备、网站应用层防火墙及介质 | |
CN110768946A (zh) | 一种基于布隆过滤器的工控网络入侵检测系统及方法 | |
Zhang et al. | Toward unsupervised protocol feature word extraction | |
CN112738107B (zh) | 一种网络安全的评价方法、装置、设备及存储介质 | |
Pathak et al. | Study on decision tree and KNN algorithm for intrusion detection system | |
CN107426136B (zh) | 一种网络攻击的识别方法和装置 | |
CN110830416A (zh) | 网络入侵检测方法和装置 | |
CN116846612A (zh) | 攻击链补全方法、装置、电子设备及存储介质 | |
CN115720159A (zh) | 一种xss注入攻击检测方法、装置、设备及存储介质 | |
CN111416812B (zh) | 一种恶意脚本检测方法、设备及存储介质 | |
CN110197066B (zh) | 一种云计算环境下的虚拟机监控方法及监控系统 | |
CN115373834A (zh) | 一种基于进程调用链的入侵检测方法 | |
CN116155519A (zh) | 威胁告警信息处理方法、装置、计算机设备和存储介质 | |
CN113382000A (zh) | 一种ua字符串的异常检测方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |