APP下载

基于Jetty的网页防篡改技术的设计和实现

2010-09-17罗红飞孟庆生徐中干

网络安全技术与应用 2010年5期
关键词:备份网页解析

罗红飞 孟庆生 徐中干

浙江商业职业技术学院 浙江 310053

0 前言

随着互联网技术的快速发展,Web1.0,2.0,3.0等网站的技术日新月异,吸引着越来越多的网民,政府、企事业单位的办公系统,也从最早的C/S模式演变成了现如今的B/S模式,因此网站在信息发展中起到了重要的作用,已经渗透到了各个角落,根据CNNIC调查报告显示,截至2006年1月,我国的上网用户总数高达1.1亿,国内网站数量达67万,庞大的网民数量和网站群为互联网应用的快速发展奠定了良好的基础。网页的地位也得到了空前的提高,对一个企业,对一个政府机构网页无异于自己的门面。据CNCERT报告,CNCERT/CC2007年监测到中国大陆被篡改网页总数累积达61228个,较2006年(24477个)增加了150%,2008年CNCERT/CC监测到中国大陆被篡改,网页总数累积达53917个,较2007年下降了11.9%,但较2006年增加了120%,即平均每天约有147个网页被篡改,由此网页防篡改在目前的形势下,是迫在眉睫。

1 网页的Web服务器现状分析

我国国内目前运行网页的Web服务器,主要有三大类,第一是基于 Microsoft的 IIS的 Web服务器产品,有IIS5.0,IIS6.0等,第二是符合 Sun公司的 J2EE标准的各类Web服务器,比如WebSphere,WebLogic,Tomcat,GlassFish等,种类比较繁多,第三类则是基于 Apache的 PHP类的Web服务器,由于第一种的Web服务器,只能运行在Windows系列的平台,而且本身Windows操作系统的稳定性、安全性方面有着诸多诟病,所以在政府、企事业单位使用率并不高,第三种PHP类的Web服务器,在支持大型应用,分布式集群式的部署,以及异构系统之间的数据交换等方面,有明显的不足,因此PHP类的Web服务器,目前也仅局限于个人的建站、个人的论坛交流方面。因此,目前在政府、公安、电信、银行等企事业单位,主要运行的Web服务器,还是基于J2EE标准的,以IBM公司的Websphere,Oracle公司的WebLogic为主流,运行的操作系统平台有AIX,HP-Unix,SCO-Unix,Linux,Solaris等,本文利用Apache的Jetty解析库,设计和实现了保护运行在符合J2EE标准的Web服务器下的网页文件,能够实时发现网页的篡改、并能恢复被篡改的页面和并且及时告警通知相关网站管理人员。

2 网页防篡改技术简介

防篡改技术中,最核心的是网页监控技术,即如何及时发现被篡改的网页,目前主要的监控技术有外挂轮询、事件触发、核心内嵌等:

(1)外挂轮询

利用一个网页读取和检测程序,以轮询方式读出要监控的网页,与真实网页相比较,来判断网页内容的完整性,对于被篡改的网页进行报警和恢复,这种技术的缺点不言而喻,如果Web服务器上的网页文件很多,像政府、银行等企事业单位的一些大型门户网站,历年累积下来的文件就有好几个G,加上一些视频、音频、图片等的文件,甚至有几十个G,那么把所有页面轮询读取完毕,是一个很耗时间,也很耗系统资源的工作,而且,在检测间隔的过程中,被篡改的文件,还是可以被用户访问到,因此这种技术目前基本被淘汰。

(2)事件触发

事件触发机制,主要是利用操作系统的文件过滤驱动,由底层操作系统检测到文件被篡改的动作,对网页的合法性进行检查,这种技术,虽然实时、高效,但是研发的成本和风险比较大,对目前各种操作系统的版本都需要进行相应的研发、测试,比如 AIX,HP-Unix,Solaris等各种版本,甚至有些32位,64位的,有些系统还有RAID的存储等,复杂性可想而知,一不小心,就会出现整个操作系统崩溃,死机,造成的损失和后果可能是致命的。

(3)核心内嵌

将篡改检测模块内嵌在Web服务器软件里,它在每一个网页流出时都进行完整性检查,对于篡改网页进行实时访问阻断,并予以报警和恢复,根据Web服务器的类型,有相应的内嵌技术,如ISAPI,Apache-Module,Java的filter等,运行符合J2EE标准的服务器的Web内嵌技术,就是采用Java的filter技术,这种检测技术,完全与Web服务的运行进程融合,处理效率高,稳定性和兼容性强,而且与操作系统及硬件无关,全面控制Web系统软件和服务。

