web应用防火墙设备和安全防护日志的异步处理方法

文档序号:7772906阅读:144来源:国知局
web应用防火墙设备和安全防护日志的异步处理方法
【专利摘要】本发明提供一种web应用防火墙设备和安全防护日志的异步处理方法,该设备包括:防护预警模块,用于检测客户端向Web服务器发送的请求信息;日志产生模块,用于生成日志信息,并将其存储至缓存中;日志发送模块,用于通过socket长连接将缓存中的日志信息发送至日志存储模块;日志存储模块,用于将接收的日志信息存储至数据库中;日志发送模块,还用于通过socket长连接向日志存储模块发送心跳信息,以检测该socket长连接的连接状态;故障处理模块,用于重新建立socket长连接,并将缓存中的日志信息进行文本存储。本发明实施例有效解决了现有技术中,web应用防火墙设备处理安全防护日志的性能差的技术问题。
【专利说明】web应用防火墙设备和安全防护日志的异步处理方法
【技术领域】
[0001 ] 本发明涉及信息技木,尤其涉及ー种web应用防火墙设备和安全防护日志的异步处理方法。
【背景技术】
[0002]随着网络信息技术的高速发展,基于Web网络的应用在全球被越来越多的公司和机构使用。但是,很多企业在享受电子商务、软件即服务(Software-as-a-service, SaaS)等带来的快捷便利的同时,却又被紧随其后的对Web服务器的非法访问入侵等安全问题所困扰。
[0003]现有技术中,采用web应用防火墙(Web application firewall,WAF)来解决上述Web应用安全问题。WAF设备中的安全防护日志采用同步记录的方式,即发现攻击后产生安全防护日志,然后直接将安全防护日志存入数据库。但是,当WAF设备防护的Web服务器发生大量攻击时,将产生的大量安全防护日志仍然直接存入数据库会产生大量的I/O操作,这会影响到WAF设备的性能,并且处理的日志数量级过大,会加剧WAF设备的资源耗尽,导致WAF设备不可用。

【发明内容】

[0004]本发明提供ー种web应用防火墙设备和安全防护日志的异步处理方法,用以解决现有技术中,web应用防火墙设备处理安全防护日志的性能差的技术问题。
[0005]一方面,本发明实施例提供ー种web应用防火墙设备,包括:防护预警模块、日志产生模块、日志发送模块、日志存储模块和故障处理模块;
[0006]所述防护预警模块,用于检测客户端向Web服务器发送的请求信息,并在所述请求信息对所述Web服务器产生威胁时,触发日志产生模块;
[0007]所述日志产生模块,用于生成所述请求信息对应的日志信息,并将所述日志信息存储至缓存中;
[0008]所述日志发送模块,用于提取所述缓存中的日志信息,并通过socket长连接将所述日志信息发送至所述日志存储模块;
[0009]所述日志存储模块,用于将接收的所述日志信息存储至数据库中;
[0010]所述日志发送模块,还用于通过所述socket长连接向所述日志存储模块发送心跳信息,以检测所述socket长连接的连接状态;若检测到所述socket长连接的连接状态出现异常,则触发所述故障处理模块;
[0011]所述故障处理模块,用于重新建立socket长连接,并不断将所述缓存中的日志信息进行文本存储,直至所述socket长连接重新建立完成。
[0012]另ー方面,本发明实施例提供ー种安全防护日志的异步处理方法,包括:
[0013]web应用防火墙设备中的防护预警模块检测客户端向Web服务器发送的请求信息,并在所述请求信息对所述Web服务器产生威胁时,触发所述web应用防火墙设备中的日志产生模块;
[0014]所述web应用防火墙设备中的日志产生模块生成所述请求信息对应的日志信息,并将所述日志信息存储至缓存中;
[0015]所述web应用防火墙设备中的日志发送模块提取所述缓存中的日志信息,并通过socket长连接将所述日志信息发送至所述web应用防火墙设备中的日志存储模块;
[0016]所述日志存储模块将接收的所述日志信息存储至数据库中;
[0017]所述日志发送模块通过所述socket长连接向所述日志存储模块发送心跳信息,以检测所述socket长连接的连接状态;若检测到所述socket长连接的连接状态出现异常,则触发所述web应用防火墙设备中的故障处理模块;
[0018]所述故障处理模块重新建立socket长连接,并不断将所述缓存中的日志信息进行文本存储,直至所述socket长连接重新建立完成。
[0019]本发明提供的web应用防火墙设备和安全防护日志的异步处理方法,在发现客户端对防护的Web服务器产生威胁时,生成相应的日志信息并存储至缓存中;提取缓存中的日志信息,并通过socket长连接将所述日志信息存储至数据库中;通过socket长连接发送心跳信息,以检测socket长连接的连接状态;若检测到socket长连接的连接状态出现异常,则重新建立socket长连接,并不断将缓存中的日志信息进行文本存储,直至所述socket长连接重新建立完成。该方案采用异步实现安全防护日志的产生和存储过程,有效提高了处理日志的性能。
【专利附图】

