什么才是真正有效的WEB网页防篡改系统

2008年是WEB应用安全市场高速发展的一年。随着越来越多的企事业单位高度重视WEB应用安全尤其是网站安全,对WEB应用安全产品尤其是网页防篡改产品的需求持续升温,各式各样的网页防篡改产品大量涌现。面对如此众多的网页防篡改产品,如何判定一个产品是否能够真正实现网页防篡改?成为一件令用户感到头疼的事情。

公众浏览到的Web网页可以分成静态网页和动态网页:

— 静态网页是Web服务器上的网页文件(如html文件)直接反馈给公众;

— 动态网页是Web服务器上的脚本文件(如jsp文件)经过执行后,将其执行的结果反馈给公众,脚本通常会读取数据库中的数据,因此最后生成的网页可以认为是脚本文件和数据库内容的综合。

因此从理论上讲,网页防篡改系统所需要保护的网页,按上述描述可以归结于保护文件(无论是静态网页文件还是脚本文件)和保护数据库。

目前主流的网页防篡改产品中,保护文件主要使用两种技术,一种是以核心内嵌为基础的数字水印技术,该技术在文件发布时生成数字水印(单向鉴别散列值),在文件每次被Web服务器访问(含执行)时检查数字水印,并对结果进行相应处理。数字水印技术有着密码学理论基础,使用的HMAC-MD5算法也是RFC标准。这个技术不去猜测和防范文件被篡改的原因和手段,而是在其对外产生作用时进行完整性检查。该技术在安全上非常可靠,也有着广泛的应用基础。

另一种是以事件触发技术,利用操作系统的文件系统或驱动程序接口,在网页文件的被修改时进行合法性检查,对于非法操作进行报警和恢复。事件触发技术具有报警实时化的优点,对一些操作系统上的常规攻击手段有着一定的防护效果。但由于事件触发技术将安全保障建立在“网页不可能被隐秘地篡改”这种假设上,因此也没有对网页流出进行任何检查,在一些情形下(具体情形见下文),公众是有可能访问到被篡改网页的。虽然事件触发方式无法作到每一个网页在访问时都进行实时检测,也无法针对所有的攻击手段和操作系统漏洞起作用,但仍可以作为对核心内嵌检测技术的一种有益补充。

保护数据库主要使用应用防护技术,该技术对每个来自于网络的Web请求进行检查,根据已有的特征库判断是否含有攻击特性(目前主要是注入式攻击),如有攻击特性则立即阻止和报警。目前,应用防护技术不仅被网页防篡改系统广泛采用,它还是其他应用安全产品(如:应用防火墙、漏洞扫描器)的核心技术之一。但是,应用防护技术需要预先搜集和分析黑客攻击Web的手段,有针对性的进行基于特征库或攻击行为的防范,是一种类似于防病毒软件的手段,目前就技术而言,更是一种实践的技术而非一种理论的技术,存在误判和漏判的可能。

因此,一个有效的网页防篡改系统必须达到以下两个方面的要求:

1. 实现对网页文件的完整性检查和保护,并达到100%的防护效果,即被篡改网页不可能被访问到。

2. 实现对已知的来自于Web的数据库攻击手段的防范。

上述两方面要求,都可以通过一些简便的测试方法,进行测试,例如:文件保护可以通过直接修改Web服务器上的文件,再用浏览器访问该文件来测试是否达到了100%可靠的防护效果;数据库保护则可以通过一些黑客工具(NBSI、HDSI等等)对受保护网站进行模拟攻击。