一种基于沙箱技术的网页挂马检测系统
2014-02-22
(中国电力科学研究院,北京,100192)
一种基于沙箱技术的网页挂马检测系统
刘 贺, 郝增帅,赵 婷
(中国电力科学研究院,北京,100192)
随着互联网的迅猛发展,网页已经成为人们日常发布和获取信息的重要途径,给人们带来了极大的便利。然而,安全挑战也随之而来,层出不穷的网页入侵手段严重影响着互联网的长远应用和发展,尤其是网页挂马是一个十分泛滥的攻击方式,严重威胁着用户安全。针对此问题,本文提出了一种基于沙箱技术的检测系统,能够动态地检测和抵御网页木马攻击。在安全性上,所提系统通过高交互蜜罐中多个沙箱技术,动态地模拟网页木马攻击过程,进而能够分析和抵御应用层、系统层和内核层的恶意行为,实现了多层检测。在效率上,所提系统采用了轻量级的沙箱技术,在内核层涉及较少调用,着重在应用层HOOK相关API实现检测,提高了效率表现。实验评估分析表明,所提系统能够获得较好的性能。
网页木马;蜜罐;沙箱;动态检测
0 引言
随着计算机网络的普及与广泛应用,网页应用已经成为了网络信息交互的中心,为人们日常发布和获取信息的重要渠道。与此同时,网页应用的安全问题日益突出,相关的安全事件层出不穷,尤其是网页挂马由于传播速度快、病毒载体多样、破坏力等特点给网络用户带来严重的安全威胁。一个典型的网页挂马是指攻击者在网页文件中植入一段漏洞利用代码,在随后访问网马页面时,植入的恶意代码会对指定软件进行攻击,导致系统隐蔽的下载并执行指定的病毒木马程序。本文主要研究了网页挂马的安全检测问题,并考虑了轻量级调用问题。
目前,已经有很多有关网页挂马检测的研究,主要方法可以分为两类:(1)基于特征匹配的静态检测;(2)基于蜜罐或其它的动态行为监测。前者主要根据木马程序本身特征(如代码特征、台结构等),匹配脚本代码是否为恶意木马,做出相应的处理。这种方法简单可性,成本较低,但是其存在固有的缺陷:“特征库”是前提,必须提前获知某段程序是木马,才能从中提取特征供检测使用,而庞大的木马数量使得特征库很难完全搜集,且木马的大量增加增加了搜集难度;加密脚本需要解释成明文才能进行特征匹配,而正常网页一般使用加密技术用以保护知识产权;浏览器插件普及带来的漏洞导致零日攻击增多,使得基于代码特征匹配的检测方法失效。基于蜜罐或其它的动态行为检测主要通过监视可疑的系统调用或修改系统进注册表等异常操作,从而能够实时地判断网页是否受到攻击点和存在安全漏洞。由于动态检测的诸多优点,已经出现了很多相关产品和研究,但仍然面临一些问题:一些产品存在准确性问题,尤其是在面对传播特殊化、变种多样化等的网页木马时,依然存在漏洞和缺陷;一些产品存在效率问题,由于检测过程需要在驱动层HOOK相关大量内核调用,并与应用层通讯,降低了系统效率。
在本文中,我们提出了一个基于沙箱技术的网站挂马检测系统。通过雇佣沙箱技术,所提系统能够动态地判断网站是否被恶意挂马,并且多个沙箱程序的并发执行不相互影响。所提系统考虑了多层的检测实现,具体涉及应用层、系统层和内核层,跨层的设计能够更好地提供检测服务。此外,为了提高检测效率,所提系统采用了轻量级技术,着重采用浏览器应用层HOOK,从而避免昂贵的内核层调用。
本文剩余部分组织如下:第二节介绍一些基础知识;第三节给提出新的木马检测系统,提供详细设计模块和检测流程,设计了轻量级检测;第四节对所提系统进行评估;第五节总结全文。
1 基础知识
1.1 挂马常见形式
目前,网页挂马存在多种攻击形式,这里给出一些常见的网页挂马技术:
1)JS挂马
通过将JS代码写在网页上或者注入网页中,黑客能够让网站远程调取异地JS脚本,并上传到自己指定的网址,其通常代码如下:
document.write("网页木马地址")
2)iframe挂马
通过利用iframe语句,攻击者能够在网页中插入隐藏框架,这也是最早最常见的一种网页挂马技术,其代码通常如下: