如果上面的数据,表达不了网站被攻击的严重性,那么,CNCERT/CC的2008年7月份的统计报告很说明问题,大约平均每5个政府网站,就有一个网站被黑。
而且,近年来,网站被篡改的数目仍然以每年2~3倍的速度在不断递增。
根据这些材料可以知道,网站被篡改、被攻击的数量是非常大的,并且递增的数目也是比较快的。
许多的企业,虽然都有防火墙,网站服务器也放在自己的内网(通过防火墙发布到Internet),但由于众多的原因,仍然避免不了网页被篡改的命运;而托管到电信或联通机房的服务器,由于不可能单独为其配置硬件的防火墙,命运可想而知。
1.2.1问题分析与成因总结
网站被入侵,或者网页被替换,主要是由于以下几点造成的。
操作系统漏洞:
存放网站空间主机的操作系统漏洞,会被黑客入侵。
Web服务器漏洞:
存储网站所使用的Web服务器漏洞会被黑客利用、控制或修改该Web服务器上的所有网站。
数据库漏洞:
一些网站需要使用SQLServer或其他数据库,当数据库系统存在漏洞时,会被黑客利用,通过数据库系统漏洞控制主机,或者直接通过漏洞修改网页。
网站代码漏洞:
许多网站代码,是从互联网上下载的,或者是在网上下载的代码的基础上修改而来的。
源代码中的一些漏洞会给黑客可乘之机。
弱口令:
操作系统的管理员密码、网站后台管理密码设置得过于简单,黑客会利用专用的工具“算”出这些密码,一一尝试,直到获得密码。
后台程序:
当主机感染了一些病毒、木马或蠕虫后,或者感染一些其他后台程序后,会被黑客远程控制。
跨站攻击:
在托管的Web服务器中,任意一个网站被黑客成功入侵后,黑客继而获得Web服务器或主机的所有权,会继续对该服务器上的所有网站进行入侵。
对于操作系统漏洞、Web服务器漏洞、数据库漏洞等,可以通过打补丁的方式解决;对于弱口令,可以通过设置复杂密码并且通过定期更改的方式解决;对于后台程序,可以在开始的时候,不要在Web服务器上上网、运行不可靠的程序,这样可以避免在不经意间感染这些程序;而对于网站代码漏洞,理论上可以责成开发网站的人员,检查每行代码,不让代码出问题,但实际上这几乎是不可能的。
另外,即使现在都解决了上述问题,但新的漏洞、新的攻击方法不断出现,现在不受攻击、不被攻破不表示将来不被攻击、不能攻破。
1.2.2(起始点)人工对比检测
人工对比检测,其实就是一种专门指派网络管理人员,人工监控需要保护的网站,一旦发现被篡改,就以人力对其修复还原的手段。
严格的说来,人工对比检测不能算是一种网页防篡改系统采用的技术,而只能算是一种原始的应对网页被篡改的手段。
但是其在网页防篡改的技术发展历程中存在一段相当长的时间;所以在这里我们把它作为网页防篡改技术发展的起始点,单独拿出来讲。
这种手段非常原始且效果不佳,且不说人力成本较高,其最致命的缺陷在于人力监控不能达到即时性,也就是不能在第一时间发现网页被篡改也不能在第一时间进行还原,当管理人员发现网页被篡改再做还原时,被篡改的网页已在互联网存在了一段时间,可能已经被一定数量的网民浏览。
为了达到实用性,必须采用计算量小、开销不大、简单的方式实现快速地找到文件被篡改的痕迹。
1.2.3(第一代)时间轮巡技术
时间轮询技术(也可称为“外挂轮询技术”)。
我们在这里将其称为网页防篡改技术的第一代。
从这一代开始,网页防篡技术已经摆脱了以人力检测恢复为主体的原始手段而作为一种自动化的技术形式出现。
时间轮询技术是利用一个网页检测程序,以轮询方式读出要监控的网页,与真实网页相比较,来判断网页内容的完整性,对于被篡改的网页进行报警和恢复。
但是,采用时间轮询式的网页防篡改系统,对每个网页来说,轮询扫描存在着时间间隔,一般为数十分钟,在这数十分钟的间隔中,黑客可以攻击系统并使访问者访问到被篡改的网页。
此类技术应用在过去网页访问量较少,具体网页应用较少的情况下适用,目前网站页面通常少则上百页,检测轮询时间更长,且占用系统资源较大,该技术逐渐被淘汰。
1.2.4(第二代)事件触发技术&核心内迁嵌技术
我们将事件触发技术与核心内嵌技术两种技术放在同一代来说,因为这两种网页防篡改技术出现的时间差距不大,而且两种技术常常被结合使用。
所谓核心内嵌技术即密码水印技术,最初先将网页内容采取非对称加密存放,在外来访问请求时将经过加密验证过的,进行解密对外发布,若未经过验证,则拒绝对外发布,调用备份网站文件进行验证解密后对外发布。
此种技术通常要结合事件触发机制对文件的部分属性进行对比,如大小,页面生成时间等做判断,无法更准确的进行其它属性的判断。
其最大的特点就是安全性相对外挂轮询技术安全性大大提高,但不足是加密计算会占用大量服务器资源,系统反映较慢。
(1)利用文件的长度属性和时间属性
对于存档文件来说,在文件修改过程中可能发生变化的一些属性成为研究的对象。
因为这些属性的信息量小而且有固定的大小,并且能够反映文件的变化。
如文件的长度(大小)属性:
当修改了这个文件(比如增加或删减了若干字符),就当然有可能修改了这个文件的长度。
图7可以看出windows操作系统下的一记事本文件的长度属性。
图1-1文件的长度属性和文件属性
操作系统下任意一个存档文件同样也都具有修改时间、创建时间等属性,当修改了这个文件,其最后一次修改时间也就发生了相应变化,如图1-1所示。
(2)利用文件的冗余校验值属性
循环校验码(CyclicRedundancyCheck,CRC),是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。
它是一种高度压缩的信息校验方式,将一个超过数兆乃至上G的文件生成一个数个字节的CRC校验值。
当文件在传输过程中出错时,CRC校验码将发生变化。
此方法经常用在压缩文件之中。
图1-2是WinRar压缩文件中查看CRC32码,每个文件都有一个CRC32的校验码,压缩后的CRC校验码是32bit,也就是4个字节的信息量。
在WinRar中使用到CRC32验证时,计算每个解压后文件的CRC32的4个字节值,然后和压缩文档附带的CRC32对比,发现差异则解压终止。
在解压过程中一个bit的差异将导致CRC32的校验失败,这个方式可以非常有效的解决文件传输过程的误码差错。
CRC32是一个32bit的校验码,不管原始的文件是多大最后生成的都是32bit的校验码。
此校验码具有固定字节大小,可作为文件的防篡改检测。
CRC验证从性能上和开销上考虑,均远远优于奇偶校验及算术校验等方式。
在数据存储和数据通一讯领域,CRC无处不在:
著名的通讯协议X.25的FCS采用的是CRC-CCITT;WinRar,ARJ等压缩工具软件采用的是CRC32,生成的是32bit的CRC码;磁盘驱动器的读写采用了CRC16;通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。
图1-2winrar文件属性
(3)利用文件的信息摘要值属性
基于加密基础的数字摘要技术在电子商务应用中发挥着重大的作用。
文件的信息摘要作为篡改检测也是一种有效的方式。
常见的网络上下载文件提供的校验码其实就是一种压缩的数字摘要。
传输过程或者存储过程的修改都会导致其校验码发生变化。
常见的有MD5和SHA1。
MD5是RSA数据安全公司开发的一种单向散列算法,MD5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128位的数值。
SHA1是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值。
MAC(MessageAuthenticationCode,消息认证代码),是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。
HMAC(用于消息认证的密钥散列法)就是这种函数的一个例子。
核心内嵌技术避免了时间轮询技术的轮询间隔这个缺点。
但是由于这种技术是对每个流出网页都进行完整检查,占用巨大的系统资源,给服务器造成较大负载。
且对网页正常发布流程作了更改,整个网站需要重新架构,增加新的发布服务器替代原先的服务器。
1.2.5(第三代)文件过滤驱动技术+事件触发技术
文件过滤驱动技术最初应用于军方和保密系统,作为文件保护技术和各类审计技术,甚至被一些狡猾好事者应用于“流氓软件”,该技术可以说是让人喜忧参半。
在网页防篡改技术革新当中,该技术找到了其发展的空间。
与事件触发技术结合,形成了今天的第三代网页防篡改保护技术[25,26]。
其原理是:
将篡改监测的核心程序通过微软文件底层驱动技术应用到Web服务器中,通过事件触发方式进行自动监测,对文件夹的所有文件内容,对照其底层文件属性,经过内置散列快速算法,实时进行监测,若发现属性变更,通过非协议方式,纯文件安全拷贝方式将备份路径文件夹内容拷贝到监测文件夹相应文件位置,通过底层文件驱动技术,整个文件复制过程毫秒级,使得公众无法看到被篡改页面,其运行性能和检测实时性都达到最高的水准。
页面防篡改模块采用Web服务器底层文件过滤驱动级保护技术,与操作系统紧密结合,所监测的文件类型不限,可以是一个html文件也可以是一段动态代码,执行准确率高。
这样做不仅完全杜绝了轮询扫描式页面防篡改软件的扫描间隔中被篡改内容被用户访问的可能,其所消耗的内存和CPU占用率也远远低于文件轮询扫描式或核心内嵌式的同类软件。
可以说是一种简单、高效、安全性又极高的一种防篡改技术。
通过对上面这几代技术的比较,我们发现这几代技术都是沿袭事后恢复的思想,即在网页被篡改后依靠这些防篡改技术的检测机制查询出被篡改的网页,然后将被篡改的网页用我们备份的网页进行替换。
这些技术虽然也能够防止网页被篡改,但是缺少对网页内容的主动防护,主动防护中很重要的一个方面就是对数据库的保护。
但是目前对数据库的保护还缺乏有效的手段。
1.2.6防篡改技术比较和分析
首先对以上技术用表格的形式做一个总结。
如表1-1。
表1-1三种防篡改技术比较
外挂轮训技术
事件触发技术
核心内嵌技术
访问篡改网页
可能
可能
不能
保护动态内容
不能
不能
能
服务器负载
中
低
低
带宽占用
中
无
无
检测时间
分钟级
秒级
实时
绕过监测机制
不能
可能
不能
防范连续篡改攻击
不能
不能
能
保护所有网页
不能
能
能
动态网页脚本
不支持
支持
支持
适用操作系统
所有
受限
所有
上传时检测
不能
不能
能
断线时保护
不能
不能
能
目前网页防篡改软件方面的主要成果主要是市场上的以下6个产品:
(1)InforGuard—中创软件商用中间件股份有限公司。
采用事件触发、核心内嵌、服务器联动、以及实时阻断四重安全保护机制,同时结合数字证书技术与安全传输技术,支持很多种操作系统和Web服务器。
(2)IGuard—上海天存信息技术有限公司。
采用web服务器核心内嵌技术,将篡改检测模块和应用防护模块内嵌于web服务器系统内部,并辅助以增强型事件触发检测技术,不仅实现了对静态网页和脚本的实时检测和恢复,更可以保护数据库中的动态内容免受来自于web的sql注入式攻击和篡改。
支持很多种操作系统和web服务器。
(3)鹰眼主页防篡改—广州三零盛安信息安全有限公司。
结合实时触发和比较扫描两种技术的优点,采用贴近操作系统内核方式的控制技术。
(4)亿赛通网页防篡改系统—北京亿赛通科技发展有限责任公司,保护网站的页面不被篡改,也解决了HP访问者的身份认证及追踪的困难。
有Windows、Unix和Solaris等多种平台的版本。
(5)网页防篡改系统—上海基网电脑技术有限公司。
使用“网站监控功能”、“网站发布功能”、“内容过滤功能”及数字水印技术,保护网站不被篡改。
(6)LeaGuard网页防篡改与自动恢复系统—深圳市联软科技有限公司。
实现了阻止非法篡改网页、自动恢复被篡改的网页、非法网页内容屏蔽、实时报警“3+1”多重保护。
由于企业网站的规模扩大、数量的增加,涉及的信息增多,网络攻击的日愈频繁,具备综合安全防范能力的网负防篡改软件的研究网页放篡改系统的发展趋势主要有4点:
(1)高的运行性能,低的系统消耗。
(2)高易用性,高扩展性。
(3)整合网站发布管理系统,给企业网站发布维护防篡改过程提供全局的综合的管理操作。
(4)支持复杂的网站系统,同时保护网站的数量较大。
1.2.7篡改后恢复的实现
检测到文件被篡改,这是关键的一个步骤,剩下的就是如何完成恢复的任务。
因为Web空间使用的是虚拟目录,Web访问的目录与操作系统下的普通目录有很大的差别,Web用户是不能访问这些普通目录的,访问和修改的权限被限制在虚拟目录下。
当系统检测到文件被修改后,立即执行文件恢复操作,以免激发嵌入网页的恶意病毒或者木马。
可以将恢复文件的代码嵌入Web服务器,如ASP的服务器工IS(InternetInformationServicesIIS,互联网信息服务),让每个网页解释执行的时候都必须要进行相应的摘要信息验证,不符则拒绝执行。
当然更简单的方法是在网页的头部置入自检代码(完成自身MD5码的计算并与原始数据比对),本文所采用的正是此方法。
从安全区域也就是操作系统目录下Web用户不可直接访问的位置将未受篡改的文件拷贝,用来覆盖被篡改过的文件,这个过程相对简单,需要相应的读写操作权限,然后使用操作系统的文件复制功能将文件进行覆盖即可完成。
1.2.8虚拟化解决方案
对于使用自己的机房、自己的服务器存放网站的企业来说,虽然也有防火墙产品,但这些传统的硬件防火墙工作在网络层,而现在的一些病毒、黑客入侵,其行为主要工作在应用层,传统的硬件防火墙不能解决这些问题。
对于托管到电信、联通机房的服务器,因为只有一台计算机,所以,需要借助于“虚拟机”技术,在主机上安装VMwareServer,然后在VMwareServer中安装虚拟机。
网络拓扑