基于文件驱动的水印对比的网页防篡改方法转让专利

申请号 : CN201510204873.9

文献号 : CN104778423B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王琦杨大志刘坤朋

申请人 : 福建六壬网安股份有限公司

摘要 :

本发明涉及一种基于文件驱动的水印对比的网页防篡改方法,包括以下步骤:1、当服务器端安装的驱动程序监听到网页文件被访问时,内核层截获IRP请求;2、判断是否同时满足:发起IRP请求的进程是指定的Web容器进程,且IRP请求的目的是读取文件,且IRP请求读的文件是用户需要保护的文件,同时满足以上三个条件则启动水印对比,并转下一步,只要有一个条件不满足,则正常放行;3、计算网页文件的水印,并将计算出的水印与水印库中备份的水印进行对比;如果水印对比结果为相同,则正常放行IRP请求,否则向用户层请求恢复被篡改的网页文件,并拒绝IRP请求。该方法不仅能有效保护Web网站不被篡改,而且可提高水印对比效率。

权利要求 :

1.一种基于文件驱动的水印对比的网页防篡改方法,其特征在于,包括以下步骤:(1) 当服务器端安装的驱动程序监听到网页文件被访问时,内核层截获IRP请求;

(2) 分析截获的IRP请求,判断是否同时满足:发起所述IRP请求的进程是指定的Web容器进程,且所述IRP请求的目的是读取文件,且所述IRP请求读的文件是用户需要保护的文件,同时满足以上三个条件则启动水印对比,并转下一步,只要有一个条件不满足,则正常放行所述IRP请求;

(3) 计算被访问网页文件的水印,并将计算出的网页文件水印与水印库中备份的水印进行对比;如果水印对比结果为相同,则正常放行所述IRP请求,否则向用户层请求恢复被篡改的网页文件,并拒绝所述IRP请求;

在步骤(3)中,当网页文件被篡改,按如下步骤恢复被篡改的网页文件:A1)内核层程序模块经由内核层与用户层的通信接口,向用户层程序模块发起网页文件恢复请求;

A2)用户层程序模块对网页文件恢复请求进行解析,再封装,然后将网页文件恢复请求经由通信通道发送给同步端程序模块;

A3)同步端程序模块接收到网页文件恢复请求后,执行网页文件同步流程,恢复被篡改的网页文件;其中,网页文件同步流程按如下方法进行:B1)同步端程序模块接收到网页文件恢复请求后,计算相应网页文件的水印,并将相应网页文件加密,然后将加密的网页文件和水印一起发给用户层程序模块;

B2)用户层程序模块接收到加密的网页文件和水印后,进行合法性校验,如果是合法用户,则转下一步,否则拒绝本次通信;

B3)对网页文件进行解密,并进行完整性校验,然后计算水印,并对比水印,如果水印相同,则采用接收到的网页文件覆盖被篡改的网页文件,如果水印不同,则重新向同步端程序模块发送网页文件恢复请求。

2.根据权利要求1所述的基于文件驱动的水印对比的网页防篡改方法,其特征在于,该方法在内核层中以驱动程序实现。

3.根据权利要求1所述的基于文件驱动的水印对比的网页防篡改方法,其特征在于,该方法通过截获Web容器进程的读文件事件来触发水印对比。

说明书 :

基于文件驱动的水印对比的网页防篡改方法

技术领域

[0001] 本发明涉及Web网站安全防护技术领域,特别涉及一种基于文件驱动的水印对比的网页防篡改方法。

背景技术

[0002] 随着互联网的高速发展,网站作为信息的载体已成为各企事业单位发布信息的重要途径,然而越来越多的黑客利用网站的漏洞肆意地对网站上的信息进行非法篡改,导致恶劣的社会影响及严重的经济损失。针对这种网络篡改威胁,许多软件提供商研发出各式各样的网页防篡改系统。
[0003] 目前,静态网页防篡改系统的相关技术有以下三种:
[0004] 1、外挂轮询技术。该技术方案独立工作,与操作系统、Web容器等无关,实现方式是从一台外部机器轮询监测目标网站的网页完整性。主要保护对象为静态网页。外挂轮询技术由于效率低、覆盖检查面小、对目标网站影响大,目前在市场上已很少使用。
[0005] 2、数字水印技术。作为Web服务器的核心内嵌模块在网页被浏览时进行完整性检查。该技术使用Web服务器核心内嵌技术,将水印对比模块作为插件插入到在不同的Web服务器上,通过对被访问文件水印的对比,实现对网页的防护。主要保护对象为静态文件和脚本。该技术主要缺点是:(1)对服务器访问性能和资源占用有一定影响。(2)并未在篡改时立即进行响应。(3)部署时需要增加独立的发布服务器。(4)不能防范通过Web对数据库攻击。(5)软件模块依赖Web容器,需针对不同的Web容器进行开发。
[0006] 3、事件触发技术。通过Hook、驱动或其他操作系统专有接口监测文件系统的变化。主要保护对象为文件。该技术基于驱动在内核开发,能对捕捉到的篡改行为能够进行及时报警及拦截,但也存在一些固有缺陷:(1)基于文件系统的检查,可以有多种已知的方法绕过。(2)实现手段过于依赖于操作系统的特性,部分技术使用未载入文档技术,具有不稳定性和不可升级性。(3)检查时机单一,一旦错过捕捉则没有任何防护手段。(4)不能防范通过Web对数据库攻击。

发明内容

