网页挂马及其防御.doc_第1页
网页挂马及其防御.doc_第2页
网页挂马及其防御.doc_第3页
网页挂马及其防御.doc_第4页
网页挂马及其防御.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ooo 公司总部o 办事处o 媒体联络o 如何购买o 意见反馈o H3C代理商查询网页挂马及其防御如今在互联网上,“网页挂马”是一个出现频率很高的词汇。关于某些网站被挂马导致大量浏览用户受到攻击,甚至造成财产损失的新闻屡见不鲜。而这些挂马事件总能和一些软件漏洞联系起来。那么,什么是网页挂马?网页挂马和软件漏洞有什么联系?它的危害在什么地方,又该如何防御呢?本文结合攻防研究中的经验体会,将就这些问题进行探讨。网页挂马简介什么是网页挂马要解释什么是网页挂马,要先从木马说起。大家知道,木马是一类恶意程序,和其它的正常文件一样存在于计算机系统中。这些恶意程序一旦运行,会连接到远处的控制端,使其享有恶意程序所在系统的大部分操作权限,例如给计算机增删密码,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等各种有害操作,而这些操作往往不被使用者察觉。将木马与网页结合起来成为网页木马,表面看似正常的网页,当浏览者浏览该网页的同时也运行了木马程序。网页木马利用系统、浏览器或浏览器相关插件自身存在的漏洞,自动下载已经放置在远端的恶意程序。由于下载过程利用了软件上的漏洞,是非正常途径,不会被计算机系统或浏览器本身所察觉。网页挂马指的是攻击者篡改了正常的网页,向网页中插入一段代码,当用户浏览网页的同时执行这段代码,将引导用户去浏览放置好的网页木马。使用一些特别的技术可以使得这段代码的执行对用户来说不可见。网页挂马的危害性浏览器、应用软件或系统总是存在各种各样的漏洞,只要这些漏洞能够被利用并执行任意代码,那么存在漏洞的系统就有可能受到网页木马攻击。网页挂马的技术门槛并不高,互联网上可以得到很多现成的攻击工具。同时网页木马隐蔽性高,挂马所用代码在浏览器中的执行、网页木马的执行和恶意程序的下载运行,用户都无法察觉。网页挂马的传播范围同被挂马网页的数量和浏览量成正比。各种类型的网站都可以成为网页挂马的对象。上述这些原因使得网页挂马成为攻击者传播木马或病毒的最有效手段之一。网页木马下载的木马病毒通常用于盗窃银行卡、网游、电子邮件或即时聊天工具(如腾讯QQ)的账号密码,或窃取私密文件(如私人照片视频等)或私人信息。这些内容一旦泄露,往往会对受害者造成物质或精神上的损失。网页挂马的危害性可见一斑。网页挂马常见类型攻击者往往利用SQL注入、文件包含、跨站脚本、目录穿越等常见的网站漏洞获取到网站的某些权限,并上传Webshell等黑客工具对网页进行修改,这就是常说的网页篡改。一般网页挂马都是通过网页篡改来实现的。网页挂马的方式有很多,下面是几种常见的类型。1. iframe标签这是最常见的挂马方式。只要不破坏原始文件的代码逻辑,通常可以插入文件的任何地方,也叫做框架挂马。它所利用的代码是当被挂马的网页在浏览器中显示时,这段代码也同时被执行,指引浏览器去访问加载了网页木马的页面。由于标签的高度和宽度都设置为0,用户在浏览网页时不会察觉到浏览器访问了这个页面。另外还有一些标签,例如“body”,以及CSS中的“style”等,都可以用作挂马的代码,基本原理和“iframe”标签相同。图1展示了利用iframe标签进行挂马的方式:图1 简单的挂马方式流程图1中,如果浏览器访问了正常网页(/normal.html),也就访问了iframe标签中所指向的网页木马(/trojan.html),而这个网页木马会利用系统上的漏洞去下载木马程序(trojan.exe)。实际中为了增加隐蔽性,攻击者可能会增加中间的跳跃环节,使得真正的网页木马难以跟踪,但攻击流程都相同。2. Javascript脚本利用Javascript脚本可以动态创建一个窗口并调用网页木马,即如下的代码:document.write(iframe )在这里实际的“iframe”标签挂马成为document.write函数参数,依然有同样的效果。还可以做的更隐蔽一些,插入网页的代码为:而文件/abc.js的内容为:document.write();文件abc.js相当于在网站和网页木马之间建立了一个中转站,这个文件可以放在攻击者认为更加安全可靠且网站浏览者能够访问到的地方。此时正常页面中就完全是一个一般的Javascript脚本内容,更加难以察觉。3. 结合SQL注入如果通过SQL注入的方法可以直接修改后台数据库的内容,那么攻击者就可以将要插入的代码直接写入到数据库中。假设某个数据库中存放的是广告页面,其中每个表项都有一个列用来存放广告页面的链接地址。攻击者可以将插入的代码放到链接地址中,如:update news set title=这样所有调用并显示该广告的网页都将被挂马。至于如何做到SQL注入则超出了本文的讨论范围,有兴趣的读者可以参考安全团队的相关主题文章。4. 图片伪装还可以利用图片木马生成器产生一个含有木马的图片,并修改图片名称,以吸引上网者浏览这些图片。如图2:图2 伪装成图片的网页木马这里的usa.gif文件实际上是一个网页木马,当浏览器打开这个图片时,该木马就会自动运行。5. URL欺骗攻击者可以通过各种技术手段对实际的网页木马URL进行伪装。下面的代码就是一种常见的形式。 function www_163_com ()var url=81/wrsky.html;open(url,NewWindow,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10);这段代码执行后,页面上会显示出正常的门户网站的链接信息,浏览者不会怀疑。但是当鼠标移动到链接上后,却打开了网页木马的页面。以上是常见的网页挂马类型,实际的挂马会根据编程语言以及具体网站环境的变化而有所不同。网页挂马的防御1. 防御的总体思路前面介绍了和网页挂马相关的基本概念以及网页挂马的常见类型。图3展示了一个完整的网页挂马的流程步骤。图3 网页木马、网页挂马和恶意程序从图3可以看出,网页木马之所以能够攻击成功,是因为网站自身存在漏洞导致网页被篡改、浏览器或操作系统存在漏洞、网页木马的下载执行和恶意程序的下载执行等几方面因素共同造成的结果,这也是网页挂马防御的着眼点。从本质上看,这些因素实际上都是网络行为,都是在网络上传递的数据,因此,要想防御网页挂马,就要切断这些恶意数据的传播。图4就从这个角度阐明了网页挂马防御的思路:图4 网页挂马防御思路图4说明,前述导致网页挂马攻击成功的因素,都可以通过网络中间的安全设备来进行识别,阻断其传播。下面分别说明如何实现这些防御。2. 对网站/网页的防护我们可以采取一些主动的措施(如在网络中增加IPS设备)来防止网页被挂马,并利用技术手段(设定开启适当的IPS规则)识别被挂马的网页。1) 拦截对网站的攻击如果网站不被攻击利用,那么挂马就无从谈起。加强网站自身的安全性是防止网页被挂马的基本前提。常见的网站漏洞包括SQL注入、跨站脚本、文件包含、目录穿越等,这些漏洞往往是代码级的,与网站本身关系很大,其中SQL注入是最常见的攻击方式。此外还有一些权限设置等网站管理方面的问题也可能给攻击者制造机会,例如对上传文件过滤不严可能会使得攻击者上传Webshell进而篡改网页。虽然网站开发者和管理者的研发能力及安全意识能在很大程度上提高网站的安全性,但随着网站规模的扩大和复杂度的提高,存在漏洞总是在所难免。安全分析人员需要在对网站漏洞深刻理解的基础上,开发出有足够精确度的攻击规则,保证IPS设备能够针对上述常见的网站漏洞进行有效的防御下面是一条SQL注入的IPS攻击规则,用于防护采用ProductCart产品的网站:图5 一条SQL注入攻击规则由于SQL注入攻击的普遍性和高发态势,还需要专门设计一些特殊的防御规则。这些规则与网站自身的SQL注入漏洞原因和形式无关,而是针对攻击方式本身进行识别防御,有效的提高了规则使用的通用性,特别是能够对尚未公开的注入漏洞进行积极主动的防御。如图6所示,和exec函数有关的SQL注入攻击规则:图6 和exec函数有关的SQL注入攻击规则2) 识别被挂马的网页如果网站已经受到攻击,网页被篡改,此时需要识别出被挂马的网页,并提示用户可能存在的风险。网页挂马的类型有很多,研究中发现前文所列举的都是最常见的方式。如果网页中存在类似这些挂马类型的代码,则网页被挂马的可能性就比较大。以下的攻击规则(如图7)能够在一定程度上识别出挂马方式,帮助用户对目前的上网环境进行安全评估。但在某些网页中也有一些正常功能的实现和网页挂马方式有类似甚至相同的地方,因此这种防御方式存在一定的误报。图7 通过挂马方式进行防御的攻击规则3. 用户侧的防护1) 保护浏览器/软件不受攻击如果受害系统的软件上不存在漏洞或者针对漏洞的攻击被识别和拦截,那么网页木马也不会产生什么危害。但事实上,浏览器或系统软件本身一般都存在如缓冲区溢出、堆溢出等类型的漏洞,其中很多都可以被攻击者利用并执行任意代码,这也是网页木马能够成功执行并下载恶意程序的关键原因。虽然大多数漏洞的发现者只将漏洞信息报告给相关厂商,外界对其产生原理和利用方式知之甚少,也基本能够消除大范围产生危害的可能性。但有些漏洞的产生原理甚至攻击代码还是能够在互联网上获取到,特别是一些0day漏洞,在官方发布正式补丁之前,往往会造成相应网页木马的广泛传播和网页挂马的大量发生。漏洞的产生一般都和特定的函数、函数参数或特定的代码执行顺序有关,对漏洞原理和攻击方式的深入分析能够帮助我们提出行之有效的防御措施。由于各种原因,并不是所有的操作系统都能及时安装官方发布的补丁,这使得这些系统始终处于危险之中,因此成熟的防御设备须能够保护被常见的网页木马所利用的漏洞。举例来说,MS09-002((MS09-002)Microsoft Internet Explorer 未初始化内存远程代码执行漏洞)是一个因为IE初始化内存时存在的问题而导致的漏洞(图8)。由于在各个IE版本上都存在,同时是一个0day漏洞,因此利用该漏洞的网页木马和挂马行为一度对互联网产生很大危害。如果对利用该漏洞的网页木马,包括一般性变种的攻击行为进行分析,就能够做到准确识别并拦截。如果网页木马本身无法下载到受害系统并执行,那后续的攻击便无从谈起,从而实现对网络的有效保护。图8 MS09-002攻击规则如果对于攻击的理解和分析不够全面,跟进不够及时,那么对于一些新出现的木马变种,这种识别方式有可能产生漏报。2) 防止恶意程序的下载网页挂马的最终目的一般是要将恶意程序下载到受害系统,使其运行并做出一些破坏性的行为。如果用户端的系统已经浏览了被挂马的网页,并且自身已经受到了网页木马的攻击,那么这时的防护措施就是阻止恶意程序的下载。大多数情况下恶意程序都放置在一些不常见的免费域名地址中,而正常情况下用户很少主动到这些域名中下载可执行文件,因此从这些域名下载可执行文件的行为很有可能是网页木马所为。识别这些行为自然也成为了网页木马防御的一部分。当然,一些私人用户还是有可能在自己申请的免费域名中放置一些可执行文件供其他人下载,因此这种方式存在一定的误报率。4. 新的防御手段使用IPS进行防御虽然可以有效防御网页挂马,但需要定期更新特征库或病毒库,以保证对于最新漏洞和攻击的保护和识别,有一定滞后性。目前看来这个更新周期已经足够短,不过不排除在间歇期爆发网络攻击行为的可能。目前出现了一些新的方法,成为挂马防御的新趋势和IPS防御的有效补充。在网站方面,除了增加安全性控制,以及定期进行安全漏洞扫描之外,还可以对网站的运行状态进行监控,对网页进行动态跟踪扫描。如果网页发生了变化(例如针对hash值进行比较)且这种变化未受网站管理或开发人员的控制,那么该网页就有被篡改的可能。另外也可以对服务器上所有运行的程序进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论