网站地图    收藏   

主页 > 后端 > 网站安全 >

不安分的网页---网页木马的守株待兔 - Windows操作

来源:自学PHP网    时间:2015-04-17 18:32 作者: 阅读:

[导读] 作者:小金一. 不安分的网页职员李小姐这两个月来都觉得比较纳闷,为什么最近开很多网页都会跳出RealPlayer播放器,难道网络又开始了一轮视频播放形式新潮流?但是每次她都是等了...

作者:小金

一. 不安分的网页

职员李小姐这两个月来都觉得比较纳闷,为什么最近开很多网页都会跳出RealPlayer播放器,难道网络又开始了一轮视频播放形式新潮流?但是每次她都是等了很久也没看到有音乐或电影开始播放,久而久之,她已经习惯这个现象了,直到那一天,她保存在硬盘上的重要客户文档无缘无故被加了密,并且目录下多了个名为“要想恢复文档请将500元汇入帐号xxxxxxx”的文件……
当公司网络部的同事询问李小姐最近有没有发现什么异常现象时,李小姐才如梦方醒:打开网页怎么会跳出RealPlayer?RealPlayer一般不是都在网页里面播放的吗?

二. 你的地盘我做主:来自第三方工具的危害

随着安全危机的影响力逐渐扩大,许多网民的机器里都开始出现各类安全防护工具的身影,像各种反病毒产品、360安全卫士、超级巡警等,正是由于这些工具的存在,中国网民的机器上原本四处洞开的窗口终于得以关闭,然而网民们很快发现,虽然自己的“瘟到死”系统已经安装所有补丁更新,但是仍然逃脱不了被病毒侵袭的事件,最终只能寄希望于反病毒产品的庇护,结果,就在反病毒产品的监控下,恶意流氓和未知木马照旧可以大模大样的在系统里招摇过市,普通网民们只能望“马”兴叹——也不对,在很多情况下,广大网民们根本就不知道自己的系统已经被木马驻扎!
许多人接受不了这样的事实,高手说,系统要勤打补丁,好,我们照做了;高手又说,系统要装几个防御工具,好,我们装上了各种反病毒产品和超级巡警、360安全卫士等安全检测工具,结果到了最后,每次在新病毒来袭的时候,我们仍然是首当其冲的受害者,而什么工具都没装的高手却偏偏不会中招?安全工具,真的有效吗?
这种质疑论点其实是不必要的,系统补丁必然要打,一些必须的系统加固工作也是必须要做的,但是这些措施只是为了防御各种蠕虫病毒、系统漏洞入侵等,并不代表从此就可以百毒不侵,更何况,每个人的系统中,都存在有一个时时敞开的大门,正是它,让木马防不胜防,除非你决定更换另一个系统平台,否则你永远也摆脱不了它的影响。
这扇大门,就是我们每个人都熟知的Internet Explorer,IE浏览器。
不知道会不会有人立即怒发冲冠要去把浏览器卸载或者计划好投诉浏览器厂商不做安全工作了,但是作为我们与互联网世界接触的一大窗口,浏览器是不可或缺的重要工具,像IE、FireFox、Opera等,正是浏览器为我们搭建了这个交互平台,将各种交互应用呈现在我们面前,在这里,浏览器的主要功能就是“交互”,而就是这个特性,让入侵变得难以彻底根除。
因为浏览器面对的是互联网众多的交互功能,以单独一家公司自身的处理能力,要让浏览器能识别处理世界上尽多数的交互功能是不现实的,因此任何浏览器厂商都要为程序设计一个公开的接口规范让其能调用扩展或第三方接口程序,以便把它自身并不认识的交互任务交给某些有特定处理能力的接口程序来处理,所以浏览器并非是一个独立的程序,而是一个可以调用多个扩展组件运行的结合体,这些扩展组件通常也被称为“插件”(Plugin)。浏览器通过读取页面特定标记来决定自己需要加载什么组件执行,例如读取到脚本标记就自动加载脚本扩展组件执行、读取到XML标记就交给XML处理扩展执行,如果这些众多的扩展组件被取消,你将会发现浏览器大概只能显示最基本的文字和图片了。一个最简单的例子,现在网络购物和网络银行已经走入了千家万户,大家都知道“登录”步骤的操作过程——输入用户名和密码,然后点击“登录”按钮。但是并非所有用户都能平稳的享受到这个过程,有些用户会发现,自己的浏览器里,那个用于输入密码的框框成了一个类似于图片显示不出来时报错的大红叉,这就是浏览器交互功能组件缺失时最显著的表现。由于网络银行和网络购物必须在用户平台中实现相对安全的防御手段,所以要求用户输入的敏感数据是不可被轻易捕获和拦截的,这种要求,浏览器厂商自身是无法为其解决的,否则我们每次要用一个新的网络银行就必须等待厂商升级他们的浏览器产品了,这显然很不现实,所以为了兼顾这个问题,浏览器厂商在设计初期就必须加入一套可以被第三方厂商调用的接口规范,利用这个接口,任何人都能自己编写符合规范的程序来实现与浏览器的数据交互,它的工作原理请看前面的描述。
因此,网络银行的设计者必须开发一套浏览器组件,并通过特定的页面标记来激活运行,最终将一个“密码输入框”显示在网页(浏览器的容器对象)中,并接受用户的输入,当用户点击提交按钮时,它将加密处理后的输入数据附加在浏览器的交互流程中通过“安全套接字协议”(HTTPS/SSL)返回到服务器端,这样才完成了数据交互,我们才得以登录淘宝、支付宝、拍拍、各种网络银行。在国内,这些组件是以ActiveX控件的形式加载的,它们使用的是IE提供的接口标准,而另外两大浏览器阵营FireFox和Opera则不支持这种交互方式,于是,在中国,大部分网民们知道的只有两种浏览器,一种是支持中国网银的,一种是不支持中国网银的。
实际上,不仅是网络银行等交互需要第三方组件,当我们使用浏览器在各种小游戏网站上消磨时间时,是Flash插件被载入浏览器为我们提供交互功能,而我们在百度MP3里试听音乐时,是因为微软自家的Media Player插件和RealNetworks的RealPlayer插件正在浏览器中工作……诸如此类,浏览器结合各种扩展组件最终构成了我们的网络生活。
但是,事情并非始终都是美好的,天使和恶魔,就在于一念之差。
当浏览器将一个组件加载后,这个组件就成为它的一部分,浏览器被称为“宿主”,根据设计的标准,组件能拥有宿主所拥有的所有权限,也能控制宿主的行为,而且,它更能执行普通程序所拥有的所有功能,简单的说,一个被浏览器加载的组件,除了它的生命周期取决于宿主以外,其他特性与一般应用程序无异,而且,它比一般应用程序还多了一个可以传递参数的交互接口,这样的设计初衷是为了方便浏览器宿主将其加载时进行一些必要的初始化工作,但是,这一部分的数据是通过网页HTML代码以明文的形式写入的,任何人都可以对其进行修改和控制。
并且,由于微软自身浏览器的接口标准可以响应ActiveX控件交互,那就意味着,大部分ActiveX控件都可以通过组件的形式载入浏览器,并对其参数进行控制,虽然它可能会由于不符合接口数据返回的规范而不会造成浏览器有任何行为,但是,它已经被加载运行了,数据也已经传递了。
正是这个特性,引发了新的一轮网页木马狂潮。
早在好几年前,网页木马(WebPage Trojan)的雏形——浏览器MIME解析漏洞结合电子邮件文档EML载体以浏览器子框架IFRAME的形式汹涌来袭,想必经历过那个年代的人都不会忘记“求职信”、“大无极”这些著名的“邮件木马”的可怕吧,实际上它们的本质都是网页木马,只不过是因为Outlook Express等邮件客户端很不幸的支持网页形式浏览罢了,最终导致它们被触发的因素仍然是那幕后为网页显示而工作的IE浏览器控件,我们可以将开启了网页视图的邮件客户端视为一种特殊的网页浏览器,EML就是在浏览器里被解释执行最终将病毒释放出来并执行的。
这个入侵狂潮随着IE6的出现而逐渐被历史埋没,但是,有人接过了它们手中的接力棒。
当第一个安全研究员发现通过浏览器加载的扩展组件会由于传入的参数检查不严而引发“缓冲区溢出”的现象时,新一代的网页木马正式拉开了序幕,不少安全团体都开始对各种主流的浏览器插件进行调试,然后,他们开始扩大“浏览器插件”的理解范围,最终,许多网页成了一个又一个树桩,长年累月的等待着倒霉的网民往上面“撞”,而这些问题的根源并非来自操作系统和浏览器本身,所以,即使网民们补上了所有系统补丁也无济于事。
2007年10月26日,国内安全团队报道了一个由RealPlayer引发的高危漏洞“RealPlayer ActiveX播放列表名称栈溢出”,该漏洞的真正问题文件是MPAMedia.dll,该文件用于处理播放列表的函数传参存在栈溢出漏洞,但是入侵者是通过对RealPlayer用于与浏览器交互的ActiveX组件“IERPCtl”(RealPlayer Control for Internet Explorer)来触发的,它位于RealPlayer目录里的rpplugins文件夹下,对应文件名为“ierpplug.dll”,它平时被用得最多的作用就是在浏览器中显示内嵌的媒体播放器和传递相关内容参数,然而这一次,它被作为一条直达要害的桥梁,以至于浏览器成功下载木马并执行,它也背上了黑锅,而实际上,它只是作为一个数据转接的通道存在而已,真正的元凶是MPAMedia.dll。
当RealPlayer ActiveX被载入浏览器后,它的所有参数便能通过HTML代码的形式传递,最常见的就是内嵌于浏览器的播放器,它至少需要一个待播放的媒体文件位置参数,在此基础上,网页设计者还能通过另一个参数来决定它能否自动播放媒体文件,这是大众最经常涉及的交互功能,大家都不会陌生,然而实际上,除了这些大众参数,还有个别极少被使用的参数存在,也许是因为它们“非主流”,RealNetworks没有将它们的安全盘查放在心上,但是,它们毕竟是存在的……
于是,漏洞就此出笼。一些安全研究者发现,RealPlayer ActiveX导出的“Import”功能函数中的第二个参数“playlist”是直接提交给内部文件MPAMedia.dll与之对应的函数中的,但不幸的是,该函数存在边界检查不严问题,可引发控件的“缓冲区溢出”,从而导致宿主(ierpplug.dll作为传参者,成为了MPAMedia.dll的宿主,而IE内核的浏览器加载了ierpplug.dll……于是多米诺骨牌效应发生了,一浪推一浪,后浪IE冤大头死在沙滩上……)发生千篇一律的结果:允许执行任何代码,如下载一个恶意程序运行、或直接删除用户数据等,而现在的主流手法自然是前者,也就是所谓的“网页挂马”,入侵者通过各种组件存在的缓冲区溢出漏洞,精心构造指令代码使得一个网页成为“潘多拉魔盒”,只要你打开它,你的世界将永无宁日。
为了不让网页的显示出现异常,入侵者通常沿用早期网页木马的隐秘加载形式——浏览器子框架IFRAME实现木马页面的

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论