攻击拦截方法和装置、计算设备及存储介质与流程

文档序号:17481476发布日期:2019-04-20 06:29阅读:114来源:国知局
攻击拦截方法和装置、计算设备及存储介质与流程

本说明书涉及互联网技术领域,特别涉及一种攻击拦截方法和装置、计算设备及存储介质。



背景技术:

传统的xss(crosssitescripting,跨站脚本攻击)攻击识别,往往是基于字符串黑名单特征,这种方案下很容易被攻击者用各种方式绕过。



技术实现要素:

有鉴于此,本说明书实施例提供了一种攻击拦截方法和装置、计算设备及存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种攻击拦截方法,包括:

对当前访问请求进行词法分析得到对应的令牌序列;

将所述令牌序列与黑名单令牌集合进行匹配,根据匹配结果确定所述当前访问请求是否被拦截。

根据本说明书实施例的第二方面,提供了一种攻击拦截装置,包括:

词法分析器,被配置为对当前访问请求进行词法分析得到对应的令牌序列;

匹配器,被配置为将所述令牌序列与黑名单令牌集合进行匹配,根据匹配结果确定所述当前访问请求是否被拦截。

根据本说明书实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的攻击拦截方法的步骤。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述的攻击拦截方法的步骤。

本说明书实施例通过采用词法分析将当前访问请求转换成token序列,将得到的令牌序列与黑名单令牌集合进行匹配,根据匹配结果确定所述当前访问请求是否被拦截,有效地提高了攻击识别的精确度,降低了被攻击者用各种方式绕过的可能性,并且降低了误拦的几率。

附图说明

图1是示出了根据本说明书一实施例的计算设备100的结构框图;

图2是示出了根据本说明书一实施例的攻击拦截方法的示意性流程图;

图3是示出了根据本说明书另一实施例的攻击拦截方法的示意性流程图;

图4是示出了根据本说明书另一实施例的攻击拦截装置的示意性模块图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存用户访问数据。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备100的上述以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

其中,处理器120可以执行图2所示攻击拦截方法中的步骤。图2是示出了根据本说明书一实施例的攻击拦截方法的示意性流程图,所述攻击拦截方法可以应用于web应用(如浏览器)的防火墙中,所述方法包括步骤202和步骤204。

步骤202:对当前访问请求进行词法分析得到对应的令牌序列。

一种实现方式中,所要拦截的攻击是xss攻击。xss攻击是一种黑客常用的针对web应用的攻击手法。通过采用词法分析可以将当前访问请求由字符串文本转换成token(令牌)序列。

通过采用词法分析方法,可以从web应用解析html(超文本标记语言)的视角对xss漏洞攻击进行解析得到token序列。传统字符串匹配的方式难以有效防御xss漏洞的原因在于,攻击者构造的payload(利用某个漏洞的特定字符串)只要在浏览器中可以正常执行,则能够利用漏洞。攻击者构造payload的发挥空间很大,用字符串匹配的方式很难穷举出payload的所有模式。但是不管攻击者怎样变换payload,它最终都是被浏览器按照有限状态机的规则解析执行的,浏览器总是会将payload内容解析成token序列,不管payload在字符串层面做了多少针对性的绕过措施,解析成token序列后内容都是可预期的,可以用固定的模式来描述,这就解决了传统基于字符串匹配的痛点。

例如,以通过把sql命令插入到web表单提交的查询字符串,最终达到欺骗服务器执行恶意的sql命令的sql注入类型的xss攻击为例,其中payload1和payload2是针对同一xss漏洞进行攻击的不同字符串,但二者最终被解析后的标记token相同;payload3和payload4是针对另一xss漏洞进行攻击的不同字符串,如下所示:

payload1:字符串1

token1:标签1、标签2、标签3。

payload2:字符串2

token1:标签1、标签2、标签3。

payload3:字符串3

token2:标签4、标签5;