运行在符合J2EE标准的Web服务器上的网页程序,都是采用Java技术开发的,Java由于其良好的面向对象的特性,以及强大的开源力量的支持,在开发B/S架构的系统中,变得灵活、高效、快速,各种基于开源组件的开发技术,例如Struts,Spring,Velocity,Hibernate,Ibatis等,使得系统的可扩展性、兼容性和易用性方面有了很大的提高,但是同时,也带来了网页防篡改的核心内嵌技术中,Java的filter的内嵌解析URL的复杂性,例如,用户在浏览网页的时候,输入了这样一个URL地址,http://192.168.1.110/test/show_page.action,核心内嵌程序能够捕获到这样一个 URL地址串,但是把它解析成Web服务器上具体的物理文件的地址(比如实际访问的是test.jsp这个物理文件),变得困难,因此,本系统采用Jetty的解析库,让Jetty去解析J2EE的应用,从而把URL映射成实际的物理文件。Jetty是一个开源的servlet容器,它为基于Java的Web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的 Java应用提供网络和Web连接。使用Jetty解析的最大好处是,符合J2EE应用规范、小巧、快速。

3 系统设计

3.1 系统功能组成

整个系统主要分为备份监控管理中心、Web内嵌模块、Web监控代理组成,如图1所示。

图1 系统架构图

(1)备份监控管理中心

管理中心的服务器是放在内网,是可信任的,它提供Web服务器上网页文件的原始备份,用于网页文件被篡改后的恢复,同时也提供管理员的使用界面,使用功能包括:手工上传文件、查看告警、监控防篡改系统的运行情况、修改各种配置、查看和处理各种日志等。

(2)Web内嵌模块

对每个发送的网页进行 URL的捕获,并且把捕获到的URL发送给Web监控代理,接收Web监控代理传过来的状态值,来决定网页的显示或阻断,并依照一定的策略进行网站的关闭或者软件型的ByPass功能,确保在各种异常的情况下(比如Web监控代理被误操作关闭),网站能够正常访问。

(3)Web监控代理

对于每个Web内嵌模块的URL,通过Jetty解析模块,解析成物理文件,并且和自己本身的安全水印库进行对比,如果网页正常,则通知Web内嵌模块正常显示,如果网页被篡改,则通知 Web内嵌模块对页面进行阻断,同时,Web监控代理及时从备份监控管理中心取得该文件的原始备份。系统的整个流程,简要地描述了网页防篡改的实现原理和工作流程,如图2所示。

图2 系统流程图

3.2 系统技术要点

(1)Hash函数

目前文件的完整性检查,主要利用 Hash函数,生成文件的水印值,然后进行比对,MD5算法是普遍采用的方法,但是MD5算法在面对大文件的时候,比如视频、音频文件,计算水印值比较耗时间,因此,本系统改进了 Hash函数,采用基于策略的水印生成算法,该策略通过判断文件的后缀名、文件的大小来决定是否需要对全部的,还是部分的文件运用Hash函数的算法,例如,对超过100M的视频文件,则我们只需要利用二进制流,读取文件的前 1024个字节进行比对,因为视频文件本身有严格的文件头格式和视频数据流格式,要想只通过更改里面的二进制数据,把视频文件里面的内容完全更改成另外一个内容,一般是不太可能,因此,这种技术兼顾了性能和安全性,达到一种良性的平衡。

(2)Jetty解析技术

我们需要修改Jetty源代码,通过在WebAppContenxt里面,添加我们自定义的Handler,实现把URL的地址解析成实际的物理文件的路径,同时也对Jetty解析库的一些功能模块进行了裁剪,把不需要的功能模块尽可能地精简,降低系统整体的资源占用。

(3)自定义的安全传输协议

备份网页的安全传输,以及本身各个模块之间的安全通信是系统安全的一个重要环节,本系统结合了高安全强度的工业标准的SSL协议,并对FTP协议进行了扩展,保证了信息在传输过程中完整性和私密性,用先进的密码技术防止来自内部和外部的篡改和偷窃,同时也保证了系统的稳定性和良好的兼容性。

4 结束语

本系统采用的基于Jetty的网页防篡改技术,针对目前主流的符合J2EE标准的Web应用服务器上的网页文件,通过对网页流出文件的实时监测,及时地进行文件完整性检查,并能够对文件的异常变化进行修复、还原和告警,可以广泛应用于政府、银行、运营商等企事业单位的门户网站、电子政府系统等。

[1]姚莹,陆建新.网站文件保护系统的研究与实现.计算机工程与设计.2007.

[2]CNCERT/CC.中国互联网网络安全报告(2008年上半年).[R].北京:国家计算机网络应急技术处理协调中心.2009.

[3]CNCERT/CC.2007年网络安全工作报告[R].北京:国家计算机网络应急技术处理协调中心.2008.

[4]http://www.mortbay.org/jetty/.开源Jetty主页.

猜你喜欢

备份网页解析
“备份”25年:邓清明圆梦
VSAT卫星通信备份技术研究
三角函数解析式中ω的几种求法
基于HTML5与CSS3的网页设计技术研究
创建vSphere 备份任务
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
睡梦解析仪
电竞初解析
基于URL和网页类型的网页信息采集研究