Web安全之网页木马的检测与防御
随着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/BASE64处理的漏洞,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图片文件,在网页中添加如 <img src="love.bmp" >的代码来欺骗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 只能模拟已知的漏洞插件,无法检测利用零日漏洞的恶意脚本.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论