一种基于网关的机器人攻击防护实现方法
文献发布时间:2024-04-18 20:01:30
技术领域
本发明涉及网关防护领域,尤其是一种基于网关的机器人攻击防护实现方法。
背景技术
现有的网关防护大部分都是通过检测,对于发现的攻击进行处置,其处置行为一般是拦截或者放行,检测方式一般是基于攻击特征进行统计,攻击特征比如SQL注入,路径遍历等,这种攻击特征比较明显,通过计算统计访问频率,比如CC攻击,超过某种访问频率则认为是CC攻击。但是在实际的访问过程中,慢速攻击或者分布式攻击,以及一些WAF特征不明显的攻击,通过这种检测方式很难精确确定攻击,如果直接拦截,则可能会导致业务中断,如果不拦截,则可能带来损失。
发明内容
为解决现有技术存在的上述问题,本发明提供一种基于网关的机器人攻击防护实现方法,通过设置规则的处置行为,让用户主动进行二次验证并捕获用户的验证行为,从而确定是否为机器人攻击,该实现方法提高了机器人攻击防护的有效性。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种基于网关的机器人攻击防护实现方法,该方法包括:
网关设置检测规则并设置检测规则的处置行为;
网关对流量进行检测分析,当二次验证动作触发时,网关返回二次验证的重定向请求;
网关根据检测流量发现的用户特征,设置二次验证的重定向请求的路由策略;
用户刷新二次验证的重定向请求,网关返回验证页面并对验证信息进行验证;
网关根据验证结果调整二次验证的重定向请求的路由策略,对用户进行放行或者阻断。
进一步地,网关根据设置的检测规则对流量进行检测分析,当流量符合检测攻击的特征时,检测规则的处置行为生效;若检测规则的处置行为为验证,则触发二次验证动作;当二次验证动作触发时,网关返回二次验证的重定向请求。
进一步地,用户通过二次验证的重定向请求重新请求网关,网关根据二次验证的重定向请求的路由策略,将二次验证的重定向请求发送到验证模块;验证模块为用户生成验证信息,包括JS文件以及session标识,JS文件包括验证页面以及捕获的用户的验证行为;网关将验证模块生成的JS文件以及session标识返回给客户端。
进一步地,用户进行验证码验证时,网关上送JS文件以及session标识到验证模块;验证模块根据session标识进行验证码认证,并对JS文件中捕获的用户的验证行为进行确认。
进一步地,验证模块将验证结果返回给网关,网关对验证结果进行判断,若验证通过,则更新二次验证的重定向请求的路由策略,同时检测模块将用户的检测数据清零;若验证不通过,则确认JS文件中捕获的用户的验证行为为机器人攻击,并进行拦截,同时将用户加入到黑名单。
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于网关的机器人攻击防护实现方法。
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于网关的机器人攻击防护实现方法的计算机程序。
有益效果:
本发明通过对疑似机器人攻击进行二次验证,提高检测的准确性。
附图说明
图1是本发明的基于网关的机器人攻击防护实现方法流程示意图;
图2是本发明的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于网关的机器人攻击防护实现方法,网关设置检测规则并设置检测规则的处置行为;网关对流量进行检测分析,当二次验证动作触发时,网关返回二次验证的重定向请求;网关根据检测流量发现的用户特征,设置二次验证的重定向请求的路由策略;用户刷新二次验证的重定向请求,网关返回验证页面并对验证信息进行验证;网关根据验证结果调整二次验证的重定向请求的路由策略,对用户进行放行或者阻断。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明的基于网关的机器人攻击防护实现方法流程示意图。如图1所示,该方法包括:
S1、网关设置检测规则并设置检测规则的处置行为;
网关为二次认证的重定向请求添加路由策略。
S2、网关对流量进行检测分析,当二次验证动作触发时,网关返回二次验证的重定向请求;
网关根据设置的检测规则对流量进行检测分析,当流量符合检测攻击的特征时,检测规则的处置行为生效;若检测规则的处置行为为验证,则触发二次验证动作;当二次验证动作触发时,网关返回二次验证的重定向请求。
S3、网关根据检测流量发现的用户特征,设置二次验证的重定向请求的路由策略;
重定向请求的路由策略包括重定向请求的URL,还包括用户的特征,包括客户端地址、XFF(x-forwarded-for,HTTP头部的一个字段,该字段携带的是代理的地址)、UA、HOST等。
S4、用户刷新二次验证的重定向请求,网关返回验证页面并对验证信息进行验证;
用户通过二次验证的重定向请求重新请求网关,网关根据二次验证的重定向请求的路由策略,将二次验证的重定向请求发送到验证模块;验证模块为用户生成验证信息,包括JS文件以及session标识,JS文件包括验证页面以及捕获的用户的验证行为;网关将验证模块生成的JS文件以及session标识返回给客户端;
用户进行验证码验证时,网关上送JS文件以及session标识到验证模块;验证模块根据session标识进行验证码认证,并对JS文件中捕获的用户的验证行为进行确认。
S5、网关根据验证结果调整二次验证的重定向请求的路由策略,对用户进行放行或者阻断;
验证模块将验证结果返回给网关,网关对验证结果进行判断,若验证通过,则更新二次验证的重定向请求的路由策略,同时检测模块将用户的检测数据清零;若验证不通过,则确认JS文件中捕获的用户的验证行为为机器人攻击,并进行拦截,同时将用户加入到黑名单。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述基于网关的机器人攻击防护实现方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
S1、网关设置检测规则并设置检测规则的处置行为;
具体实施时,在网关上配置CC攻击、爬虫攻击、路径扫描攻击等攻击的检测规则,检测规则的处置行为可以为放行、观察、验证、阻断。
具体实施时,当处置行为设置为验证时,用户可以设置重定向的请求,若用户没有设置重定向请求,则由网关选择默认的重定向请求。
网关为二次验证的重定向请求添加路由策略。当网关接收到二次验证的重定向请求时,路由策略根据二次验证的重定向请求调用不同的服务或者接口。
具体实施时,若重定向请求的路由策略已经存在,则不需要下发。
S2、网关对流量进行检测分析,当二次验证动作触发时,网关返回二次验证的重定向请求;
网关根据设置的检测规则对流量进行检测分析,当流量符合检测攻击的特征时,检测规则的处置行为生效;若检测规则的处置行为为验证,则触发二次验证动作;当二次验证动作触发时,网关返回二次验证的重定向请求。
具体实施时,根据检测规则判断用户的user-agent(用户代理),根据user-agent返回不同的重定向请求。不同的重定向请求会对应不同的验证模块,比如图像验证、公式验证、验证码等,生成不同的验证方式,比如图像验证,则弹出图形验证页面,用户按照提示拖动图片验证之后,由验证模块对结果进行验证。图像验证的校验包括图形的正确性,鼠标滑动的时间、频率等。不同的验证模块有不同的验证方式。
S3、网关根据检测流量发现的用户特征,设置二次验证的重定向请求的路由策略;
重定向请求的路由策略包括重定向请求的URL,还包括用户的特征,包括客户端地址、XFF(x-forwarded-for,HTTP头部的一个字段,该字段携带的是代理的地址)、UA、HOST等。
重定向请求的路由策略下发时,首先进行验证,若路由策略已经存在,则不需要下发。
在验证期间,触发检测规则的处置行为调整为阻断,同时返回重定向请求,即在验证期间,该用户的所有的访问都会返回重定向的请求。
具体实施时,当在验证期间,网关为二次验证的重定向请求设置阈值,若超过阈值数量的二次验证的重定向请求被发送,网关仍然没有收到二次验证的重定向请求,则网关会将该访问的源进行阻断处置。
具体实施时,以CC攻击为例,基于源地址进行API请求的统计,若达到一定的阈值,则进行验证。若检测规则一旦被触发,则在验证期间,该源地址的所有重定向请求都会被阻断,源端只能接收到二次验证的重定向请求。
S4、用户刷新二次验证的重定向请求,网关返回验证页面并对验证信息进行验证;
用户通过二次验证的重定向请求重新请求网关,网关根据二次验证的重定向请求的路由策略对二次验证的重定向请求进行处理,调用验证模块。
具体实施时,用户收到二次验证的重定向请求时,用户若为正常用户,则会发现当前的请求为异常应答,通过刷新页面,发送二次验证的重定向请求重新请求网关,网关根据二次验证的重定向请求的路由策略将二次验证的重定向请求发送到验证模块;验证模块为用户生成验证信息,包括JS文件以及session标识;网关将验证模块生成的JS文件以及session标识返回给客户端。
JS文件包括验证页面以及捕获的用户的验证行为;用户进行验证码验证时,网关上送JS文件以及session标识到验证模块;验证模块根据session标识进行验证码认证,并对JS文件中捕获的用户的验证行为进行确认;若认证通过,则更新二次验证的重定向请求的路由策略;否则确认JS文件中捕获的用户的验证行为为机器人攻击,并进行拦截。
S5、网关根据验证结果调整二次验证的重定向请求的路由策略,对用户进行放行或者阻断;
验证模块将验证结果返回给网关,网关对验证结果进行判断,若验证通过,则检测模块将用户的检测数据清零;若验证不通过,则将该用户加入到黑名单,禁止该用户访问相关的服务。
具体实施时,对用户的行为生成安全事件,提示运维人员进行人工校验,若用户为可信(验证通过),则将其加入白名单。
基于前述发明构思,如图2所示,本发明还提出一种计算机设备100,包括存储器110、处理器120及存储在存储器110上并可在处理器120上运行的计算机程序130,处理器120执行计算机程序130时实现前述基于网关的机器人攻击防护实现方法。
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述基于网关的机器人攻击防护实现方法的计算机程序。
本发明提出的基于网关的机器人攻击防护实现方法,通过设置检测规则的处置行为,让用户主动进行二次验证并捕获用户的验证行为,从而确定是否为机器人攻击,该实现方法提高了机器人攻击防护的有效性。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。