【附图说明】
[0020]图1为本发明提供的web应用防火墙设备一个实施例的结构示意图;
[0021]图2为本发明提供的web应用防火墙设备场景应用不意图。
[0022]图3为本发明提供的安全防护日志的异步处理方法一个实施例的流程图。
【具体实施方式】
[0023]图1为本发明提供的web应用防火墙设备一个实施例的结构示意图。该web应用防火墙设备(以下简称WAF设备)用于Web服务器的安全防护体系中,用于在客户端向Web服务器发送请求内容吋,对相应的Web服务器进行防护,产生和存储相应的安全防护日志(以下简称日志)。图2为该web应用防火墙(WAF)设备具体应用场景示意图;具体包括:客户端21、WAF设备22、Web服务器23和用于存储日志信息的数据库24。如图1所示,该WAF设备具体包括:防护预警模块11、日志产生模块12、日志发送模块13、日志存储模块14和故障处理模块15,其中:
[0024]防护预警模块11,用于检测客户端向Web服务器发送的请求信息,并在请求信息对所述Web服务器产生威胁时,触发日志产生模块12 ;
[0025]当客户端访问WAF设备防护的Web服务器,且发送的请求信息对Web服务器产生安全威胁时,防护预警模块11便会产生告警,同时触发日志产生模块12,以指示日志产生模块12产生相应的日志信息。其中,对Web服务器产生威胁的方式有很多,如请求信息违背了 WAF设备配置的防护Web服务器的安全规则等。本发明中的方案重点为如何遇到威胁时生成该请求信息对应的日志信息,并如何进行保存。针对于检测客户端向Web服务器发送的请求信息的方法不作限定,本领域技术人员可采用现有技术中的任何方法是现该检测过程。
[0026]日志产生模块12,用于生成请求信息对应的日志信息,并将该日志信息存储至缓存中;
[0027]日志产生模块12接收防护预警模块11的触发信息号后,生成上述请求信息对应的日志信息;区别于现有技木,本方案在生成日志信息后并不是直接对该日志信息进行指定位置的存储,而是将该日志信息暂时存储在本地的缓存中,实现对日志信息的生成与存储分开操作的异步处理过程,以便在后续存储过程中増加灵活的处理方法,同时对前面的日志信息生成过程不产生影响。
[0028]日志发送模块13,用于提取缓存中的日志信息,并通过socket长连接将该日志信息发送至日志存储模块14;
[0029]在WAF设备启动运行前,可预先建立ー个socket服务器端,并指定监听的固定端ロ ;本方案中以日志发送模块13作为socket长连接的客户端与socket服务器端监听的固定端ロ,即本方案中的日志存储模块14建立长连接;通过该socket长连接,日志发送模块13将从缓存中提取的日志信息发送至日志存储模块14 ;
[0030]日志存储模块14,用于将接收的日志信息存储至数据库中;
[0031 ]日志存储模块14接收到日志发送模块13发送的日志信息后,将该日志信息存储至本地的数据库中,至此完成了对日志信息的存储过程。
[0032]日志发送模块13,还用于通过上述socket长连接向日志存储模块14发送心跳信息,以检测该socket长连接的连接状态;若检测到该socket长连接的连接状态出现异常,则触发故障处理模块15 ;
[0033]为保证日志发送模块13与日志存储模块14之间建立的socket长连接在整个WAF设备运行期间一直保持连接状态,可由日志发送模块13通过该socket长连接向日志存储模块14发送心跳信息,通过检测发送心跳信息后,日志存储模块14的反应状态(包括是否返回响应包等)来判断该socket长连接的连接状态是否出现异常,如该socket长连接连接中断。当出现该异常状态时,发送模块13触发故障处理模块15以进行相应的故障处理。
[0034]故障处理模块15,用于重新建立socket长连接,并不断将缓存中的日志信息进行文本存储,直至该socket长连接重新建立完成;
[0035]当故障处理模块15接到发送模块13的触发信号后,启动重新建立socket长连接的相关操作流程。在此期间,故障处理模块15会先将缓存中的日志信息以文本的形式写入到如内存中对应的日志类型的文件夹下,避免日志丢失,直到socket长连接建立成功后,恢复通过socket长连接发送日志信息并进行存储的机制,同时结束以日志信息的文本形式进行存储的方式。最后,还可将这部分文本形式的日志信息存储到数据库中,与其他日志信息进行统一管理。
[0036]进ー步的,本实施例中所述的缓存可以是包括多个缓存单元的buffer群。如由4块buffer组成的buffer群,其中姆ー块分别标记为buffer[i],编号i从0至3。姆ー个buffer [i]设置有相应的空标志位(用于标识该buffer块是否为空)和buffer阈值(用于标识buffer块是否已满)。日志产生模块12将日志信息放入buffer群中时,首先从buffer群里查找空的buffer [i],设定为当前buffer并对该buffer块加读写锁,然后往该buffer块中写入日志数据。当写入数据数量达到阈值后,释放读写锁,寻找下一个空的buffer块,重复写入过程。当WAF日志模块中的日志发送模块13监控到buffer群中存在数据,也会先判断buffer[i]是否被加读写锁,如果没有被加读写锁,则执行将数据取出的操作,在该操作过程中也会为该buffer块添加读写锁,以防止出现针对同一 buffer块同时进行数据存储和数据提出的冲突操作。
[0037]进ー步的,日志发送模块13,还用于对日志信息添加信息头数据,该信息头数据包括数据起始标识和数据长度标识;
[0038]日志发送模块13在从缓存中提取日志信息后,可以对该日志信息进行封装、添加信息头,该信息头具体包括该条日志信息的起始标识和数据长度标识;其中起始标识为该条日志信息的开始标识位,数据长度标识为该日志信息的数据长度。
[0039]再进ー步的,日志发送模块13通过上述socket长连接向日志存储模块14发送心跳信息,以检测该socket长连接的连接状态可具体为:
[0040]日志发送模块13通过socket长连接周期性的向日志存储模块发送心跳信息,且每次发送所述心跳信息的同时,启动定时器;
[0041]若在定时器限定时间内未接收到日志存储模块14返回的响应于该心跳信息的应答信息,则确定该socket长连接的连接状态出现异常;
[0042]其中,日志发送模块13通过socket长连接周期性的向日志存储模块发送心跳信息所采用的周期可以是固定时间周期,也可以是符合一定规律的时间间隔,如:时间间隔值:T=8?(time()%4),其中time ()表示当前时间的整型值。(该公式具体含义为:对WAF设备当前的系统时间time ()取整数值,将所得值对自然数4取摸,即可将任意时间值转换为0至3的整数值,然后将固定周期值8按照时间转换的整数值进行右移,以确保本发明所选择的动态周期值为1、2、4、8四个值之一,间隔性循环可以有效避免单一周期验证所帯来的系统负载过高问题和周期选择不当导致发现故障不及时的问题。例如设置验证周期固定为I秒,即每秒就要进行一次验证,系统负载会受影响;设置验证周期固定为8秒,即每8秒进行一次验证,可能会导致8秒之后才能发现socket连接中断。而采用间隔性循环,即降低了系统负载又能及时发现故障问题。 [0043]本发明提供的web应用防火墙设备,在发现客户端对防护的Web服务器产生威胁吋,生成相应的日志信息并存储至缓存中;提取缓存中的日志信息,并通过socket长连接将所述日志信息存储至数据库中;通过socket长连接发送心跳信息,以检测socket长连接的连接状态;若检测到socket长连接的连接状态出现异常,则重新建立socket长连接,并不断将缓存中的日志信息进行文本存储,直至所述socket长连接重新建立完成。该方案采用异步实现安全防护日志的产生和存储过程,有效提高了处理日志的性能。
[0044]图3为本发明提供的安全防护日志的异步处理方法一个实施例的流程图,该方法适用于web应用防火墙设备中。如图3所示,所述方法具体包括:
[0045]S301, web应用防火墙设备中的防护预警模块检测客户端向Web服务器发送的请求信息,并在请求信息对Web服务器产生威胁时,触发web应用防火墙设备中的日志产生模块;
[0046]S302,web应用防火墙设备中的日志产生模块生成请求信息对应的日志信息,并将该日志信息存储至缓存中;[0047]S303, web应用防火墙设备中的日志发送模块提取缓存中的日志信息,并通过socket长连接将日志信息发送至web应用防火墙设备中的日志存储模块;
[0048]S304,日志存储模块将接收的日志信息存储至数据库中;
[0049]S305,日志发送模块通过socket长连接向日志存储模块发送心跳信息,以检测该socket长连接的连接状态;若检测到socket长连接的连接状态出现异常,则触发web应用防火墙设备中的故障处理模块;
[0050]S306,故障处理模块重新建立socket长连接,并不断将缓存中的日志信息进行文本存储,直至socket长连接重新建立完成。
[0051]本实施例的安全防护日志的异步处理方法可采用前述实施例的web应用防火墙设备来执行,故具体流程此处不再赘述。
[0052]进ー步的,本实施例所示安全防护日志的异步处理方法中还包括:
[0053]所述缓存包括多个缓存単元;web应用防火墙设备中的日志产生模块生成请求信息对应的日志信息,井根据多个缓存单元中每个缓存单元的空闲空间,将日志信息存储至对应的缓存单元中;
[0054]进ー步的,本实施例所示安全防护日志的异步处理方法中还包括:
[0055]web应用防火墙设备中的日志发送模块提取缓存中的日志信息,并对该日志信息添加信息头数据,该信息头数据包括数据起始标识和数据长度标识;
[0056]进ー步的,本实施例所示安全防护日志的异步处理方法中还包括:
[0057]日志发送模块通过socket长连接周期性的向日志存储模块发送心跳信息,且每次发送心跳信息的同时,启动定时器;
[0058]若在定时器限定时间内未接收到日志存储模块返回的响应于该心跳信息的应答信息,则确定socket长连接的连接状态出现异常。
[0059]本实施例中的部分方法内容可參见前述实施例中的相应内容,在此对方法的原理不作赘述。
[0060]本发明提供的安全防护日志的异步处理方法,在发现客户端对防护的Web服务器产生威胁时,生成相应的日志信息并存储至缓存中;提取缓存中的日志信息,并通过socket长连接将所述日志信息存储至数据库中;通过socket长连接发送心跳信息,以检测socket长连接的连接状态;若检测到socket长连接的连接状态出现异常,则重新建立socket长连接,并不断将缓存中的日志信息进行文本存储,直至所述socket长连接重新建立完成。该方案采用异步实现安全防护日志的产生和存储过程,有效提高了处理日志的性能。
[0061]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于ー计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0062]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管參照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.ー种web应用防火墙设备,其特征在于,包括:防护预警模块、日志产生模块、日志发送模块、日志存储模块和故障处理模块; 所述防护预警模块,用于检测客户端向Web服务器发送的请求信息,并在所述请求信息对所述Web服务器产生威胁时,触发日志产生模块; 所述日志产生模块,用于生成所述请求信息对应的日志信息,并将所述日志信息存储至缓存中; 所述日志发送模块,用于提取所述缓存中的日志信息,并通过socket长连接将所述日志信息发送至所述日志存储模块; 所述日志存储模块,用于将接收的所述日志信息存储至数据库中; 所述日志发送模块,还用于通过所述socket长连接向所述日志存储模块发送心跳信息,以检测所述socket长连接的连接状态;若检测到所述socket长连接的连接状态出现异常,则触发所述故障处理模块; 所述故障处理模块,用于重新建立socket长连接,并不断将所述缓存中的日志信息进行文本存储,直至所述socket长连接重新建立完成。
2.根据权利要求1所述的web应用防火墙设备,其特征在于,所述缓存包括多个缓存单元,所述日志产生模块将所述日志信息存储至缓存中,包括: 根据所述多个缓存単元中每个所述缓存単元的空闲空间,将所述日志信息存储至对应的所述缓存単元中。
3.根据权利要求1所述的web应用防火墙设备,其特征在干,` 所述日志发送模块,还用于对所述日志信息添加信息头数据,所述信息头数据包括数据起始标识和数据长度标识。
4.根据权利要求1-3任一项所述的web应用防火墙设备,其特征在于,所述日志发送模块还用于: 通过所述socket长连接周期性的向所述日志存储模块发送所述心跳信息,且每次发送所述心跳信息的同时,启动定时器; 若在所述定时器限定时间内未接收到所述日志存储模块返回的响应于所述心跳信息的应答信息,则确定所述socket长连接的连接状态出现异常。
5.ー种安全防护日志的异步处理方法,其特征在于,包括: web应用防火墙设备中的防护预警模块检测客户端向Web服务器发送的请求信息,并在所述请求信息对所述Web服务器产生威胁时,触发所述web应用防火墙设备中的日志产生丰吴块; 所述web应用防火墙设备中的日志产生模块生成所述请求信息对应的日志信息,并将所述日志信息存储至缓存中; 所述web应用防火墙设备中的日志发送模块提取所述缓存中的日志信息,并通过socket长连接将所述日志信息发送至所述web应用防火墙设备中的日志存储模块; 所述日志存储模块将接收的所述日志信息存储至数据库中; 所述日志发送模块通过所述socket长连接向所述日志存储模块发送心跳信息,以检测所述socket长连接的连接状态;若检测到所述socket长连接的连接状态出现异常,则触发所述web应用防火墙设备中的故障处理模块;所述故障处理模块重新建立socket长连接,并不断将所述缓存中的日志信息进行文本存储,直至所述socket长连接重新建立完成。
6.根据权利要求5所述的方法,其特征在于,所述缓存包括多个缓存単元;所述web应用防火墙设备中的日志产生模块生成所述请求信息对应的日志信息,并将所述日志信息存储至缓存中,包括: 根据所述多个缓存単元中每个所述缓存単元的空闲空间,将所述日志信息存储至对应的所述缓存単元中。
7.根据权利要求5所述的方法,其特征在于,所述web应用防火墙设备中的日志发送模块提取所述缓存中的日志信息之后,还包括: 对所述日志信息添加信息头数据,所述信息头数据包括数据起始标识和数据长度标识。
8.根据权利要求5-7任一项所述的方法,其特征在干,所述日志发送模块通过所述socket长连接向所述日志存储模块发送心跳信息,以检测所述socket长连接的连接状态,包括: 所述日志发送模块通过所述socket长连接周期性的向所述日志存储模块发送所述心跳信息,且每次发送所述心跳信息的同时,启动定时器; 若在所述定时器限定时间内未接收到所述日志存储模块返回的响应于所述心跳信息的应答信息,则确定所述socket长连接的连接状态出现异常。
【文档编号】H04L29/06GK103532943SQ201310464335
【公开日】2014年1月22日 申请日期:2013年10月8日 优先权日:2013年10月8日
【发明者】张俊锋 申请人:北京神州绿盟信息安全科技股份有限公司, 北京神州绿盟科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1