安全技术谈:网页挂马工作原理完全分析
作者:晓兵 来源:赛迪网 时间:2008-12-15 12:41:00
通常,微软IE工作过程描述如下:
作为网页挂马的散布者,其目的是将木马下载到用户本地,并进一步执行,当木马获得执行之后,就意味着会有更多的木马被下载,进一步被执行,进入一个恶性的循环,从而使用户的电脑遭到攻击和控制。为达到目的首先要将木马下载到本地。根据上图的流程,常见的方式有以下几种:
1.将木马伪装为页面元素。木马则会被浏览器自动下载到本地。
2.利用脚本运行的漏洞下载木马
3.利用脚本运行的漏洞释放隐含在网页脚本中的木马
4.将木马伪装为缺失的组件,或和缺失的组件捆绑在一起(例如:flash播放插件)。这样既达到了下载的目的,下载的组件又会被浏览器自动执行。
5.通过脚本运行调用某些com组件,利用其漏洞下载木马。
6.在渲染页面内容的过程中利用格式溢出释放木马(例如:ani格式溢出漏洞)
7.在渲染页面内容的过程中利用格式溢出下载木马(例如:flash9.0.115的播放漏洞)
在完成下载之后,执行木马的方式有以下几种:
1.利用页面元素渲染过程中的格式溢出执行shellcode进一步执行下载的木马
2.利用脚本运行的漏洞执行木马
3.伪装成缺失组件的安装包被浏览器自动执行
4.通过脚本调用com组件利用其漏洞执行木马。
5.利用页面元素渲染过程中的格式溢出直接执行木马。
6.利用com组件与外部其他程序通讯,通过其他程序启动木马(例如:realplayer10.5存在的播放列表溢出漏洞)
在与网马斗争的过程中,为了躲避杀毒软件的检测,一些网马还具有了以下行为:
1.修改系统时间,使杀毒软件失效
2.摘除杀毒软件的HOOK挂钩,使杀毒软件检测失效
3.修改杀毒软件病毒库,使之检测不到恶意代码。
4.通过溢出漏洞不直接执行恶意代码,而是执行一段调用脚本,以躲避杀毒软件对父进程的检测。
网页挂马的检测
传统的检测防御方式:
1.特征匹配。将网页挂马的脚本按脚本病毒处理进行检测。但是网页脚本变形方、加密方式比起传统的PE格式病毒更为多样,检测起来也更加困难。
2.主动防御。当浏览器要做出某些动作时,做出提示,例如:下载了某插件的安装包,会提示是否运行,比如浏览器创建一个暴风影音播放器时,提示是否允许运行。在多数情况下用户都会点击是,网页木马会因此得到执行。
3.检查父进程是否为浏览器。这种方法可以很容易的被躲过且会对很多插件造成误报。
安天防线的行为分析方式:
1.检测伪装文件格式。通过对文件格式精确的识别,判断页面元素是否为伪装的恶意代码。
2.检查页面元素来源是否为长期散布网页挂马的站点。
3.检测特定函数调用堆栈实现。
(a)区分用户下载文件,浏览器自动下载文件。
(b)检测已知缓冲区漏洞。
(c)检测进程创建调用堆栈、调用参数是否和浏览器常规一致,以检测未知漏洞造成的文件执行。
4.对文件执行进行监控,检测文件执行参数等特征。
5.对部分目录写文件操作进行监控。
6.检测系统时钟修改。
7.检测对系统DLL内存镜像修改(导入、导出表、函数体内容)。
8.检查PE文件和CAB包裹的数字签名。
9.特定文件格式检测,检测已知的格式溢出。
通过对以上几项的加权处理,可以实现有效对已知和未知网页挂马的检测。