文章信息
- 尹正光 , 余荣威 , 王丽娜 , 刘维杰 , 宋衍 , 谈诚 . 2016
- YIN Zhengguang, YU Rongwei, WANG Lina, LIU Weijie, SONG Yan, TAN Cheng . 2016
- 基于虚拟机回放的恶意行为检测技术
- echniques for Detecting Malicious Behavior Based on Virtual Machine Replay
- 武汉大学学报(理学版), 2016, 62(5): 437-443
- Journal of Wuhan University(Natural Science Edition), 2016, 62(5): 437-443
- http://dx.doi.org/10.14188/j.1671-8836.2016.05.006
-
文章历史
- 收稿日期:2015-08-26

2. 信息保障技术重点实验室,中国 北京100072
2. Science and Technology on Information Assure Laboratory, Beijing 100072, China
虚拟化技术作为云计算关键技术其地位日益凸显[1],但虚拟化安全问题也日益突出,如虚拟机之间的恶意通信,虚拟机逃逸,跳跃攻击,VMDoS等[2].对安全问题表现出来的恶意行为做检测分析是目前虚拟化安全领域重要研究方向.针对恶意行为的检测技术可以分为面向主机的恶意行为检测、面向网络的恶意行为检测和混合检测.
面向网络的恶意行为检测技术方面,Wen等人[3~7]采用基于签名的网络分析手段,探测应用层云用户行为.基于签名的入侵检测技术虽然可以用来探测已知的攻击,但是未知攻击检测能力不足.
面向主机的恶意行为检测方面,Vieira等人[8, 9]采用异常检测技术分析系统行为信息,虽然提供了快速检测机制,但HIDS本身安全性难以保证.由于虚拟机控制器(virtual machine monitor,VMM)具有更小的可信基和隔离性[10],因此Garfinkel等人[11]将VMI机制引入到入侵检测系统中并部署在VMM层,但是这些主机级检测数据来源于虚拟机内部,难以应对如DoS[12]等网络攻击行为的检测.
混合检测方面,Jin等人[13~16]结合HIDS和NIDS的优势部署了混合检测系统,但这些混合系统缺乏综合信息评判,警报过多易产生警报泛滥.
本文提出了一种基于虚拟机回放的恶意行为检测模型VMR-DM(VM Replay-based Detection Model),该模型在VMM层部署HIDS和基于VMI的主机检测系统,通过行为关联图算法,将多源警报关联,获得综合评判,最后通过虚拟机回放机制,对系统事件回放验证,过滤虚假警报.
1 模型设计VMR-DM模型结合NIDS和基于VMI的监控技术,实现网络层和虚拟机内部的综合监控,并通过行为关联算法获得告警信息,同时为了保证检测警报的准确性,提升IDS对未知的攻击的检测能力,引入了虚拟机回放技术,对发出警报的虚拟机进行指令流的重新回放,确认虚拟机在指令执行的过程中是否偏离正常的执行轨迹,从而确认警报的有效性和发现未知的攻击方式.最后根据新的攻击方式和特征产生新检测策略,提高系统检测能力.图 1展示了VMR-DM攻击检测模型.
|
| 图 1 VMR-DM检测模型 Figure 1 VMR-DM detection model |
下面从综合检测、行为关联和基于虚拟机回放的预警确认三个方面描述VMR-DM检测模型.
1.1 综合检测虚拟化环境中,常规的入侵检测系统数据来源单一,只能解决单点安全问题,缺乏有效的全局安全分析[17].本文利用NIDS检测和基于VMI的虚拟机检测获得网络级和系统级综合安全状态,这种综合检测方法能有效解决单点安全问题.
NIDS检测主要通过监测每台虚拟机网络流量来检测网络行为.NIDS将采集到的流量信息送到检测引擎,检测引擎通过统计分析、完整性分析和规则匹配等技术手段发现恶意行为,并对可疑威胁告警.
基于VMI的虚拟机检测主要从VMM 以及Xen的特权域中获取虚拟机的运行状态信息,包括CPU状态、内存和磁盘空间使用情况、监控敏感文件、系统文件状态变化,发现恶意行为,并发出告警信息.
1.2 行为关联传统IDS告警泛滥的主要原因是综合分析不足,导致警报重复,增加系统负担.本文提出基于行为关联图的警报关联算法,将多源攻击行为的警报关联,并利用剪枝技术降低报警的数量,减轻后期虚拟机回放开销.
首先对警报事件的相关问题进行如下定义:
定义1 alt_attr(ct|esi|dt|at|as):alt_attr表示警报属性,其中ct表示警报发出的时间,esi表示攻击事件信息,dt表示事件被检测到的时间,at表示警报所对应事件的攻击的目标,as表示警报所对应事件的来源.
定义2 alt(altID|alt_attr|alt_trusty):alt表示警报事件,altID表示警报ID,alt_attr表示警报属性,alt_trusty表示警报可信度.altn和alth分别代表网络级警报和主机级警报.
定义3 关联关系:顶点vi与vj关联,当且仅当vi与vj有相同的攻击源,并按照时间上的偏序关系记为:(vi→vj),表示vi先于vj发生.
定义4 行为关联图(Behave Associated Graph,BAG):行为关联图可以定义为G(V,E)的一个有向图,其中顶点集V是警报的集合,边集是攻击源集合.当顶点vi∈V与vj∈V关联,则存在一条边e(vi→vj).
定义5 关键点:顶点vk是关键顶点,当且仅当同时存在两条边e(vi→vk)和e(vk→vj).
在指定的时间窗口内,从警报信息中抽取出每个警报的攻击源信息,根据关联关系构建初始BAG.其算法描述如下:
构建BAG图的过程,如图 2所示.图 2(a)和(b)显示构建基于网络的BAG图和基于主机的BAG图.为了将基于网络的BAG图与基于主机BAG图 关联起来,需要遍历整个主机BAG图,寻找携带了端口信息的警报,将该警报与网络BAG图中的警报作匹配,若其来自同一端口,则匹配,即寻找到了关联关系.例如,图 2(b)的w4有端口信息,并且与图 2(a)中v3是一个端口,则根据端口号和时序关系作为关联关系,构建一条边e(w4→v3),这条边将(a)、(b)两图关联起来,如图 2(c) 所示.获得整体关联图之后,对BAG图剪枝.剪枝的方法是寻找关键点(定义5),找到关键点之后保留BAG图中的关键点与关键点之间的边,并将非关键顶点合为一个顶点,结果如图 2(d)所示.这样,基于网络与基于主机的行为信息就融合在一起了,并且减少了警报次数,从而避免警报泛滥.
|
| 图 2 BAG图关联 (a) 基于网络的BAG图,(b) 基于主机的BAG图,(c) 基于端口的关联结果,(d)(c)剪枝之后的结果 Figure 2 BAG graphic Correlation (a) network-based BAG diagram,(b) host-based BAG diagram,(c) the results of the associated port from (a) and (b), (d) the result after pruning from (c) |
| Algorithm:Behave-based Alert Correlation |
| Input: G(V,E)={ø},V={ø},E={ø}, |
| G′(V′,E′)={ø},V′={ø},E′={ø}. |
| Output: G′(V′,E′) |
| 1 loop: for each alti ,altj |
| 2 if alti,altj has common as then |
| 3 add alti,altjto V |
| 4 if ct(alti)<ct(altj) then |
| 5 add e(alti→altj) to E |
| 6 else add e(altj→alti) to E |
| 7 end |
| 8 else add alti,altj |
| 9 end loop |
| 10 loop: for each vk∈V |
| 11 if exist vi,vj,and exist e(vi→vk),e(vk→vj) |
| 12 add vk to V′ |
| 13 end loop |
| 14 if exit e(vi→vk),vi∈V′ and vk∈V′ |
| 15 add e(vi→vk) to E′ |
| 16 end |
入侵检测系统中存在大量的误报信息,通过训练分析构建警报过滤模型来确认警报的方式,大量消耗了系统时间[18],即使建立了模型也难以应对入侵模式不断变化的攻击行为.
虚拟机回放机制具有快速记录事件,后台精准分析的特性[18~20],本文将回放机制应用到虚拟机恶意行为检测与分析中,能够根据警报信息分析攻击事件的行为轨迹,发现恶意行为,这样既避免了过滤模型的构建减少了系统开销,并且这种行为轨迹回放更能精准确认警报真实性.
基于回放的预警确认首先通过截获中断和数据的方式记录下系统中的一系列不确定性事件,然后在记录后的某一时间点,在具有相同配置的系统上回放攻击事件,分析执行过程中是否存在恶意指令流和执行过程,从而达到对警报的确认.回放操作由告警信息触发,主要由事件记录和回放两部分组成.
日志记录用于截取并记录不确定性事件,根据事件之间的严格时序关系,对所有的事件源中得到的事件进行排序,然后把所有的记录都存放到记录文件中.
日志回放用于执行回放操作,根据记录阶段捕获的事件时间戳、事件数据以及事件之间的先后关系重新生成事件,同时利用性能计数器来确定回放时间点,将新生成的事件注入虚拟机中,实现精准的回放.回放过程查看事件行为轨迹,确认事件是否发生偏离,从而可以确认警报正确性.
2 原型实现基于上述理论,本文实现了基于Xen半虚拟化技术的原型系统,系统主要包括综合检测模块、预警分析模块和基于虚拟机回放的预警确认模块.
2.1 综合检测模块在综合检测模块中,监控数据来源如表 1所示.
| 来源 | 功能 | |
| 网络流 | 网络特征提取 | |
| 网络日志 | 网络行为分析 | |
| 内存信息 | 攻击活动和攻击模式分析 | |
| 进程信息 | 隐藏进程分析,异常行为统计 | |
| 文件读写 | 数据文件完整性评估 | |
| 系统日志 | 系统事件记录与追溯 |
主程序为虚拟机创建两个默认配置的守护进程:NIDS进程和VMI-HIDS进程.
NIDS进程利用Linux系统内核集成的Netfil-ter框架,在内核模块网络协议解析的各个阶段插入钩子函数,通过libpcap在网络后端驱动截获所有的网络数据包,并将网络数据包根据对应的虚拟域编号来分发给对应的NIDS进程处理.NIDS进程从特征库中提取规则,将规则与网络数据包进行匹配,从而发现恶意网络流量,并产生警报.
VMI-HIDS进程主要是利用VMI机制中vmi_translate_ksym2v函数获取使用DomU对应的内核符号表System.map,通过该表定位初始进程描述符init_task和TCP连接信息块tcp_hashinfo地址,得到这两个全局地址后,可以遍历整个进程描述符表和所有TCP连接信息的网络连接表,再通过语义重构技术,消除系统的语义断层以重构被监控的虚拟机的进程队列和网络连接队列,从而获得由机器页号到虚拟机内存地址的映射,通过遍历这些队列就可以获得进程、内存信息,再利用交叉视图,查找出统计进程列表all-tasks和可运行队列per-cpu-runqueues的差别辨别出隐藏进程,再通过重构所有打开文件信息、进程占用的网络连接信息,追踪和定位恶意进程,并发出警报.
2.2 预警分析模块预警分析主要功能就是警报关联[21].警报关联过程主要在获取的警报消息中提取各种不安全事件进行数据对齐及将同攻击源事件进行关联.
1) 数据对齐:数据对齐主要针对时间和空间的对齐.对于时间,主要是通过时间同步机制来保证安全事件的时间的一致性,将同一时间窗口内的数据进行关联;对于空间,通过分析数据来源,利用拓扑获取技术获得全局拓扑,并将数据对应到相应的地址空间.
2) 警报关联:关联的依据包括警报依存关系、时序关系.攻击者对目标主机进行一次攻击时,有可能产生多个警报信息,这些警报有相同事件源.对这些同源警报采用行为图的关联分析,可以减少警报次数.
2.3 基于回放的预警确认模块回放是通过截获中断和数据的方式记录下系统中的一系列不确定性事件,然后在记录后的某一时间点回放攻击事件,分析执行过程中是否存在恶意指令流的执行过程.该模块主要由记录模块和回放模块组成,总体架构如图 3所示.根据回放模块功能,本文实现了回放系统VMR2S.
|
| 图 3 基于回放的预警确认模块架构 Figure 3 Architecture of replay-based precaution validation module |
日志记录过程是根据事件之间的严格时序关系,对所有的事件源中得到的事件进行排序,然后把所有的记录都存放到指定文件中.在日志传输过程中,采用基于Xen与Dom0共享内存的传输机制,在Xen与Dom0中由Xenheap创建一块共享的缓冲区,用于存储记录模块生成的日志.使用相关的宏把这一块内存在Xen中的虚拟地址转换成为机器页号,然后通过Xen提供的API与Dom0共享.通过内存共享机制减少了地址切换,提高了日志记录和回放过程中的传输效率.
回放过程是由在DomU中的回放守护进程完成.它每次从性能计数器日志中取出一个值,写入到性能计数器中.当性能计数器溢出时,系统会得到一个不可屏蔽的PMI,在回放启动前已经注册的回调函数会运行,激活Dom0中的中断模拟线程,向前后端的共享内存环中注入中断伴随的外部数据,然后向前端发出虚拟中断,完成一步回放.然后回放模块再取出下一个性能计数器的值,周而复始地回放,直到取完最后一条数据或者用户强行终止回放.
3 实验分析原型系统搭建在一个由物理主机通过Xen虚拟化技术创建的虚拟化环境中,在该主机中创建了4台虚拟机,在Dom0中部署三种系统:NIDS、VMI-IDS、VMR2S,分别用于网络监控、虚拟机内部监控和虚拟机回放.
3.1 实验环境本文使用的物理主机硬件环境是Intel Core(TM) i5-3470处理器,4GB内存,1TB硬盘;虚拟环境Dom0与DomU配置为:Dom0,2 048MB内存,占用4个VCPU;DomU,512MB内存,占用2个VCPU;Xen版本为4.4.0 .
在实验中,搭建三台主机构成的网络环境,一台部署原型系统,一台作为部署了Metasploit的外部攻击机,一台作为部署了Blaster的背景流量发生器.并在部署了原型系统的主机中选择一个虚拟机作为内部攻击机,如图 4所示.
|
| 图 4 实验场景 Figure 4 Test environment |
为了检测VMR-DM的检测效果,本文将VMR-DM与基于网络的入侵检测Snort2.9.2 .2 [22]和VMI-IDS进行对比实验.用攻击机对系统发起攻击,用上述三种检测系统作检测,取每次检测结果的准确率和误检率数值对,绘制ROC曲线.如图 5所示.图中显示了三种检测系统的ROC曲线图,从图中可以获知,VMR-DM曲线与横轴所围成的面积大于Snort和VMI-IDS,Snort曲线与横轴所围成的面积略大于VMI-IDS.由ROC曲线的意义可知,ROC曲线下方的区域越大,检测系统的准确率越高.因此从图 5中分析可知,VMR-DM的检测效果优于Snort和VMI-IDS,进而说明单独部署基于网络的入侵检测和基于主机的入侵检测能力不及VMR-DM.
|
| 图 5 准确率和误检率ROC曲线 Figure 5 ROC curve for accuracy rate and false positive |
本部分针对虚拟机回放对检测系统所带来的回放开销、性能开销、时效性做测试.
回放开销是指回放时从性能计数器中断发生开始算起到按键最终被投递到虚拟机中时的时间.这个测试直接使用性能计数器作为计数基准,对性能计数器取3次值,一次是获取数据时性能计数器的值ta,一次是投递事件时性能计数器的值tb,一次是回放一个字符到完成性能计数器的值tc.那么回放一个字符所占用的时间是tc-ta,排除回放的影响正常投递时间是tb-ta,回放总时间是tc-tb.图 6画出了tc-ta和tc-tb的时间.可以看出,回放总时间和正常投递时间的每组数据相差无几,说明日志回放的开销不大.
|
| 图 6 日志回放开销 Figure 6 Log replay overhead |
为了进一步测试VMR2S的开销,将VMR2S与基准回放系统ReVirt[17]进行比较.图 7显示由10次回放次数所记录系统开销的时间构成的曲线图.对该10次取算数平均值,可得ReVirt回放一次事件的开销平均开销约为275 μs,而VMR2S回放一个事件的平均开销约为215 μs.所以VMR2S比ReVirt的开销降低了约21.8%.
|
| 图 7 性能比较 Figure 7 Performance comparison |
时效性的测试是通过对用户空间中断模拟线程的处理开销和Xen的Xenconsoled处理[23]开销作比较,记录1~10次两者处理所耗费的时间,其测试结果如图 8所示.对1~10次测试耗费时间做算数平均值得到Xen每个按键事件所花费的平均时间约为400 μs,而用户空间中断模拟线程处理每个回放记录所花费的平均时间约为250 μs.可以看出,回放模块处理一个按键事件所花费的时间不大于xenconsoled所花费的时间,这样可以保证事件在较短的时间内到达虚拟机DomU中,及时地触发回放操作.
|
| 图 8 事件投递精确性测试 Figure 8 Event delivery accuracy test |
本系统利用了虚拟机的隔离性和特权域在虚拟化平台中的管理权限,在客户虚拟机外部(特权域中)对客户虚拟机的网络流量和进程进行透明监控,对虚拟机的回放,虚拟机无法感知,从而保证了系统安全性.
4 结 论本文针对虚拟化环境下恶意行为检测存在的问题,提出了一种基于虚拟机回放的检测模型,模型包括了混合入侵检测、行为图关联算法和基于回放的预警确认,虽然在一定程度上降低了误报概率,减少了系统开销,但是并没有有效解决漏检问题,同时系统开销还有提升空间.
在以后的工作中,我们将从降低漏检率和策略更新机制上做研究,试图通过降低漏检率进一步提高检测效率,并通过策略更新机制约减检测过程从而提升系统性能.
| [1] | CARVALHO M, CIRNE W, BRASILEIRO F, et al. Long-term SLOs for reclaimed cloud computing resources[C]//Proceedings of the ACM Symposium on Cloud Computing. New York: ACM, 2014: 1-13. |
| [2] | PEREZ-BOTERO D, SZEFER J, LEE R B. Characterizing hypervisor vulnerabilities in cloud computing servers[C]//Proceedings of the 2013 International Workshop on Security in Cloud Computing. New York: ACM, 2013: 3-10. |
| [3] | WEN S, XIANG Y, ZHOU W. A Lightweight Intrusion Alert Fusion System[DB/OL].[2015-03-21].http://ieeexpl ore.ieee.org/xpls/icp.jsp?arnumber=5587281. |
| [4] | MAZZARIELLO C, BIFULCO R, CANONICO R.Integrating a Network Ids into an Open Source Cloud Computing Environment[DB/OL].[2015-03-21]. http://ieee xplore.ieee. rg/xpls/icp.jsp?arnumber=5604069. |
| [5] | ALHARKAN T, MARTIN P. IDSaaS: Intrusion detection system as a service in public clouds[C]//Proceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. New York: ACM, 2012: 686-687. |
| [6] | BAKSHI A, YOGESH B. Securing Cloud from DDoS Attacks Using Intrusion Detection System in Virtual Machine[DB/OL].[2015-01-12].http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=5437670. |
| [7] | NIKOLAI J, WANG Y. Hypervisor-Based Cloud Intrusion Detection System[DB/OL].[2015-02-21]. http://ieeexplore. ieee.org/xpls/icp.jsp?arnumber=6785472 . |
| [8] | VIEIRA K, SCHULTER A, WESTPHALL C, et al. Intrusion detection for grid and cloud computing[J]. IT Professional Magazine , 2009, 12 (4) : 38–43 |
| [9] | KWON H, KIM T, YU S J, et al. Self-similarity based lightweight intrusion detection method for cloud computing[C]//Intelligent Information and Database Systems(LNCS 6592). Berlin Heidelberg: Springer, 2011: 353-362. |
| [10] | 项国富, 金海, 邹德清, 等. 基于虚拟化的安全监控[J]. 软件学报 , 2012, 23 (8) : 2173–2187 DOI:10.3724/SP.J.1001.2012.04219 XIANG G F, JIN H, ZOU D Q, et al. Virtualization-based security monitoring[J]. Journal of Software , 2012, 23 (8) : 2173–2187 |
| [11] | GARFINKEL T, ROSENBLUM M. A Virtual Machine Intro-Spection Based Architecture for Intrusion Detection. [DB/OL].[2015-01-25]. http://www.isoc.org/isoc/conferen ces/ndss/03/proceedings/papers/13.pdf. |
| [12] | LAMPS J, PALHMER I , SPRABERY R. WinWizard: Expanding Xen with a LibVMI Intrusion Detection Tool[DB/OL].[2015-01-09]. http://ieeexplore.ieee.org/xpl s/icp.jsp?arnumber=6973823. |
| [13] | JIN H, XIANG G F, ZOU D Q, et al. A VMM-based intrusion prevention system in cloud computing environment[J]. The Journal of Supercomputing , 2013, 66 (3) : 1133–1151 DOI:10.1007/s11227-011-0608-2 |
| [14] | KUMAR N, SHARMA S. Study of Intrusion Detection System for DDoS Attacks in Cloud Computing.[DB/OL].[2015-03-08].http://ieeexplore.iee e.org/xpls/icp.jsp?arnumber=6616255. |
| [15] | OGHENEOVO E E, JAPHETY B R. Implementing a robust network-based intrusion detection system[J]. The International Journal of Engineering and Science(IJES) , 2014, 3 (11) : 01–09 |
| [16] | FARHAOUI Y, ASIMI A. Model of an effective intrusion detection system on the LAN[J]. International Journal of Computer Applications , 2012, 41 (11) : 26–29 DOI:10.5120/5586-7830 |
| [17] | DUNLAP G W, KING S T, CINAR S, et al. ReVirt: Enabling intrusion analysis through virtual-machine logging and replay[J]. ACM SIGOPS Operating Systems Review, , 2002, 35 (SI) : 211–224 |
| [18] | SAAD S, TRAORE I, BROCARDO M L. Context-aware intrusion alerts verification approach[C]//Information Assurance and Security (IAS), 2014 10th International Conference on. Florida: IEEE, 2014: 53-59. |
| [19] | DE Oliveira D A S, Crandall J R, Wassermann G,et al. ExecRecorder: VM-based full-system replay for attack analysis and system recovery[C]//Proceedings of the 1st Workshop on Architectural and System Support for Improving Software Dependability. New York: ACM, 2006: 66-71. |
| [20] | DUNLAP G W, LUCCHETTI D G, FETTERMAN M A, et al. Execution replay of multiprocessor virtual machines[C]//Proceedings of the Fourth ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. New York: ACM, 2008: 121-130. |
| [21] | ZHU Q, BASARR T. Dynamic Policy-Based IDS Configuration[DB/OL].[2015-03-23]. http://ieeexplore.ieee.org/xp ls/abs_all.jsp?arnumber=5399894. |
| [22] | LI H, LIU D. Research on Intelligent Intrusion Prevention System Based on Snort[DB/OL].[2015-04-23]. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5610483. |
| [23] | CHERKASOVA L, GARDNER R. Measuring CPU Overhead for I/O Processing in the Xen Virtual Machine Monitor[DB/OL].[2015-04-11].http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.188.352. |
2016, Vol. 62