[0007] 本发明的目的在于提供一种基于文件驱动的水印对比的网页防篡改方法,该方法不仅能有效保护Web网站不被篡改,而且可提高水印对比效率。
[0008] 为实现上述目的,本发明的技术方案是:一种基于文件驱动的水印对比的网页防篡改方法,包括以下步骤:
[0009] (1) 当服务器端安装的驱动程序监听到网页文件被访问时,内核层截获IRP请求;
[0010] (2) 分析截获的IRP请求,判断是否同时满足:发起所述IRP请求的进程是指定的Web容器进程,且所述IRP请求的目的是读取文件,且所述IRP请求读的文件是用户需要保护的文件,同时满足以上三个条件则启动水印对比,并转下一步,只要有一个条件不满足,则正常放行所述IRP请求;
[0011] (3) 计算被访问网页文件的水印,并将计算出的网页文件水印与水印库中备份的水印进行对比;如果水印对比结果为相同,则正常放行所述IRP请求,否则向用户层请求恢复被篡改的网页文件,并拒绝所述IRP请求。
[0012] 进一步的,该方法在内核层中以驱动程序实现。
[0013] 进一步的,该方法通过截获Web容器进程的读文件事件来触发水印对比。
[0014] 进一步的,在步骤(3)中,当网页文件被篡改,按如下步骤恢复被篡改的网页文件:
[0015] A1)内核层程序模块经由内核层与用户层的通信接口,向用户层程序模块发起网页文件恢复请求;
[0016] A2)用户层程序模块对网页文件恢复请求进行解析,再封装,然后将网页文件恢复请求经由通信通道发送给同步端程序模块;
[0017] A3)同步端程序模块接收到网页文件恢复请求后,执行网页文件同步流程,恢复被篡改的网页文件。
[0018] 进一步的,在步骤A3中,按如下方法进行网页文件同步流程:
[0019] B1)同步端程序模块接收到网页文件恢复请求后,计算相应网页文件的水印,并将相应网页文件加密,然后将加密的网页文件和水印一起发给用户层程序模块;
[0020] B2)用户层程序模块接收到加密的网页文件和水印后,进行合法性校验,如果是合法用户,则转下一步,否则拒绝本次通信;
[0021] B3)对网页文件进行解密,并进行完整性校验,然后计算水印,并对比水印,如果水印相同,则采用接收到的网页文件覆盖被篡改的网页文件,如果水印不同,则重新向同步端程序模块发送网页文件恢复请求。
[0022] 本发明的有益效果是采用文件驱动方法,捕获web容器进程对文件的读操作,在内核实现水印的快速对比,有效阻止非法篡改的网页的流出,并及时快速对被篡改文件进行恢复,不仅有效保护了Web网站不被篡改,而且提高了水印对比效率,主要体现在:
[0023] 1)内核触发水印对比,避免在web容器中植入插件,降低对外部环境要求;
[0024] 2)水印对比程序运行于内核,效率高于用户层应用程序。
[0025] 3)水印对比模块运行于内核,可对多web容器环境进行防护,减少配置量,降低对系统资源要求。

附图说明

[0026] 图1是本发明实施例的实现流程图。
[0027] 图2是本发明实施例中恢复网页文件的实现流程图。

具体实施方式

[0028] 下面结合附图及具体实施例对本发明作进一步的详细说明。
[0029] 本发明基于文件驱动的水印对比的网页防篡改方法,如图1所示,包括以下步骤:
[0030] (1) 当服务器端安装的驱动程序监听到网页文件被访问时,内核层截获IRP请求。
[0031] (2) 分析截获的IRP请求,判断是否同时满足:发起所述IRP请求的进程是指定的Web容器进程,且所述IRP请求的目的是读取文件,且所述IRP请求读的文件是用户需要保护的文件,同时满足以上三个条件则启动水印对比,并转下一步,只要有一个条件不满足,则正常放行所述IRP请求。
[0032] (3) 计算被访问网页文件的水印,并将计算出的网页文件水印与水印库中备份的水印进行对比;如果水印对比结果为相同,则正常放行所述IRP请求,否则向用户层请求恢复被篡改的网页文件,并拒绝所述IRP请求。如图2所示,当网页文件被篡改,按如下步骤恢复被篡改的网页文件:
[0033] A1)内核层程序模块经由内核层与用户层的通信接口,向用户层程序模块发起网页文件恢复请求;
[0034] A2)用户层程序模块对网页文件恢复请求进行解析,再封装,然后将网页文件恢复请求经由通信通道发送给同步端程序模块;
[0035] A3)同步端程序模块接收到网页文件恢复请求后,执行网页文件同步流程,恢复被篡改的网页文件。具体方法为:
[0036] B1)同步端程序模块接收到网页文件恢复请求后,计算相应网页文件的水印,并将相应网页文件加密,然后将加密的网页文件和水印一起发给用户层程序模块;
[0037] B2)用户层程序模块接收到加密的网页文件和水印后,进行合法性校验,如果是合法用户,则转下一步,否则拒绝本次通信;
[0038] B3)对网页文件进行解密,并进行完整性校验,然后计算水印,并对比水印,如果水印相同,则采用接收到的网页文件覆盖被篡改的网页文件,如果水印不同,则重新向同步端程序模块发送网页文件恢复请求。
[0039] 本发明方法在在内核中以驱动程序实现。
[0040] 本发明方法通过截获Web容器进程的读文件事件来触发水印对比。
[0041] 以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。