周 晗 孙建树
(北京电子科技学院计算机科学与技术系 北京 100070)
网站的安全受到多种因素的影响,常见的如服务器所在的操作系统漏洞、部署的网站文件的漏洞等,都会导致网站安全受到威胁,严重时甚至导致站点瘫痪,导致网站面目全非。对于一个网站,其需要保护的核心便是是网页文件,一个中小规模的网站的相关文件达到数百上千是很正常的,如果通过管理员定期人工比对各文件的一致性也即是否被篡改,从而来进行防护,不但可操作性不强,也不能达到及时有效保护的效果。许多网站管理员,经常抱怨自己的站点即使经常做安全维护,但站点的一些关键文件如index.html、inedx.asp、conn.asp以及js文件被修改,被添加恶意链接。
当前大部分研究论文和产品文档中都会提到以下四种技术:
(1)定时循环扫描技术(即:外挂轮询):使用程序按照用户设定的时间间隔,对网站目录进行定时扫描比对,如发现篡改,就用备份进行恢复。
(2)事件触发技术:使用程序对网站目录进行实时监控,当有对文件的属性,大小等修改时就进行检查是否是非法篡改。
(3)核心内嵌技术(即“数字水印”或“数字指纹”):在用户提交访问网页的请求之后,在服务器正式提交用户请求网页内容之前,对网页进行完整性检查,一般也是通过散列值对比的方式。
(4)文件过滤驱动技术:采用系统底层文件过滤驱动技术,拦截与分析IRP流,此技术多见于Windows操作系统。
我们的研究则没有针对以上任意一种特定技术,而是从业务逻辑的角度对文件保护进行了研究,内容包括监控、恢复以及告警,主要内容如下:
对监控的研究主要关注于两个方面:针对特定操作系统(如Linux和Windows系统)以及与平台无关的方法。
对于Windows操作系统而言,在Windows实现文件监控有三种方法,第一种是“虚拟文件系统驱动”方法,如Windows下的Filemon。第二种方法是“HOOK API”方法,即钩子技术。第三种方法是“消息机制”,从Windows的文件通知消息获取系统的文件操作。
对于 Linux系统而言,像 Linux文件系统安全监控软件Inotify-sync等,可以使用Linux内核提供的Inotify特性,让用户配置监控目录,并且对不同的文件系统操作事件调用不同的事件处理脚本。
针对文件恢复,单从恢复技术而言,像常用的EasyRecovery这类专门的文件恢复软件功能特别强大。
它能恢复丢失的数据以及重建文件系统。主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。可以从被病毒破坏或是已经格式化的硬盘中恢复数据。但是从网站的文件文件还原角度来讲,这类技术还是难以应用到网页文件防篡改系统中来。
对于告警部分,一般是形成日志来记录所造成的篡改以及恢复的情况,以方便管理员查询,可以通过电子邮件,短信收发装置等远程通讯选择性地将结果通知管理员。
综合以上三个模块的独立研究,以及通过搜集各类产品进行功能,价格的和设计原理的比较,通过对国外和国内的产品特点认识。我们实现了本地网页防篡改的核心软件主要有如下三模块:
监测模块——利用计算 MD5散列值来对要保护的文件内容进行实时的操作监测。
恢复模块——通过实时监测模块传入的参数决定对被改变的文件实施相应的恢复功能,恢复可选择实时监控和定期扫描对已被非法修改的文件进行自动恢复和手动指定恢复模式,并将所改变的文件属性及相关参数进行记录。
报警模块——具有告警信息显示,同时形成篡改日志,并将日志形成文件存储,为用户日后查阅提供依据,也通过电子邮件告知管理员。
软件将由使用者自主选择需要保护与监测的网页文件及文件夹,软件自动扫描并对其进行消息摘要,提供文件完整性保护,保证页面被任意改变时可及时发现被篡改痕迹。在散列算法 MD5得出文件摘要后对重要文件进行备份,保存重要文件作为备份以供恢复时使用。软件允许使用者根据自身需要手动调整待扫描目录、文件摘要与备份存储路径,以便对文件进行即时扫描检测。
当文件遭遇删除时,管理者可以根据软件先前对文件的备份进行手动选择恢复,也可以通过软件提供的界面快速恢复;当出现恶意文件时,管理者可以根据提示进行快速删除;当正常文件被篡改内容时,可以根据备份文件的协助进行修改恢复。这一切检测都可以通过软件自行设定检测频率,当异常发生时,会有提示信息及时反馈给管理人员以便其根据实际情况进行处理。
正常更新时,只需要每次进行更新网页内容时同时更新消息摘要即可,这样既保证消息摘要值的不定期动态更新,提高系统的安全性,又使系统的更新没有冗余操作,简单易行。
此外,我们通过研究核心内嵌技术,实现了简单的过滤器,一方面在动态网站的请求发生时,截获用户的请求,对篡改进行实时处理,使被篡改的页面不被用户看到,另一方面也集中对服务端的网站目录进行监控,对发生的改变进行记录。这样做的好处是在测试时,用户永远无法看到被篡改的页面,而对于本地防护而言,用户在浏览器端还是有可能看到被篡改页面的缓存。
随着信息化建设的不断发展和提高,许多部门机构的业务数据都通过门户网站开展业务,个人或小集体通过建站来进行产品宣传推广也往往通过网站的形式来发布信息。因此保护Web应用系统安全变得越来越广泛。在现有网站安全防护的基础上部署网页防篡改系统,采用低成本有效的防篡改系统,不仅可以多一层保障,同时,网页防篡改系统详细的日志信息也为我们日常的安全维护工作提供帮助。一旦发生安全事件,防篡改系统还将为之后的调查取证工作提供有价值的线索和依据。
尽管网页防篡改系统能进一步提高网站的安全,但仍然存在一些缺陷,需要不断的研究实践加以改进。
[1]陈小兵,范渊,孙立伟.Web渗透技术及实战案例解析[M].北京:电子工业出版社,2012.4.
[2]Noah,Inotify,FAM,Gamin[EB/OL].http://www.noah.org/wiki/Inotify,_FAM,_Gamin,2010.4.
[3]孔辉.一种网页防篡改系统的设计[D].北京:北京邮电大学,2011.
[4]王茂昌,黄甜,王普彪,赖培辉.网站安全性研究[J].安阳师范学院学报,2011.
[5]赵 莉,邓 峰.基于核心内嵌技术中安全散列函数的探讨[J].科技信息,2012-12.
[6]胡宏银,姚 峰,何成万.一种基于文件过滤驱动的 W indows文件安全保护方案[J].计算机应用,2009-1.