基于URL自学习的Web防护方法与流程

专利2022-06-30  100


本发明属于网络安全技术领域,尤其是涉及一种基于url自学习的web防护方法。



背景技术:

据调研统计,大部分的网络攻击行为都来自于应用层面而非网络层面,并且国内有超过一半的站点存在各种web层面的安全问题。虽然大部分企业部署了入侵检测系统、网络防火墙、网络防病毒等网络安全防护系统,但是在面对来自web应用层的安全威胁,很多企业仍然应对乏力。

web应用防火墙是解决web应用安全问题的安全产品,通过安全域划分和边界隔离的方法,在客户区域和服务器应用系统区域之间加固一道安全屏障,通过一系列的安全策略组合,从而最大程度的保护服务器区域、应用服务系统和数据的安全,帮助、保障客户网站业务安全运行。web应用防火墙的安全防护功能,提供针对性的攻击检查、页面防篡改、统计分析等,当url请求触发预设条件时,执行对应的动作。

对同一类型的url站点组执行统一动作可以提高防护效率,这就需要通过统计分析得到对应的站点模型。通过网站url自学习,分析用户正常访问的请求数据,提取url请求的方法、参数等信息,生成一套白名单策略,防御指定url的未知攻击。但是目前的url自学习,大多是在用户访问流量较少的夜间对日间的流量数据进行复习,没有与安全防护同步进行,自学习结果具有迟延。另一方面,目前的自学习结果的数据库存储,读取速率较低;而且结果数据长期累积,有效性存疑。



技术实现要素:

鉴于上述背景,提出一种web安全防护方法,通过学习用户对被保护站点的正常流量的数据信息,分析得到站点保护对象的正常模型,并生成相应的白名单策略,加载到白名单规则引擎中,实现对异常请求与流量进行检测和防护。

基于url自学习的web防护方法,当请求的url触发白名单时执行对应的预设动作,url自学习与web安全防护实时同步进行,判断请求的url是否存在于内存数据库中;若存在,将请求转至web服务器进行响应;若不存在,加载执行自学习策略,并更新至内存数据库。

上述的url自学习,包括:引擎的第一线程接收界面下发的自学习策略;引擎的第二线程从消息队列实时获取待学习的url数据;判断所述数据是否满足自学习策略的条件,若不满足则结束,若满足则进一步判断url信息是否存在于内存数据库中;若内存数据库中已存在则结束自学习,若内存数据库中不存在则将该url信息写入内存数据库。

优选的,url的自学习结果信息具有预设的有效周期,当超过所述周期后,将其信息从内存数据库中清除。

优选的,自学习策略的条件,包括http方法与http响应码;

还包括设定样本数及其来源ip数、自学习时间段;样本数及其来源ip数未设定时取默认的最少样本数与最少样本来源ip数;

还包括url的参数配置:是否必须具有参数、参数个数、参数类型、参数取值范围;

所述参数类型包括字符串型或数字型;所述字符串型参数取值范围包括字符串长度,数字型参数取值范围包括数字大小。

作为一种优选实施方式,从内存数据库选取自学习得到的站点,添加至白名单;当新的请求触发白名单时,执行预设的动作。

上述的预设动作包括,

放行:不再进行安全监测、直接转发至服务器;

接受:结束本次策略检测,但仍会进行其他安全检测;

阻断:结束本次策略检测,并直接关闭当前tcp连接;当动作为“阻断”时,进一步包括封禁源ip操作;

重定向:构造302重定向页面回应请求端,并关闭当前tcp连接;

伪装:将预设的http响应码、对应的响应文件内容回应请求端,并关闭当前tcp连接。

进一步的,所述策略检测,包括:http协议校验,web服务器与插件防护,http访问控制,爬虫防护,非法上传与下载限制,信息泄露防护,盗链防护,跨站请求伪造,cookie安全,内容过滤。

上述的技术方案,具有以下有益效果:配置被保护站点,以及对应的自学习策略,引擎获取界面下发的策略后,开始执行自学习,将学习的结果加载到白名单规则中,最后对白名单配置动作,当请求触发白名单时执行预设的动作,实现安全防护。该方法中,url自学习与web防护实时同步进行,保证学习结果的实时性;学习结果保存在内存数据库,读取速率高,保证防护效率;学习结果设置有效周期,超期后清除数据重新学习,保证学习结果有效性,提高web安全防护的效率。

附图说明

图1为本发明的实施例,web防护流程图;

图2为本发明的实施例,url自学习流程图。

具体实施方式

url自学习,是通过学习用户对被保护站点的正常流量的数据信息,总结出站点保护对象的正常模型,并生成相应的白名单策略,加载到白名单规则引擎中对异常流量进行检测和防护。

