王玉玺++卞凤++周文军
摘要:Web应用型恶意代码对网络环境造成了极大的安全威胁,针对该类恶意代码种类繁杂、检测防御困难等问题,对其攻击原理进行了分类描述;并以静态、动态检测方法为基础,先后分析了静态特征码和动态行为两种常用Web恶意代码检测技术的检测机制,指出了两种技术的优缺点;最后对动静结合检测技术的研究方向进行了展望。
关键词:Web恶意代码 攻击原理 静态检测 动态检测
中图分类号:TP309.5 文献标识码:A 文章编号:1007-9416(2016)12-0218-02
1 Web恶意代码的威胁现状
Web应用作为一种常见的网络应用方式被广泛使用,而针对Web应用的恶意代码问题对互联网的安全构成了严重威胁。根据2016年1月发布的《2015年度互联网安全报告》,2015年新发现的恶意代码数为1.45亿个,较2014年增加了5%;从恶意代码类型分析,前十位的如广告推广类木马、恶意下载器、间谍程序等均与Web应用相关。360互联网安全中心在2015年12月公布的《2015年度中国网站安全报告》数据中指出,其网站安全检测平台2015年共扫描各类网站231.2万个,扫出存在漏洞的网站101.5万个,占比为43.9%,较2014年增长了64.5%;从拦截漏洞攻击次数最多的漏洞类型来看,大部分仍是针对Web应用。
以传播恶意代码为目的的Web恶意链接遍布网络,用户访问这些恶意链接时,主机被恶意代码感染。攻击者利用这些恶意代码盗取用户主机私密信息,如账号、密码、网银信息等;此外,攻击者还会利用大量受感染的主机发起分布式拒绝服务攻击。以上行为导致了严重的安全后果,因此,实现对Web应用恶意代码的快速分析检测,对于保护互联网安全具有重要意义。而攻击者常变换代码传播、攻击的方法以应对现有的防火墙和入侵检测技术,给恶意代码的检测防御带来困难。
2 Web恶意代码的攻击原理
恶意代码又被称作恶意软件,主要是指在未经系统使用者授权的情况下运行,以破坏系统可用性、窃取系统信息为目的的计算机程序或代码,主要的存在形式如病毒、木马、蠕虫、后门等[1]。而针对Web应用的恶意代码是恶意代码家族的一种特殊表现形式,该类恶意代码存在于Web应用中,当用户通过网络访问这些Web应用时,恶意代码被下载到客户端执行,以完成攻击者的入侵目的。由以上定義可知,在一次完整的Web恶意代码传播过程中,涉及三个关键角色:包含恶意代码的Web站点、用户、攻击者;以这三个角色出发分析Web恶意代码的攻击原理。
2.1 基于社会工程学的攻击方式
攻击者借助社会工程学原理[2],利用Web用户好奇、贪心等人性弱点,诱骗用户下载并安装恶意代码软件,以达到入侵目的。例如攻击者在Web站点中添加某些免费的热门软件链接,此链接的目标是包含恶意代码的文件,用户出于需要下载并安装了该链接目标文件,攻击者轻而易举的完成了入侵过程。社会工程学攻击的另一种典型方式是使用钓鱼网站,攻击者通过链接诱骗用户访问与真实网站相似度极高的钓鱼网站,以窃取用户机密信息或自动安装恶意代码软件等。基于社会工程学的攻击方式最典型的特点是利用用户的认知偏差,而非利用系统本身漏洞完成攻击过程。
2.2 基于路过式下载的攻击方式
路过式下载国外称为Drive-by download[3],在典型的路过式下载的攻击方式中,攻击者针对用户浏览器或系统漏洞,将包含恶意代码的脚本写入Web站点中,当用户访问包含恶意代码的网页时,会在不知情的情况下自动下载并安装恶意代码软件,从而完成攻击者的入侵目的。一次完整的路过式下载攻击可分为三个阶段。
2.2.1 攻击者植入恶意代码
攻击者首先通过Web服务器漏洞将准备好的恶意代码植入到具有较高访问量的Web站点页面中。被植入恶意代码的主要功能是通过iframe、网页重定向等技术将用户自动引导至恶意软件宿主页,这种自动引导可能是直接引导至宿主页,也可能是经过多次跳转后到达宿主页。
2.2.2 扫描并利用用户漏洞
当用户访问Web站点中包含恶意代码的页面时,站点服务器将该页面发送到用户浏览器执行,执行过程中恶意代码会扫描当前用户系统可利用漏洞,从而得到所需的系统权限,为下载、安装恶意软件做准备。常见可利用的漏洞有浏览器API型漏洞、浏览器解析型漏洞、内存溢出型漏洞等,攻击者常会针对系统、浏览器、插件版本的多个漏洞编写恶意代码,已实现攻击效果的最大化。
2.2.3 下载并安装恶意代码软件
攻击者通过用户系统漏洞得到相应的系统权限后,恶意代码的核心部分得以运行,用户被自动引导至宿主站点,在不知情的情况下下载、安装恶意代码软件,恶意代码软件常见的类型有木马、病毒、后门程序、间谍软件等。攻击者使用这些恶意软件窃取用户的私密信息,或将用户主机加入僵尸网络,进行其它类型的网络攻击。
综合以上攻击原理分析,与社会工程学攻击方式相比,路过式下载攻击方式是利用用户系统漏洞,在用户不知情的情况下自动完成,具有较高的隐蔽性和更大的危害性,也是攻击者普遍使用的一种恶意代码传播方式,以这种攻击方式为基础,分析Web恶意代码的检测技术。
3 Web恶意代码的检测技术
Web恶意代码的种类数量日益增多,快速有效地检测出被植入恶意代码的网页并及时清除恶意内容,可有效阻止攻击者对用户的入侵。国内外针对恶意代码主流的检测技术主要可以分为两类:静态检测和动态检测[4]。下面以这两类中较为常用的检测技术进行分析。
3.1 静态特征码检测技术
目前,大部分主流反恶意代码软件对Web恶意代码的检测广泛使用静态特征码检测技术[5]。攻击者一般用脚本语言生成Web恶意代码,这部分代码从机器角度观察就是一段二进制字符串序列,而同一类型Web恶意代码入侵手段相同,其部分特征代码也相同。对包含恶意代码的Web页面进行逆向分析,归类提取出该恶意行为所对应的字符串序列,即可作为此类Web恶意代码的特征标识,不同类型的Web恶意代码提取出的特征字符串共同组成恶意代码特征码库。当对未知网页进行检测时,只需将网页源码与特征码库中的特征字符串进行比对,若匹配成功,则可判断被检测的Web页面中包含恶意代码。
静态特征码技术对已知的Web恶意代码检测快速简单、准确性高、误报率低。但根据原理可知,其检测的过程完全依赖于特征码库,如果某种恶意代码的特征码并未加入特征码库,那么该检测方法失效。由于新类型的Web恶意代码不断出现,攻击者常使用的多态、变形、混淆技术使得同一类型Web恶意代码也具有不同的特征码,从而导致静态特征码技术对未知恶意代码的检测效果较差。
3.2 动态行为检测技术
从Web恶意代码攻击行为分析,与其它类型的恶意代码对比呈现行为的特殊性。Web恶意代码一般通过客户端浏览器完成植入,此过程中会尽可能的利用客户端系统漏洞,如用户浏览器漏洞、ActiveX控件漏洞,PDF对象漏洞、Flash播放插件漏洞等,而在利用漏洞时会针对性地调用某些典型函数以达到入侵目的;此外,在入侵后的执行阶段会调用所需的dll库以完成修改注册表、关闭杀毒软件、后台传输信息、远程控制等操作。以上入侵、执行过程中所表现出的行为特征可應用于Web恶意代码检测与分析,将这些具有共性的行为特征汇集组成Web恶意行为规则库,同时定义Web应用程序的合法行为规则库,在Web应用执行过程中,实时监控其行为,综合多种行为所归属的规则库,进而判断该应用中是否包含Web恶意代码。对恶意行为特征的动态实时监控可以通过虚拟机或沙盒系统实现,虚拟机和沙盒系统提供的虚拟环境是对真实客户端系统的仿真,能像真实操作系统一样运行Web应用程序,并动态跟踪、收集应用程序的运行状态及产生的行为,作为判断程序是否恶意的基础。
动态行为检测的一种典型实现方法是通过高交互客户端蜜罐[6]。此类蜜罐系统中安装了真实的客户端操作系统和浏览器,存在Web恶意代码入侵所需要的各种安全漏洞;结合网络爬虫技术,蜜罐系统可以通过浏览器主动访问各种Web应用,并监视和记录访问过程中客户端系统中的所有行为和状态变化;访问完成后,对记录的行为和系统状态变化进行分析,以行为特征判断Web应用中是否存在恶意代码。
动态行为技术重点关注Web恶意代码运行时的行为特性,而非代码本身的编码序列,所以相对于静态特征码技术,不受多态、变形、混淆技术的影响,对已知或未知类型的Web恶意代码都可以检测,具有直观、快速等特点。但该检测技术需要依托一个真实的计算机系统实现,因此系统代价和时间代价较高;同时,由于操作系统、浏览器、插件的漏洞版本众多,如果检测环境中安装的漏洞版本与恶意代码入侵所需利用的漏洞对象不匹配,就会使得该恶意代码无法运行,检测不出其行为特征,从而导致漏报。如何有效降低动态行为检测技术的漏报率是该领域研究的重点。
4 结语
Web恶意代码的各类检测技术原理不同,优缺点各异。静态检测技术准确性高、误报率低,但对未知恶意代码的检测效果差;动态检测技术对可快速识别未知类型恶意代码,但漏报率高,检测效率低;两种检测技术都存在较为明显的缺陷。近年来,动静结合的混合检测技术成为研究热点,它结合了静态、动态两类检测技术的优点,改进了两类检测技术存在的缺陷,有效提高了检测的准确率和检测效率。Web恶意代码处于不断地发展变化中,更多新型的植入和隐藏技术被应用于反检测领域,因此,应综合运用多种检测技术才能达到全面防御目的。
参考文献
[1]Egele M,Scholte T,Kirda E,et al.A survey on automated dynamic malware-analysis techniques and tools[J].ACM Computing Surveys,2012,44(02):6.1-6.42.
[2]Kevin Mitnick. The Art of Deception:Controlling the Human Element of Security[M].New York:Wiley,2005.
[3]M Cova,C Kruegel,G Vigna.Detection and analysis of drive-by-download attacks and malicious JavaScript code [J].International Conference on World Wide Web,2010,26(01):281-290.
[4]李阳.恶意代码检测及其行为分析[D].西安:西安电子科技大学,2010.
[5]刘旭.恶意代码的检测技术研究[D].长春:吉林大学,2014.
[6]诸葛建伟,唐勇,韩心慧,等.蜜罐技术研究与应用进展[J].软件学报,2103,24(4): 825-842.