payload4:字符串4

token2:标签4、标签5。

从上面的例子可以看出,不同的payload1和payload2均被解析为相同的token1,不同的payload3和payload4均被解析为相同的token2。即针对相同的漏洞,多种不同的payload字符串均会被解析成相同的token序列。

步骤204:将所述令牌序列与黑名单令牌集合进行匹配,根据匹配结果确定所述当前访问请求是否被拦截。

一种实现方式中,所述黑名单令牌集合通过以下步骤得到:

根据已知漏洞对应业务的url链接的重要级别或被攻击的危害级别,确定待构建黑名单令牌集合的稳定级别,所述稳定级别与url链接的重要级别或被攻击的危害级别具有对应关系,不同的稳定级别对应不同的防攻击策略;

根据所确定的待构建黑名单令牌集合的稳定级别,从已知漏洞的黑名单令牌序列中选择与稳定级别对应的黑名单令牌序列添加至所确定稳定级别的黑名单令牌集合中。

本实例根据已知漏洞对应业务的url链接的重要级别或被攻击的危害级别,确定待构建黑名单令牌集合的稳定级别,使得对漏洞的防护策略可以根据实际的需要进行定制。

一种实现方式中,所述防攻击策略包括是否允许出现令牌以及在允许的情况下是否允许出现设定的令牌。

一种实现方式中,所述黑名单令牌序列通过以下方式得到:

从历史攻击请求中提取攻击内容;

对所述攻击内容进行词法分析得到对应的黑名单令牌序列。

由于不管攻击者怎样变换payload,它最终都是被web应用按照有限状态机的规则解析执行,将payload内容解析成token序列,从而可以根据历史攻击请求的攻击内容得到对应的黑名单令牌序列。

一种实现方式中,所述将所述令牌序列与黑名单令牌集合进行匹配,根据匹配结果确定所述当前访问请求是否被拦截包括:

从所述当前访问请求中提取所请求业务的url链接;

根据预先设置的策略确定所述当前访问请求中所请求业务的url链接的重要级别或被攻击的危害级别;

根据所确定的url链接的重要级别或被攻击的危害级别,将所述令牌序列与相应稳定级别的黑名单令牌集合进行匹配,根据匹配结果确定所述用户访问请求是否被拦截。

一种实现方式中,所述将所述令牌序列与相应稳定级别的黑名单令牌集合进行匹配,根据匹配结果确定所述用户访问请求是否被拦截包括:

在所述防攻击策略是不允许出现令牌的情况下,判断所述令牌序列中是否包含令牌,若判断结果为是则拦截所述当前访问请求,否则,则不对所述当前访问请求进行拦截。

一种实现方式中,所述将所述令牌序列与相应稳定级别的黑名单令牌集合进行匹配,根据匹配结果确定所述用户访问请求是否被拦截包括:

在所述防攻击策略是允许出现令牌但不允许出现设定的令牌的情况下,判断所述令牌序列中是否包含所述设定的令牌,若判断结果为是则拦截所述当前访问请求,否则,则不对所述当前访问请求进行拦截,其中所述设定的令牌是具有潜在风险的令牌。

一种实现方式中,所述将所述令牌序列与相应稳定级别的黑名单令牌集合进行匹配,根据匹配结果确定所述用户访问请求是否被拦截包括:

在所述防攻击策略是允许出现令牌且允许出现设定的令牌的情况下,判断所述令牌序列中是否包含所述设定的令牌,若判断结果为否则不对所述当前访问请求进行拦截;如果判断结果为是则进一步检验所述设定的令牌的属性值和内容值,若所述属性值在设定的属性允许值范围内并且所述内容值在设定的内容允许值范围内则不拦截所述当前访问请求,否则,则拦截所述当前访问请求。