如图1所示,基于url自学习的web防护方法,url自学习与web安全防护实时同步进行,即:判断请求的url是否存在于内存数据库中;若存在,将请求转至web服务器进行响应;若不存在,加载执行自学习策略,并更新至内存数据库;同时,当请求的url触发web防护的白名单时执行对应的预设动作。

具体的讲,首先通过界面配置需要安全防护的站点的信息,并针对该站点配置自学习策略,自学习策略创建后下发至数据库,执行自学习的底层引擎获取策略的配置信息并加载策略执行自学习;自学习结束后将自学习结果更新至内存数据库。

配置安全防护白名单时,可以从内存数据库获取自学习结果,并选择站点组创建新的白名单;此处需要说明的是,白名单具有相应的策略检测配置,包括但不限于:http协议校验,web服务器与插件防护,http访问控制,爬虫防护,非法上传与下载限制,信息泄露防护,盗链防护,跨站请求伪造,cookie安全,内容过滤。

白名单创建后会生成相应的配置文件以被防护模块进行加载。

当新的请求触发白名单,即如果收到的新url请求属于白名单的站点组,则执行白名单预设的动作,包括但不限于:放行:不再进行安全监测、直接转发至服务器;

接受:结束本次策略检测,但仍会进行其他安全检测;

阻断:结束本次策略检测,并直接关闭当前tcp连接;当动作为“阻断”时,进一步包括封禁源ip操作;

重定向:构造302重定向页面回应请求端,并关闭当前tcp连接;

伪装:将预设的http响应码、对应的响应文件内容回应请求端,并关闭当前tcp连接。

而如果请求没有触发白名单,则数据直接走向服务器。

如图2所示,url自学习,包括:引擎的线程1接收界面下发的自学习策略;引擎的线程2从消息队列实时获取待学习的url数据;经过数据解析后,判断所述数据是否与配置的自学习策略条件匹配,若不匹配则结束自学习,若匹配则进一步判断url信息是否存在于内存数据库中;若内存数据库中已存在则结束自学习,若内存数据库中不存在则将该url信息写入内存数据库。

所述自学习策略的配置条件包括但不限于:

http方法与http响应码;

样本数及其来源ip数、自学习时间段;样本数及其来源ip数未设定时取默认的最少样本数与最少样本来源ip数;

url的参数配置:是否必须具有参数、参数个数、参数类型、参数取值范围;参数类型包括字符串型或数字型;所述字符串型参数取值范围包括字符串长度,数字型参数取值范围包括数字大小。

优选的,url的自学习结果信息具有预设的有效周期,当超过所述周期后,将其信息从内存数据库中清除。

下面结合实施例对技术方案进行详细说明。

首先是自学习策略的配置。在web安全防护下,增加url自学习模块,包括自学习策略与自学习结果。

自学习策略的创建与配置,包括以下内容:

(1)当前自学习策略的名称;

(2)选择http方法,例如post、get等,并且应当至少选择一种;默认状态下为全选;

(3)选择http响应码,例如200,302,304,307等,并且应当至少选择一种;默认状态下为全选;

(4)可以输入进行自学习的url对象与不进行自学习的url对象。

作为优选的实施例,自学习策略的配置内容还可以包括以下内容:

自学习的最少样本数,最少样本来源ip数,并且为该两项设置默认值,例如最少样本数默认3000个,最少样本来源ip数默认1000个;

进行自学习的url的参数配置项可以包括:是否必须具有参数、参数个数、参数类型、参数取值范围;其中,参数类型包括字符串型或数字型,相对应的,字符串型参数取值范围包括字符串长度,数字型参数取值范围包括数字大小。

自学习策略创建下发后开始执行;使用redis数据库用于存储自学习的结果。

作为一种优选的实施方式,url的自学习结果信息具有预设的有效周期,当超过所述周期后,将其信息从内存数据库中清除。

用户a的请求通过nginx引擎时,判断其url的信息及参数是否与设置的自学习策略的条件相匹配,例如解析并对比其http方法、响应码、url参数配置等是否与策略条件一致;

若不一致则结束自学习过程;若一致则进一步判断存储在前自学习结果的redis内存数据库中是否存在当前url的信息,如果已存在则说明该url已经过自学习、结束,如果不存在则说明该url未经过自学习、将其信息更新写入redis数据库。

与上述的自学习过程同步进行的是web安全防护,安全防护是针对白名单内的站点组进行的,因此需要先创建想要进行保护的白名单。创建白名单时可以直接选择自学习结果对象。

