基于源代码分析的Web恶意代码探测方法
Ю. И. ВОРОТНИЦКИЙ1 谢金宝2
(1白俄罗斯国立大学 无线电物理和电子学系,白俄罗斯明斯克 220064;
2哈尔滨理工大学电气与电子工程学院,黑龙江 哈尔滨 150040)
摘 要 网页是网站与用户交互的界面,同时也成为黑客利用的场所。本文详细分析了网页上的挂马形式,提出一种基于源代码分析的恶意代码探测方法,通过分析网页源代码来识别网页是否被植入恶意代码。此方法不需执行代码,应用安全、简单、直接、有效。
关键字 恶意代码;源代码;网页挂马;代码识别
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
(责任编辑:adminadmin2008)
相关阅读:
- 容器是如何让“一切都是代码”成为现实的 2015.08.20
- 如何快速掌握一门新技术/语言/框架 2015.08.17
- 建高效数据中心有径可循 2015.08.17
- 2015黑帽大会:网络灾难后 重建IT安全 2015.08.13
- 面对DNS劫持 企业移动应用该如何防护? 2015.08.12