一种实现方式中,在所述根据已知漏洞的黑名单令牌序列和对应业务的url链接的重要级别或被攻击的危害级别,构建对应的防攻击策略,将所述防攻击策略添加到对应稳定级别的黑名单令牌集合中之后还包括:根据新发现的漏洞对所述黑名单令牌集合进行定期或不定期的更新,从而根据新发现的安全漏洞进行及时防护。

一种实现方式中,在所述根据已知漏洞的黑名单令牌序列和对应业务的url链接的重要级别或被攻击的危害级别,构建对应的防攻击策略,将所述防攻击策略添加到对应稳定级别的黑名单令牌集合中之后还包括:对指定的已知漏洞的防攻击策略进行调整,从而可以根据不同级别的安全需求实现对token黑名单的动态适配。

以下是一个web应用安全运营过程中运用词法分析技术对xss攻击进行精准拦截的实施例:

某日外部的白帽子(指正面的黑客,他可以识别计算机系统或网络系统中的安全漏洞,但并不会恶意去利用,而是公布所发现的安全漏洞,以便系统所有者在恶意攻击者利用该安全漏洞之前来修补漏洞)上报,某业务线下的系统中,“https://xxx.xxx.com/xxx/xxx”这个表单提交的业务中存在存储型xss漏洞。该漏洞定级为高危漏洞,按照内部的应急响应要求,需要立刻在web应用防火墙上添加漏洞的拦截规则,帮助系统快速对漏洞进行止血。

现有的防护方法是基于传统的字符串匹配的方式进行xss漏洞的防护。例如,一个比较常见的做法会判断表单字符串中是否包含<script>标签,但是这种做法经常会被恶意的攻击者绕过,安全运营陷入与攻击者绕过与反绕过的对抗之中,防御效果不佳。

但在本说明书的一个实施例中,就可以从浏览器解析html的视角对xss漏洞攻击进行防护。在具体实现时,可以根据“https://xxx.xxx.com/xxx/xxx”这个表单的业务属性,判断它提交的表单内容中:

是否允许出现html的token;

如果允许的话,是否允许出现较为敏感的html的token(具有一定风险隐患的token)。

根据这两项,判断在这个漏洞上要使用的词法分析拦截策略,例如可以将拦截策略分为高/中/低三级:

当根据表单的业务属确定所请求业务的重要级别或被攻击的危害级别较高时,即可将拦截策略定为高(不允许出现html的token);

当根据表单的业务属确定所请求业务的重要级别或被攻击的危害级别一般时,即可将拦截策略定为中(允许出现html的token,但只允许出现部分无害的html的token);

当根据表单的业务属确定所请求业务的重要级别或被攻击的危害级别较低时,即可将拦截策略定为低(允许出现部分潜在风险的html的token,但是对这些token的属性值与内容值会做二次校验)。

本说明书实施例通过采用词法分析将当前访问请求转换成token序列,将得到的令牌序列与黑名单令牌集合进行匹配,根据匹配结果确定所述当前访问请求是否被拦截,有效地提高了攻击识别的精确度,降低了被攻击者用各种方式绕过的可能性,并且降低了误拦的几率。

图3是示出了根据本说明书另一实施例的攻击拦截方法的示意性流程图,如图3所示,该方法包括:

步骤302、在xss攻击请求经过web应用防火墙时,记录该请求的攻击内容以及请求业务的url链接。

步骤304、请求的攻击内容经过web应用防火墙内置的词法分析器,解析为html的token序列。

步骤306、根据请求业务的url链接的重要级别或被攻击的危害级别,匹配不同稳定级别的黑名单token集合,根据匹配的结果决定该请求是否拦截。

本实施例相较于传统的xss攻击防护方案,这种模式下不基于攻击内容的字符串特征,不易被攻击者绕过。另外,词法分析器匹配的黑名单token库可以做成动态可配置类型,这样可根据不同的防护级别执行不同的防护策略。