作为优选的实施方式,白名单的防护配置内容包括进行以下检测:sql注入防护、xss防护、特洛伊木马防护、常见攻击防护、http协议校验、http访问控制,自动扫描防护、服务器信息隐藏、web服务器与插件防护、web爬虫防护、url关键词过滤、网页文件格式、请求方法防护、csrf防护、盗链防护、非法上传与下载限制、跨站请求伪造、cookie安全、内容过滤等。通常情况下,可以根据站点的重要性、被攻击可能性等各种因素选择需要进行的防护。

相应的,对白名单策略设置以下操作:

放行:不再进行安全监测、直接转发至服务器;

接受:结束本次策略检测,但仍会进行其他安全检测;

阻断:结束本次策略检测,并直接关闭当前tcp连接;当动作为“阻断”时,进一步包括封禁源ip操作;

重定向:构造302重定向页面回应请求端,并关闭当前tcp连接;

伪装:将预设的http响应码、对应的响应文件内容回应请求端,并关闭当前tcp连接。

web安全防护的基本过程是:由modsecrity引擎判断请求是否触发了白名单策略的配置,即是否违反了上述的防护措施,如果触发了白名单策略,则按照预设的动作执行,例如放行或阻断;如果没有触发白名单策略的规则,则放行至服务器。

如上所述的,基于url自学习的web防护方法,安全防护与自学习同步实时进行,可以保证学习结果的及时性;学习结果保存在redis内存数据库,调用加载速度更快,有利于提高工作效率,同时自学习结果具有有限的生命周期,到期后进行清除,有利于保证数据的时效性。


技术特征:

1.基于url自学习的web防护方法,当请求的url触发白名单时执行对应的预设动作,其特征在于,url自学习与web安全防护实时同步进行,判断请求的url是否存在于内存数据库中;若存在,将请求转至web服务器进行响应;若不存在,加载执行自学习策略,并更新至内存数据库。

2.根据权利要求1所述的防护方法,其特征在于,所述url自学习,包括:

引擎的第一线程接收界面下发的自学习策略;

引擎的第二线程从消息队列实时获取待学习的url数据;

判断所述数据是否满足自学习策略的条件,若不满足则结束,若满足则进一步判断url信息是否存在于内存数据库中;

若内存数据库中已存在则结束自学习,若内存数据库中不存在则将该url信息写入内存数据库。

3.根据权利要求1或2所述的防护方法,其特征在于,所述url的自学习结果信息具有预设的有效周期,当超过所述周期后,将其信息从内存数据库中清除。

4.根据权利要求2所述的防护方法,其特征在于,自学习策略的条件,包括http方法与http响应码。

5.根据权利要求4所述的防护方法,其特征在于,自学习策略的条件,还包括设定样本数及其来源ip数、自学习时间段;样本数及其来源ip数未设定时取默认的最少样本数与最少样本来源ip数。

6.根据权利要求5所述的防护方法,其特征在于,自学习策略的条件,还包括url的参数配置:是否必须具有参数、参数个数、参数类型、参数取值范围;

所述参数类型包括字符串型或数字型;所述字符串型参数取值范围包括字符串长度,数字型参数取值范围包括数字大小。

7.根据权利要求1至3任一所述的防护方法,其特征在于,从内存数据库选取自学习得到的站点,添加至白名单;当新的请求触发白名单时,执行预设的动作。

8.根据权利要求7所述的防护方法,其特征在于,所述预设动作包括,

放行:不再进行安全监测、直接转发至服务器;

接受:结束本次策略检测,但仍会进行其他安全检测;

阻断:结束本次策略检测,并直接关闭当前tcp连接;当动作为“阻断”时,进一步包括封禁源ip操作;

重定向:构造302重定向页面回应请求端,并关闭当前tcp连接;

伪装:将预设的http响应码、对应的响应文件内容回应请求端,并关闭当前tcp连接。

9.根据权利要求7所述的防护方法,其特征在于,所述策略检测,包括:http协议校验,web服务器与插件防护,http访问控制,爬虫防护,非法上传与下载限制,信息泄露防护,盗链防护,跨站请求伪造,cookie安全,内容过滤。

技术总结
本发明公开一种基于URL自学习的Web防护方法,当请求的URL触发白名单时执行对应的预设动作,URL自学习与Web安全防护实时同步进行,判断请求的URL是否存在于内存数据库中;若存在,将请求转至Web服务器进行响应;若不存在,加载执行自学习策略,并更新至内存数据库。该方法中,URL自学习与Web防护实时同步进行,保证学习结果的实时性;学习结果保存在内存数据库,读取速率高,保证防护效率;学习结果设置有效周期,超期后清除数据重新学习,保证学习结果有效性,提高Web安全防护的效率。

技术研发人员:南星;倪宝珠;刘亚轩;何建锋;陈宏伟
受保护的技术使用者:西安交大捷普网络科技有限公司
技术研发日:2019.12.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55991.html

最新回复(0)