深入解析网页防篡改技术



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

1.           定时循环扫描技术(即“外挂轮询”):使用程序按用户设定的间隔,对网站目录进行定时扫描比对,如果发现篡改,就用备份进行恢复。

2.           事件触发技术:使用程序对网站目录进行实时监控,稍有“风吹草动”就进行检查是否是非法篡改。

3.           核心内嵌技术(即“数字水印”或“数字指纹”):在用户请求访问网页之后,在系统正式提交网页内容给用户之前,对网页进行完整性检查。

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

现在,我们来逐个分析下各技术的特点与安全隐患。如果有必要,会对安全隐患同时给出相关Proof Of Concept(POC,概念性证明)程序。这里对POC程序作下说明:在计算机安全领域内,安全专家为了能证明某个漏洞的存在,而又能防止恶意用户拿去危害公众而写的程序叫做POC程序。

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

第二种,事件触发技术:这是目前主流的防篡改技术之一,该技术以稳定、可靠、占用资源极少著称,其原理是监控网站目录,如果目录中有篡改发生,监控程序就能得到系统通知事件,随后程序根据相关规则判定是否是非法篡改,如果是非法篡改就立即给予恢复。
其安全隐患有三:
其一,如果黑客采取“连续篡改”的攻击方式,则很有可能永远也无法恢复,公众看到的一直是被篡改的网页。因为:篡改发生后,防篡改程序才尝试进行恢复,这有一个系统延迟的时间间隔,而“连续篡改”攻击则是对一个文件进行每秒上千次的篡改,如此一来,“后发制人”的方式永远也赶不上“连续篡改”的速度。
为了证明该技术的安全隐患,同时又为了防止恶意用户拿去危害公众,这里给出一个POC程序,该程序只对c:\test.txt 文件进行“连续篡改”攻击(每秒篡改10次),读者可以下载此程序进行测试。注意:部分山寨杀毒软件会误报此测试程序为木马病毒,用户可以把它上传到http://www.virustotal.com/ 网站上进行免费检测,该网站会使用全球40多种杀毒软件如卡巴斯基,诺顿,nod32,麦咖啡等,来检测用户上传的程序是否为木马/病毒。已知会误报的有360、金山、可牛。
其二,如果文件被非法篡改后,立即被恶意劫持,则防篡改进程将无法对该文件进行恢复。
为了证明该技术的安全隐患,同时又为了防止恶意用户拿去危害公众,这里给出一个POC程序,该程序只对c:\test.txt 文件进行篡改后劫持攻击,运行后, c:\test.txt 文件的内容将被篡改,同时该文件的内容将无法恢复,读者可以下载此程序进行测试。注意:部分山寨杀毒软件会误报此测试程序为木马病毒,用户可以把它上传到 http://www.virustotal.com/ 网站上进行免费检测,该网站会使用全球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)的两个文件。

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

      当“数字水印”技术使用一个已被攻破的脆弱算法时,其安全性也就轰然倒塌了。
      其二:“数字水印”技术在计算大于100KB大小的文件“指纹”时,其速度将随着文件的增大而逐步下降到让人无法忍受的地步,因此大多数产品都会默认设置一个超过xxx KB的文件不进行数字水印检查规则。如此一来,黑客只要把非法篡改文件的大小调整到xxx KB以上,就可以让非法文件自由流出了,这又是一个潜在的巨大安全隐患。关于这项安全隐患,读者可以随便找个10MB以上的文件放入网站目录中,然后再访问该文件,如果发现文件可以访问或者下载,即可证明当前使用的防篡改产品存在该安全隐患。


      “数字水印”技术安全隐患的根本成因是密码学水印算法的安全性,以及水印算法速度与公众访问网页速度的矛盾。由于目前MD4、MD5、SHA-1、RIPEMD等相对快速的水印算法均被破解,其安全性都已经荡然无存。因而,在新的又快速又安全的新水印算法发明之前,上述两种安全隐患将永远是“数字水印”技术的梦魇。

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

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

为了证明该技术的安全隐患,同时又为了防止恶意用户拿去危害公众,这里只列举一种方法来证明系统内核中存在多种方式可以绕过文件过滤驱动拦截。

方法一:因为后面介绍的工具只能删除文件而不能篡改文件,即:不具备篡改网页的危害性,所以这里详细阐述:打开安全工具“冰刃”(该工具很常见,读者可以自行搜索下载),在“file”栏中跳转到网站目录,然后在右边的列表视图中选中需要删除的文件,右键->“force delete”,操作完成后刷新,可以发现目标文件已经成功地被删除。
      方法二:由于该方法的危险性大,黑客只需编写几行代码的程序,就可以轻易突破文件过滤驱动的限制,任意地进行篡改文件,故而这里不详细写出。
      方法三:由于该方法的危险性巨大,恶意用户无需编程、无需借助任何第三方工具,仅用资源管理器就可随意篡改网页,故而这里不详细写出。
      操作系统内核底层好比深海,暗流颇多,如果对它没有深入、细致、广泛的理解与分析而去编写一个文件过滤驱动,那这个文件过滤驱动就好比是“马奇诺防线”,而当文件过滤驱动被绕过后,其防篡改功能也同样荡然无存了。

转自:http://www.huawei.com/ecommunity/bbs/10150125.html

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值