本说明书实施采用词法分析方法替代传统的字符串特征匹配,对攻击请求进行处理,可以很好的解决字符串匹配对攻击者的各种绕过方法难以招架的痛点。词法分析方法基于有限状态机实现,与浏览器渲染的逻辑基本一致,被绕过的可能性大大降低。

与前述攻击拦截方法相对应,本说明书还提供了攻击拦截装置实施例,所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本说明书的装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据实际功能还可以包括其他硬件,对此不再赘述。

攻击拦截装置400对应了图2所示实施例,所述装置400包括:

词法分析器410,被配置为对当前访问请求进行词法分析得到对应的令牌序列;

匹配器420,被配置为将所述令牌序列与黑名单令牌集合进行匹配,根据匹配结果确定所述当前访问请求是否被拦截。

一个可选的实施例中,所述攻击拦截装置还包括:

稳定级别确定器,被配置为根据已知漏洞对应业务的url链接的重要级别或被攻击的危害级别,确定待构建黑名单令牌集合的稳定级别,所述稳定级别与url链接的重要级别或被攻击的危害级别具有对应关系,不同的稳定级别对应不同的防攻击策略;

集合构建器,被配置为根据所确定的待构建黑名单令牌集合的稳定级别,从已知漏洞的黑名单令牌序列中选择与稳定级别对应的黑名单令牌序列添加至所确定稳定级别的黑名单令牌集合中。

一个可选的实施例中,所述防攻击策略包括是否允许出现令牌以及在允许的情况下是否允许出现设定的令牌。

一个可选的实施例中,所述攻击拦截装置还包括:

内容提取器,被配置为从历史攻击请求中提取攻击内容;

所述词法分析器进一步被配置为对所述攻击内容进行词法分析得到对应的黑名单令牌序列。

一个可选的实施例中,将所述匹配器包括:

链接提取模块,被配置为从所述当前访问请求中提取所请求业务的url链接;

级别确定模块,被配置为根据预先设置的策略确定所述当前访问请求中所请求业务的url链接的重要级别或被攻击的危害级别;

匹配模块,被配置为根据所确定的url链接的重要级别或被攻击的危害级别,将所述令牌序列与相应稳定级别的黑名单令牌集合进行匹配,根据匹配结果确定所述用户访问请求是否被拦截。

一个可选的实施例中,所述匹配模块包括:

第一拦截单元,被配置为在所述防攻击策略是不允许出现令牌的情况下,判断所述令牌序列中是否包含令牌,若判断结果为是则拦截所述当前访问请求,否则,则不对所述当前访问请求进行拦截。

一个可选的实施例中,所述匹配模块包括:

第二拦截单元,被配置为在所述防攻击策略是允许出现令牌但不允许出现设定的令牌的情况下,判断所述令牌序列中是否包含所述设定的令牌,若判断结果为是则拦截所述当前访问请求,否则,则不对所述当前访问请求进行拦截,其中所述设定的令牌是具有潜在风险的令牌。

一个可选的实施例中,所述匹配模块包括:

第三拦截单元,被配置为在所述防攻击策略是允许出现令牌且允许出现设定的令牌的情况下,判断所述令牌序列中是否包含所述设定的令牌,若判断结果为否则不对所述当前访问请求进行拦截;如果判断结果为是则进一步检验所述设定的令牌的属性值和内容值,若所述属性值在设定的属性允许值范围内并且所述内容值在设定的内容允许值范围内则不拦截所述当前访问请求,否则,则拦截所述当前访问请求。

一个可选的实施例中,所述匹配器还包括:

更新模块,被配置为根据新发现的漏洞对所述黑名单令牌集合进行定期或不定期的更新。

一个可选的实施例中,所述匹配器还包括:

调整模块,被配置为对指定的已知漏洞的防攻击策略进行调整。

一个可选的实施例中,所述攻击是xss攻击。

上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,

或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本说明书一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的攻击拦截方法的步骤。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述的攻击拦截方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述方法的技术方案的描述。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1