厦门黄阿玛网络科技有限公司欢迎您!
  1. 首页
  2. 新闻中心
  3. 网络安全资讯
  4. 内容

网页防篡改技术原理

作者:safewos 日期:2020-04-22 人气:1694

  网站在信息发展中起到了重要的作用,已经渗透到了当今社会的各个角落。虽然目前已有防火墙、入侵检测等安全防范手段,但黑客入侵和篡改页面的事件时有发生。随之,网页防篡改系统应运而生这里就为大家详细介绍一下网页防篡改技术原理。

网页防篡改技术原理

  一、网页防篡改系统组成

  网页防篡改系统由三个相互独立的子系统构成,分别是监控端(Monitor)、发布端(Publisher)和管理平台(Manager)。

  监控端(Monitor)部署安装在网站服务器上,用于监控网站文件是否被篡改,该监控程序会阻止对所保护文件的任意篡改行为。当有恶意行为发生时,及时向管理平台上报告警事件;

  发布端(Publisher)部署在网站的发布服务器上,当发布端网站内容更新维护时,依据发布策略,向指定的网站服务器进行自动的文件同步和更新;

  管理平台(Manager)是可通过浏览器访问的web应用,为用户提供方便、快捷的操作界面,主要功能用于管理网站和服务器、向服务器下发策略、展示告警件。

  二、网页防篡改技术的发展历程

  (1) (起始点)人工对比检测

  人工对比检测,其实就是一种专门指派网络管理人员,人工监控需要保护的网站,一旦发现被篡改,然后以人力对其修改还原的手段。

  严格的说来,人工对比检测不能算是一种网页防篡改系统采用的技术,而只能算是一种原始的应对网页被篡改的手段。但是其在网页防篡改的技术发展历程中存在一段相当的时间,所以在这里我们把它作为网页防篡改技术发展的起始点。

  这种手段非常原始且效果不佳,且不说人力成本较高,其最致命的缺陷在于人力监控不能达到即时性,也就是不能在第一时间发现网页被篡改也不能在第一时间做出还原,当管理人员发现网页被篡改再做还原时,被篡改的网页已在互联网存在了一段时间,可能已经被一定数量的网民浏览。

  (2) (第一代)时间轮巡技术

  时间轮巡技术(也可称为“外挂轮巡技术”)。在这里将其称为网页防篡改技术的第一代。从这一代开始,网页防篡技术已经摆脱了以人力检测恢复为主体的原始手段而作为一种自动化的技术形式出现。

  时间轮询技术是利用一个网页检测程序,以轮询方式读出要监控的网页,与真实网页相比较,来判断网页内容的完整性,对于被篡改的网页进行报警和恢复。但是,采用时间轮询式的网页防篡改系统,对每个网页来说,轮询扫描存在着时间间隔,一般为数十分钟,在这数十分钟的间隔中,黑客可以攻击系统并使访问者访问到被篡改的网页。此类应用在过去网页访问量较少,具体网页应用较少的情况下适用,目前网站页面通常少则上百页,检测轮巡时间更长,且占用系统资源较大,该技术逐渐被淘汰。

  (3) (第二代)事件触发技术&核心内迁嵌技术

  在这里将事件触发技术与核心内嵌技术两种技术放在同一代来说,因为这两种网页防篡改技术出现的时间差距不大,而且两种技术常常被结合使用。所谓核心内嵌技术即密码水印技术,最初先将网页内容采取非对称加密存放,在外来访问请求时将经过加密验证过的,进行解密对外发布,若未经过验证,则拒绝对外发布,调用备份网站文件进行验证解密后对外发布。此种技术通常要结合事件触发机制对文件的部分属性进行对比,如大小,页面生成时间等做判断,无法更准确的进行其它属性的判断。其最大的特点就是安全性相对外挂轮巡技术安全性大大提高,但不足是加密计算会占用大量服务器资源,系统反映较慢。

  核心内嵌技术就避免了时间轮巡技术的轮巡间隔这个缺点,但是由于这种技术是对每个流出网页都进行完整检查,占用巨大的系统资源,给服务器造成较大负载。且对网页正常发布流程作了更改,整个网站需要重新架构,增加新的发布服务器替代原先的服务器。随着技术发展以及网上各类应用的增多,对服务器的负载资源简直可以用“苛刻”来形容,任何占用服务器资源的部分都要淘汰,来确保网站的高访问效率,如此一来,内嵌技术(即密码技术)最终将被淘汰。

  (4) (第三代)文件过滤驱动技术+事件触发技术

  文件过滤驱动技术的最初应用于军方和保密系统,作为文件保护技术和各类审计技术,甚至被一些狡猾好事者应用于“流氓软件”,该技术可以说是让人喜忧参半。在网页防篡改技术革新当中,该技术找到了其发展的空间。与事件触发技术结合,形成了今天的第三代网页防篡改保护技术。其原理是:将篡改监测的核心程序通过微软文件底层驱动技术应用到Web服务器中,通过事件触发方式进行自动监测,对文件夹的所有文件内容,对照其底层文件属性,经过内置散列快速算法,实时进行监测,若发现属性变更,通过非协议方式、纯文件安全拷贝方式将备份路径文件夹内容拷贝到监测文件夹相应文件位置,通过底层文件驱动技术,整个文件复制过程为毫秒级,使得公众无法看到被篡改页面,其运行性能和检测实时性都达到最高的水准。

  页面防篡改模块采用Web服务器底层文件过滤驱动级保护技术,与操作系统紧密结合,所监测的文件类型不限,可以是一个html文件也可以是一段动态代码,执行准确率高。这样做不仅完全杜绝了轮询扫描式页面防篡改软件的扫描间隔中被篡改内容被用户访问的可能,其所消耗的内存和CPU占用率也远远低于文件轮询扫描式或核心内嵌式的同类软件。可以说是一种简单、高效、安全性又极高的一种防篡改技术。

  三、网页防篡改技术原理

  定时循环扫描技术

  这是早期使用的技术,比较落后,已经被淘汰了,原因是:现在的网站少则几千个文件,大则几万,几十万个文件,如果采用定时循环扫描,从头扫到尾,不仅需要耗费大量的时间,还会大大影响服务器性能。

  在扫描的间隙或者扫描过程中,如果有文件被二次篡改,那么在下次循环扫描到该文件之前,文件就一直是被篡改的,公众访问到的也将是被篡改的网页,这是一段“盲区”,“盲区”的时长由网站文件数量、磁盘性能、CPU性能等众多客观因素来决定。

  该技术由于过于简单,其安全隐患相信读者看完上面的说明就能完全领会明白,故而在此不给出POC程序。

  事件触发技术

  这是目前主流的防篡改技术之一,该技术以稳定、可靠、占用资源极少著称,其原理是监控网站目录,如果目录中有篡改发生,监控程序就能得到系统通知事件,随后程序根据相关规则判定是否是非法篡改,如果是非法篡改就立即给予恢复。

  可以看出,该技术是典型的“后发制人”,即非法篡改已经发生后才可进行恢复,其安全隐患有三:

  其一,如果黑客采取“连续篡改”的攻击方式,则很有可能永远也无法恢复,公众看到的一直是被篡改的网页。因为:篡改发生后,防篡改程序才尝试进行恢复,这有一个系统延迟的时间间隔,而“连续篡改”攻击则是对一个文件进行每秒上千次的篡改,如此一来,“后发制人”的方式永远也赶不上“连续篡改”的速度。

  这里给出一个POC程序,该程序只对c:\test.txt 文件进行“连续篡改”攻击(每秒篡改10次),读者可以下载此程序进行测试。

  其二,如果文件被非法篡改后,立即被恶意劫持,则防篡改进程将无法对该文件进行恢复。

  这里给出一个POC程序,该程序只对c:\test.txt 文件进行篡改后劫持攻击,运行后, c:\test.txt 文件的内容将被篡改,同时该文件的内容将无法恢复,读者可以下载此程序进行测试。

  其三,目录监控的安全性受制于防篡改监控进程的安全性,如果监控进程被强行终止,则防篡改功能就立刻消失,网站目录就又面临被篡改的危险。

  有关强行终止进程的方式,在Windows系统中,自带的就有任务管理器、taskkill.exe 命令,tskill.exe 命令,ntsd.exe 命令,这四种方式几乎可以结束任何进程,这里举例用 ntsd.exe 终止在任务管理器中无法终止的winlogon.exe进程,注意,对NT5.x系统结束该进程后系统将立即蓝屏崩溃,请读者勿在真实主机中测试:

  Ntsd.exe –c q –pn winlogon.exe

  关于强行终止进程,还有很多更加强大的方式,读者可以搜索相关资料,这里不再赘述。

  核心内嵌(数字水印)技术

  这也是目前的主流技术之一,该技术以无进程、篡改网页无法流出、使用密码学算法作支撑而著称,其原理是:对每一个流出的网页进行数字水印(也就是HASH散列)检查,如果发现当前水印和之前记录的水印不同,则可断定该文件被篡改,并且阻止其继续流出,并传唤恢复程序进行恢复。

  是:即使黑客该技术的特点通过各种各样未知的手段篡改了网页文件,被篡改的网页文件也无法流出被公众访问到。

  该技术的安全隐患有三:

  其一:市面上“数字水印”的密码学算法,无一例外地使用 MD5(Message-Digest algorithm 5) 散列算法,该散列算法由于网上到处都有现成的代码可以直接拷贝,而且在计算100KB以内的小文件时速度可以忍受,因而之前在密码存储和文件完整性校验方面广为运用。不过,在2004年我国密码学家山东大学的王小云教授攻破了包括这一算法在内的多种密码学算法,使得伪造出具有相同数字水印而内容截然不同的文件立刻成为了现实,她的研究成果在国际密码学界引发了强烈“地震”。

  文件过滤驱动技术

  这是新兴的一种防篡改技术,其原理是采用操作系统底层文件过滤驱动技术,拦截与分析IRP流,对所有受保护的网站目录的写操作都立即截断,与“事件触发技术”的“后发制人”相反,该技术是典型的“先发制人”,在篡改写入文件之前就阻止。

  其一:基于实际应用中各种复杂环境与因素的考虑,操作系统的设计者在系统内核底层设计了多种可以读写文件的方式,相关数据流不单单是走文件过滤驱动这一条线。网络上大家常用的各种“文件粉碎机”强制删除顽固文件就是基于相关原理的。

  其二:文件路径表示除了正常的方式之外,还可以用DOS8.3文件路径表示法,当文件名的长度超过8个字符时,就可以用DOS8.3路径表示,这里举例说明:

  假设D盘下有一个文件 123456789.txt,那么该文件的全路径可以表示为:D:\123456789.txt,或者用DOS8.3的格式表示为:D:\1234567~1.txt。也就是说,如果一个攻击者要篡改D:\123456789.txt,那么他输入路径D:\1234567~1.txt也一样可以访问文件并进行篡改。因此网页防篡改系统必须要能抵御DOS8.3文件路径方式的攻击。根据我们实际市场检测,绝大部分使用文件过滤驱动技术的网页防篡改产品没能抵挡住此类攻击。

  其三:如果操作系统存在默认共享,文件路径表示除了上述方法之外,还可以用网络路径表示法,并且任意文件、任意文件名长度的都适用,这里举例说明:

  假设D盘下有一个文件 index.html,那么该文件的全路径可以表示为:D:\index.html,或者用网络路径格式表示为:\\127.0.0.1\D$\index.html。也就是说,如果一个攻击者要篡改D:\index.html,那么他输入路径\\127.0.0.1\D$\index.html也一样可以访问文件并进行篡改。因此网页防篡改系统必须要能抵御网络路径路径方式的攻击。根据我们实际市场检测,同样是绝大部分使用文件过滤驱动技术的网页防篡改产品没能抵挡住此类攻击。

  操作系统内核底层好比深海,暗流颇多,如果对它没有深入、细致、广泛的理解与分析而去编写一个文件过滤驱动,那这个文件过滤驱动就好比是“马奇诺防线”,而当文件过滤驱动被绕过后,其防篡改功能也同样荡然无存了。

  四、网页防篡改系统部署

  第一步:部署监控代理,分别将监控代理部署在中心机房每台需要保护的服务器上面;

  第二步:部署同步代理,将同步代理部署在两台或者多台冗余部署的发布服务器上面,保持各个冗余发布服务器与中心机房网站服务器之间的网络通讯正常;

  第三步:部署管理中心,将管理中心部署在发布服务器或者办公区任意一台与发布服务器正常通讯的机器上面。


你觉得这篇文章怎么样?

00