随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。在Web安全的攻击种类中,网页木马一直是一个不容忽视的问题。黑客把一个木马程序上传到一个网站里面然后用木马生成器生一个网马,再上到空间里面,再加代码使得木马在打开网页里运行,从而获取用户的隐私信息。随着网页木马破坏性的增大,人们对网页木马的重视程度也在逐渐增加。
1网页木马简介
1.1网页木马的定义
网页木马是在宏病毒、木马等恶意代码基础上发展出来的一种新形态的恶意代码.类似于宏病毒通过Word 等文档中的恶意宏命令实现攻击.网页木马一般通过HTML 页面中的一段恶意脚本达到在客户端下载、执行恶意可执行文件的目的,而整个攻击流程是一个“特洛伊木马式”的隐蔽的、用户无察觉的过程,因此,国内研究者通常称该种攻击方式为“网页木马”.
目前,学术界对网页木马尚无一个明确的、统一的定义.Wiki 将它定义为一种用户不知情的下载,发生的场景可以是用户阅览邮件、访问网站页面以及点击一个欺诈性的弹出框时,等等,该定义属于字面解释,包括的内容比较宽泛,如利用社会工程学手段欺骗用户下载也属于其涵盖范围.此外,Wiki 还用Drive-by-Install 这一术语来表示下载并安装恶意程序的过程;Google 的Provos 等人将网页木马限定为客户端在访问页面时受到攻击并导致恶意可执行文件的自动下载、执行,该定义指出了“访问页面时受到攻击”和“自动下载、自动执行恶意可执行文件”两个关键点;UCSB 的Cova 等人进一步指出,网页木马是以一段JavaScript 代码作为攻击向量的一种客户端攻击方式,而实际上,还存在一些通过CSS 元素、VBScript 脚本发起攻击的网页木马。
综上所述,网页木马定义为:一种以JavaScript,VBScript,CSS 等页面元素作为攻击向量,利用浏览器及插件中的漏洞,在客户端隐蔽地下载并执行恶意程序的基于Web 的客户端攻击。
1.2网页木马的攻击流程
网页木马采用一种被动攻击模式(即pull-based 模式):攻击者针对浏览器及插件的某个特定漏洞构造、部署好攻击页面之后,并不像发送垃圾邮件那样主动将内容推送给受害用户(即push-based 模式),而是被动地等待客户端发起的页面访问请求.其典型攻击流程如图1 所示:1. 客户端访问攻击页面;2. 服务器做出响应,将页面内容返回给客户端;3. 页面被浏览器加载、渲染,页面中包含的攻击向量在浏览器中被执行并尝试进行漏洞利用;4,5. 存在该漏洞的客户端被攻破,进而下载、安装、执行恶意程序。
从网页木马的攻击流程可以看出,网页木马是一种更加隐蔽、更加有效的向客户端传播恶意程序的手段:相比较蠕虫以主动扫描等方式来定位受害机并向其传播恶意程序,网页木马采用一种“守株待兔”的方式等待客户端主动对页面发出访问请求,这种被动式的攻击模式能够有效地对抗入侵检测、防火墙等系统的安全检查.
1.3可能被网页木马利用的漏洞
1.利用URL格式漏洞
此类网页木马是利用URL格式漏洞来欺骗用户。构造一个看似JPG格式的文件诱惑用户下载,但事实上用户下载的却是一个EXE文件。此类攻击,具有相当的隐蔽性,利用URL欺骗的方法有很多种,比如起个具有诱惑性的网站名称或使用易混的字母数字掉包进行银行网络钓鱼,还有漏洞百出的“%30%50”之类的Unicode编码等等。
2.通过ActiveX控件制作网页木马。
通过 ActiveX 把普通的软件转化为可以在主页直接执行的软件的网页木马,此类网页木马对所有的系统和IE版本都有效,缺点是浏览网页木马时会弹出对话框,询问是否安装此插件。病毒作者通常是伪造微软、新浪、Google等知名公司的签名,伪装成它们的插件来迷惑用户。
3.利用WSH的缺陷
利用WSH修改注册表,使IE安全设置中“没有标记为安全的的activex控件和插件”的默认设置改为启用,然后再利用一些可以在本地运行EXE程序的网页代码来运行病毒。它的危害在于,可以利用IE的安全漏洞提升权限达到本地运行任意程序的后果。
4.利用MIME漏洞制做的网页木马。
它利用了Microsoft Internet Explorer中MIME/BASE处理的漏洞,MIME(Multipurpose Internet Mail Extentions),一般译作“多用途的网络邮件扩充协议”。顾名思义,它可以传送多媒体文件,在一封电子邮件中附加各种格式文件一起送出。现在它已经演化成一种指定文件类型(Internet的任何形式的消息:E-mail,Usenet新闻和Web)的通用方法。在使用CGI程序时你可能接触过 MIME类型,其中有一行叫作Content-type的语句,它用来指明传递的就是MIME类型的文件(如text/html或 text/plain)。MIME在处理不正常的MIME类型时存在一个问题,攻击者可以创建一个Html格式的E-mail,该E-mail的附件为可执行文件,通过修改MIME头,使IE不能正确处理这个MIME所指定的可执行文件附件。
5.利用系统的图片处理漏洞
这是种只要浏览图片就可以传播的网页木马。这种木马是把一个EXE文件伪装成一个BMP或JPG图片文件,在网页中添加如 的代码来欺骗IE自动下载,然后利用网页中的Java Script脚本查找客户端的Internet临时文件夹,寻找下载的BMP格式文件,把它拷贝到TEMP目录.再利用脚本把找到的BMP文件用 DEBUG还原成EXE,并添加到注册表启动项中,达到随系统的目的。
6.HTML文件木马
首先利用工具把EXE格式的文件转化成HTML文件的木马,这样.EXE文件看起来就变成了Htm文件,欺骗访问者访问假冒的Htm文件从而达到运行病毒的目的。它和BMP网页木马运用了同一个原理,也会利用JAVASCRIPT脚本和debug程序来转换回EXE文件
7.IFRAME溢出
IE IFRAME漏洞利用了MS05020中提到的IE溢出漏洞, IE在处理iframe标签的时候,会调用一个叫作SHDOCVW!CBaseBrowser2::SetFramName函数来进行unicode copy(wcscpy),在拷贝iframe的name时,没有进行边界检查,构造恶意的代码就会导致IE的溢出。
8. Microsoft Internet Explorer Javaprxy.DLL COM对象堆溢出漏洞
Microsoft Internet Explorer存在一个堆溢出漏洞。当一个恶意的网页实例化'javaprxy.dll' COM对象时,可能导致堆溢出,成功利用该漏洞能够在客户端上下载执行任意代码。
2网页木马的主要检测技术
在互联网中大规模进行页面检查,检测出被挂马页面,是网页木马防御的重要环节:一方面,可以通知被挂马网站的管理员及时清除页面中嵌入的恶意内容,从而改善互联网浏览环境;另一方面,有助于让防御方掌握网页挂马的范围、趋势以及捕获最新的网页木马样本.
2.1监测基本思想
大规模网页挂马检测的基本思路为:使用爬虫爬取互联网页面,将爬取到的URL 输入到检测环境——客户端蜜罐中进行网页木马检测.客户端蜜罐(client honeypot)这一概念首先由国际蜜网项目组(The HoneynetProject)的Spitzner 针对网页木马这种被动式的客户端攻击而提出.在网页挂马检测时,客户端蜜罐根据URL 主动地向网站服务器发送页面访问请求,并通过一定的检测方法分析服务器返回的页面是否带有恶意内容.
在互联网中大规模进行网页挂马检测有两个关键点:
1) 提高爬虫爬取的覆盖率,这方面可以通过采用大规模的计算平台、设计均衡的并行爬取分配策略等来实现
2) 在客户端蜜罐中实现高效、准确的网页木马检测方法。
2.2主要监测方法
• 基于反病毒引擎扫描的检测
基于反病毒引擎扫描是研究人员进行网页挂马检测时较早使用的方法,该方法主要基于规则或特征码匹配来检测页面中是否含有恶意内容.
该方法的优点在于可以快速地对页面进行检测,但其缺点在于存在较高的漏报率:一方面,仅仅依赖一种纯静态的特征匹配无法对抗网页木马为了提高隐蔽性而普遍采用的混淆免杀机制,根据互联网安全技术北京市重点实验室在2008 年底作的统计发现,9 款国内外主流反病毒软件对在中国互联网上发现的网页木马样本最高仅达到36.7%的检测率;另一方面,研究人员通常仅对单页面进行扫描,而不进一步检测页面动态视图中的内嵌脚本/内嵌页面,从而无法有效检测出被挂马页面.
• 基于行为特征的检测
基于行为特征的网页木马检测方法通常被用于高交互式客户端蜜罐中:即在检测环境中安装真实浏览器和一些带有漏洞的插件,驱动浏览器访问待检测页面,通过监测页面访问时注册表变化、文件系统变化、新建进程等行为特征来判定页面是否被挂马.为了便于感染后快速恢复以及防止恶意程序在本地网络中的传播,高交互式客户端蜜罐一般部署在虚拟机中并作一定的网络隔离.
• 基于统计或机器学习的检测
由于网页木马经常对恶意脚本进行混淆来躲避基于特征码的检测,一种检测思路是按照页面的混淆程度来进行恶意性判断.文献提出了基于判断矩阵法的恶意脚本检测方法,但该方法仅对经过encode escape 函数混淆的恶意脚本有效.随着越来越多的大型网站为保障代码知识产权都对自己的脚本进行了一定的混淆或加密,因此,这类按照混淆程度进行恶意性判定的方法会带来较多的误报.
• 基于漏洞模拟的检测
该类方法的典型代表是PHoneyC.PHoneyC 在低交互式客户端蜜罐环境中解析页面并用一个的脚本引擎执行提取出的脚本,通过在脚本引擎上下文中模拟出一些已知的漏洞插件,并结合运行时参数检查来检测恶意脚本.
作为低交互式客户端蜜罐,PhoneyC 比高交互式客户端蜜罐更迅速、更容易加载(模拟)更多的漏洞模块甚至同一漏洞模块的不同版本.但是PhoneyC 也具有其自身局限性:由于采用一个的脚本引擎,脚本执行过程中常常由于缺少页面上下文环境或浏览器提供给脚本的一些API 而导致脚本执行失败、检测被迫停止.此外,PhoneyC 只能模拟已知的漏洞插件,无法检测利用零日漏洞的恶意脚本.
在网页挂马检测中,低交互式客户端蜜罐中的基于反病毒引擎扫描、基于统计或机器学习、基于漏洞模拟等方法和高交互式客户端蜜罐中的基于行为特征的检测方法各有优缺点:低交互式客户端蜜罐的实现和配置灵活、便于扩展;高交互式客户端蜜罐主要根据行为特征进行检测,误报率相对较低,但时间代价和系统代价比较大.
3网页木马防御技术研究
网页木马都是利用漏洞来执行本不应该执行的代码,而这些代码都需要下载一个原生型木马到受害机执行,这个木马程序就是服务端。如果能拦截掉恶意代码的执行、木马的下载及木马的运行中的任意一步,就可有效地防御网页木马。拦截恶意代码的执行可以通过为系统及应用软件打补丁,封堵系统漏洞或通过杀毒软件来实现,但它们都存在一定的不可靠性。
下面是综合各种网页木马的攻击手段与攻击方式而提出的一些应对方法,能够从各个角度堵住网页木马的下载与运行。
3.1系统安全配置
及时给系统及应用软件打上补丁,让网页木马无漏洞可利用,可将中网页木马的几率降到最低。经常关注最新漏洞的一些信息,有助于及时防止漏洞被网页木马制作者利用;打开操作系统的自动更新功能,如果微软公司提供新的漏洞补丁可以及时自动下载并安装。
3.2浏览器安全配置
IE是占据市场份额最多的浏览器,它支持多种类型的网页文件,例如HTML,DHTML, ActiveX, Java, JavaScript, VBScript, CSS等格式的文件。而正是由于对这些格式文件的支持,使得IE经常由于各种漏洞的产生饱受攻击,如果我们确定不需要运行一些格式文件,我们可以在IE浏览器中“Internet选项一>安全一>自定义级别”页面里面设置相应的配置,对一些不必要的加载和设置进行取消,即提高浏览器安全级别。
上网浏览时我们经常会遇到提示是否安装第三方软件,这些第三方软件可以完成某些特殊的功能,如Google工具条、3721网络助手等,这些软件也可能隐含漏洞,可以在IE的工具一>Internet选项一>高级中取消/启用第三方浏览器扩展。
3.3使用第三方浏览器
由于目前互联网上常见的网页木马所使用的是针对IC浏览器及其ActiveX控件的漏洞,因此,使用Firefox/Opera等非工E内核的第三方浏览器可以从源头上堵住网页木马的攻击;不过第三方浏览器在页面兼容性上稍逊IE浏览器,而且一些特别的网页,如各种使用ActiveX密码登陆控件的网上银行不能使用第三方浏览器登陆,因此也需要综合考虑取舍。
3.4安装安全工具
安全工具软件包括防火墙、杀毒软件、HIPS (Host Intrusion Prevent System)以及其他一些专门用途的安全软件。这些工具从网络到主机,从RingO到Ring3,从防病毒到防流氓软件等不同的角度来保护计算机的安全。防火墙可以防止他人在未授权的情况下连结到本机上,杀毒软件扫描指定的文件和内存,通过与病毒库的比较查杀病毒,H工PS能监控计算机中程序的运行和对文件的访问以及对注册表的修改,并向你提出是否许可警示,如果你阻止了,它将无法进行运行或更改。
3.5禁用远程注册表服务
远程注册表服务Remote Registry Service可以使得远程用户修改或查看本地计算机的注册表信息。木马在利用各种手段诱使受害机下载木马到本地后还远远不够,还必须想办法让木马运行起来,但一般情况下远程客户是没有权限运行当前机子的文件的,而远程注册表服务则使得远程用户利用在注册表中添加开机启动信息而达到木马程序的自动加载,在受害机下次启动之后,攻击者便可以实施攻击。因此我们可以选择关闭远程注册表服务,这样即便攻击者成功实现了木马的挂载,但由于无法让木马运行起来,无法实施攻击,这样用户的安全就得到了保证。总的来说这个服务就是用来使远程机器可以管理本机的注册表(前提是有本地机器中有该权限的用户的用户名和密码),一旦该服务关闭,远程用户将不能访问本机的注册表,其他一些依赖这个服务的程序(或其他服务)也将受到影响,因此也有一定的负面作用。
3.6过滤指定网页
IE浏览器Internet选项提供了一个可以添加信任与不信任网站的站点,对安全性要求高的网络和设备可以采取白名单管理方式,把认为安全的网站添加到白名单列表中管理,其他的则完全不同意访问,这样用户浏览的网站只能浏览安全的网站,故而不可能中网页木马。如果安全性要求相对较低的情况下可以添加黑名单的管理方式,只把用户认为不安全或不能确信是否安全的网站添加到黑名单中,那浏览器在浏览过程中可以自动屏蔽这些网址,那也就切断了本机与网页木马联系,除去了中网页木马的可能性。
3.7卸载或升级WSH
WSH是造成很多网页木马横行其道的原因,而且危害性非常大,如果卸载了WSH则可以控制很多网页木马的操作,但WSH的正面作用也非常大,如负责对实现网页动态交互功能的JavaScript等脚本语言的支持,如果完全卸载会使得一些原本需要的功能无法实现,因此升级到最新版本的WSH是最好的选择。最新版WSH在安全性上又有了新的改进。
3.8提高防马意识
用户对于来历不明的链接不要轻易点击,对于来历不明的程序不要轻易安装运行,对于来历不明的多媒体文件也不要轻易下载打开。经常持有对来历不明的文件的警惕性是非常必要的,可以避免很多有害代码的侵入。
4网页木马的发展趋势
• 网页木马的利用向“大众化”发展
网页木马的利用,近年来有着从“专业化”向“大众化”的发展趋势:早期,攻击页面的编写及网页挂马需要具备一定攻防技术基础的黑客才能完成;而现在,普通网民也可以随意构建并发布网页木马.这种变化趋势在于两方面原因:一是大量的网页木马自动构建工具的存在,如在著名黑客会议Black Hat 和DEF CON 上发布的drivesploit等,普通网民仅简单操作这些工具便可定制出针对特定漏洞的网页木马.另一方面,普通网民不需要掌握任何复杂的网页挂马手段,仅仅通过社交网站就可以大范围地推送恶意链接;加之Twitter、新浪微博等会对用户上传的URL 做短链接处理,这种恶意链接有很强的隐蔽性.
随着网页木马的利用向“大众化”的发展,网页木马在互联网上的分布更加广泛.一个可能的研究方向是根据网页木马自动生成工具的指纹特征进行网页木马检测与防范.
• 攻击向量载体向PDF,Flash 文档格式扩展
网页木马以 HTML 页面作为攻击向量载体,在浏览器加载、渲染HTML 页面时,利用浏览器及其插件的漏洞实现恶意程序的下载、执行.近年来,攻击者开始在PDF 和Flash 等文档中嵌入恶意脚本,利用PDF,Flash 阅读器的漏洞来下载、执行恶意程序.攻击向量的载体已经从HTML 页面扩展到PDF,Flash 等文档.通过PDF 文档进行客户端攻击,呈一种上升趋势[60].
以PDF,Flash 为攻击向量载体进行的客户端攻击已经开始得到学术界的关注.虽然PDF 和Flash 在文档格式上与HTML 页面有所区别,但攻击手段本质上都是在文档中嵌入恶意脚本等攻击向量,利用浏览器/阅读器中的漏洞实现恶意程序的自动下载和执行.对于该类攻击的防御,可以借鉴网页木马防御中的一些思路,如Tzermias 等人借鉴PhoneyC 的思路检测恶意PDF 文档。
• 目标攻击平台向手机平台扩展
近年来,智能手机的市场份额在逐步扩大,技术也在不断发展.智能手机浏览环境的逐步发展给用户带来了越来越好的使用体验,但同时也将攻击者的攻击目标吸引到了手机平台.据统计,iPhone,Android 等主流手机平台均存在大量的安全漏洞,而浏览环境的安全漏洞又占据了其中的大部分.2007 年iPhone 首次发布后不久,便被攻击者通过Safari 浏览器上的漏洞攻破,而在2010 年3 月Pwn2Own 全球攻击者大赛上,两名欧洲黑客仅用20s的时间便通过Safari 浏览器成功攻破iPhone.只要用户用智能手机中特定版本的浏览器访问攻击者精心构造的页面,就可能触发恶意代码在智能手机平台上自动执行.目前,针对手机平台的网页木马虽然没有大规模爆发,但由于手机平台浏览环境中存在大量漏洞,针对手机平台的网页木马仍然是一种潜在的安全威胁,值得研究人员关注.
5总结
网页木马作为恶意程序传播的一种重要方式,能够在客户端访问页面的过程中高效、隐蔽地将恶意程序植入客户端,基于Web 的被动式攻击模式使网页木马能十分隐蔽并有效地感染大量客户端,通过内嵌链接构成的树状多页面结构以及灵活多变的隐蔽手段,使网页木马在结构和组成等方面与一些传统的恶意代码形态有所区别.安全研究人员基于对网页木马机理、特点等的把握,在挂马检测、特征分析、防范等方面提出了应对方法.围绕网页木马的攻防博弈仍在继续,网页木马在载体和攻击平台上的扩展也给研究人员带来了新的挑战与机遇.对于安全研究人员来说,与网页木马的对抗是一项任重而道远的工作.
参考文献
[1] 张慧琳,诸葛建伟,宋程昱,邹维.基于网页动态视图的网页木马检测方法.清华大学学报(自然科学版),2009,49(S2):2126−2132.
[2] 张慧琳,邹维,韩心慧.网页木马机理与防御技术.软件学报,2013,24(4):843−858. http://www.jos.org.cn/1000-9825/4376.htm
[3] 韩心慧,龚晓锐,诸葛建伟,邹磊,邹维.基于频繁子树挖掘算法的网页木马检测技术.清华大学学报(自然科学版),2011,51(10):1312−1317.
[4] 许国顺.木马攻击与防范技术研究.四川大学.2006:8.
[5] 梁玲.网页木马植入与防范技术研究「J].太原师范学院学报,2010.3(l):69-73.
[6] http://www.paper.edu.cn/index.php/default/releasepaper/content/201101-761. 诸葛建伟.网页木马现状分析与监测研究〔C].中国科技论文在线:23-24.
[7] 北京大学网络与信息安全实验室.2010 年上半年教育网网站挂马监测分析报告.2010. http://www.edu.cn/scsj_9976/20100907/t20100907_519425.shtml下载本文