深入探索网页防篡改技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深入解析网页防篡改技术

“深空®网页防篡改系统”研发团队

目前,网页防篡改产品(后面简称“防篡改产品”)市场如火如荼,产品质量良莠不齐,品牌多而繁杂,让人看了不知所措.本文着重从技术角度分析各种类型的网页防篡改技术(后面简称“防篡改技术”),给广大管理员作为参考.

首先,归纳列举下目前市面上的防篡改产品使用的技术:

1.定时循环扫描技术(即“外挂轮询”):使用程序按用户设定的间隔,

对网站目录进行定时扫描比对,如果发现篡改,就用备份进行恢复。

2.事件触发技术:使用程序对网站目录进行实时监控,稍有“风吹草动”

就进行检查是否是非法篡改。

3.核心内嵌技术(即“数字水印”或“数字指纹”):在用户请求访问

网页之后,在系统正式提交网页内容给用户之前,对网页进行完整性

检查。

4.文件过滤驱动技术:采用系统底层文件过滤驱动技术,拦截与分析IRP

流。

现在,我们来逐个分析下各技术的特点与安全隐患。如果有必要,会对安全隐患同时给出相关Proof Of Concept(POC,概念性证明)程序。这里对POC程

序作下说明:在计算机安全领域内,安全专家为了能证明某个漏洞的存在,而又能防止恶意用户拿去危害公众而写的程序叫做POC程序。

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

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

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

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

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

其一,如果黑客采取“连续篡改”的攻击方式,则很有可能永远也无法恢复,公众看到的一直是被篡改的网页。因为:篡改发生后,防篡改程序才尝试进行

恢复,这有一个系统延迟的时间间隔,而“连续篡改”攻击则是对一个文件进行每秒上千次的篡改,如此一来,“后发制人”的方式永远也赶不上“连续篡改”的速度。

为了证明该技术的安全隐患,同时又为了防止恶意用户拿去危害公众,这里给出一个POC程序,该程序只对c:\test.txt 文件进行“连续篡改”攻击(每秒篡改10次),读者可以下载此程序进行测试。注意:部分山寨杀毒软件会误报此测试程序为木马病毒,用户可以把它上传到/ 网站上进行免费检测,该网站会使用全球40多种杀毒软件如卡巴斯基,诺顿,nod32,麦咖啡等,来检测用户上传的程序是否为木马/病毒。已知会误报的有360、金山、可牛。

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

为了证明该技术的安全隐患,同时又为了防止恶意用户拿去危害公众,这里给出一个POC程序,该程序只对c:\test.txt 文件进行篡改后劫持攻击,运行后, c:\test.txt 文件的内容将被篡改,同时该文件的内容将无法恢复,读者可以下载此程序进行测试。注意:部分山寨杀毒软件会误报此测试程序为木马病毒,用户可以把它上传到 / 网站上进行免费检测,该网站会使用全球40多种杀毒软件如卡巴斯基,诺顿,nod32,麦咖啡等,来检测用户上传的程序是否为木马/病毒。已知会误报的有360、金山、可牛。

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

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

Ntsd.exe –c q –pn winlogon.exe

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

第三种,核心内嵌技术(即“数字水印”或“数字指纹”):这也是目前的主流技术之一,该技术以无进程、篡改网页无法流出、使用密码学算法作支撑而著称,其原理是:对每一个流出的网页进行数字水印(数字指纹)检查,如果发现相关水印和之前备份的水印不同,则可断定该文件被篡改,并且阻止其继续流出,并传唤恢复程序进行恢复。

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

该技术的安全隐患有二:

其一:市面上“数字水印”的密码学算法,无一例外地使

用 MD5(Message-Digest algorithm 5) 散列算法,该散列算法由于网上到处

都有现成的代码可以直接拷贝,而且在计算100KB以内的小文件时速度可以忍受,因而之前在密码存储和文件完整性校验方面广为运用。不过,在2004年我国密码学家,山东大学王小云教授攻破了包括这一算法在内的多种密码学算法,使得伪造出具有相同数字水印而内容截然不同的文件立刻成为了现实。

为了证明该技术的安全隐患,同时又为了防止恶意用户拿去危害公众,这里给出两个具有相同数字水印(相同MD5)而运行内容完全不一样的程序给读者作参考。

再给出一个POC程序,该程序可对给定前缀的文件制作出具有相同数字水印(相同MD5)的两个文件。

再提供一个计算文件/字符串各类散列的程序深空密码学散列计算程序。下图为深空密码学散列计算程序的使用示例:

相关文档
最新文档