宣晓帅 张冬阳 梁義钦 翟继强
摘要:针对入侵检测系统(IDS)存在可见度不高、隔离性差、目标系统不完整等问题,提出了新的入侵检测系统架构(XenIDS)。该架构基于Xen虚拟机监视器Xen VMM,对目标系统没有干扰行为,并引入入侵检测域(IDD)。根据安全策略响应入侵,设计实现了一个IDS,使用rootkit数据集进行测试和评估,结果表明XenIDS在增加有限开销的情况下可以有效检测攻击。
关键词:入侵检测系统;虚拟机监视器;Xen;入侵检测域
中图分类号:TP393文献标志码:A文章编号:1008-1739(2019)20-61-4
0引言
目前存在2种主流类型的入侵检测系统:基于网络的入侵检测系统(NIDS)和基于主机的入侵检测系统(HIDS)。NIDS通过数据包嗅探技术监控网络流量,检测流量中的恶意活动。这种架构内在的缺点是入侵分析数据有限、检测本地攻击能力不足以及性能开销大。HIDS基于主机的结构被部署在目标系统中,监视或分析系统日志文件和收集数据来识别、检测计算机中的恶意或侵入性活动[1],易于被访问和攻击,存在可见度低、隔离性差及效率低等问题。
为了解决基于主机和基于网络的IDS结构中存在的问题,提出一种基于虚拟机监控器Xen VMM的XenIDS,不仅可以灵活简便地检测攻击,还可以对攻击做出积极响应,具有良好的可视性、可靠性和隔离性。
1虚拟机监控技术
1.1虚拟机监视器
硬件虚拟化技术被称为虚拟机扩展(Virtual Machine Extension,VMX),主要包含虚拟机监视器(Virtual Machine Monitor,VMM)与客户操系统(Guest OS)。VMM位于VMX root模式,运行在Guest OS下一层,相比Ring 0层权限更大,可完全控制Guest OS对各种资源的访问,包括CPU、内存、中断管理和I/O控制等。
VMM是一个用于计算机系统的精简软件层,将原本在物理处理器中运行的操作系统变成Guest OS,可创建与真实硬件机器相同的高效隔离虚拟机环境[2]。使用VMM将物理机转换为一组虚拟机,不同的虚拟机加载不同的操作系统副本,每个副本完全与其他副本隔离。
1.2 Xen
Xen是一个开放源代码的裸金属架构VMM,由剑桥大学开发,也称Hypervisor虚拟化。在底层硬件上安装VMM作为虚拟机监控程序,可以管理所有的硬件资源,同时对虚机提供虚拟环境。在裸金属架构中,MM是专用于虚拟化服务的中间层,向下管理CPU、内存/ IO等所有物理资源,向上提供虚拟机OS。
Xen VMM为虚拟机提供了足够的可见性,通过定义良好的接口来监视虚拟机的所有状态[3]。Xen VMM的扩展域Domain 0通过Xen框架提供的libxc库访问所有虚拟机的整个内存空间。Xen具有优秀的性能和隔离能力,可以记录受监控目标VM系统中发生的系统事件,并转储相关的上下文信息。Xen VMM支持许多平台,如X86,IA64,Power PC,Arm等,提供虚拟机之间的安全分区。
1.3基于VMM的入侵检测
传统IDS的缺点源于架构的固有限制,很难克服或减轻。针对以上问题,提出基于虚拟机架构的解决思路。
(1)可见度
基于网络的IDS对目标系统的内视性较差,检测功能受限。基于VMM的架构能够访问整个真实机器系统[4],因此更容易检查客户虚拟机中运行的被监控目标系统的状态。
(2)可靠性和隔离性
基于主机的IDS存在可靠性和隔离问题。VMM可以更好地保护不同系统中的组件。与必须支持文件系统和网络协议栈等的传统操作系统不同,VMM仅需要呈现相对简单的抽象功能,如虚拟CPU和存储器[5]。此外,VMM将目标系统与在分离的虚拟机系统中实现的入侵检测系统隔离,目标系统不能以任何方式访问或控制IDS组件。
(3)效率
传统的基于主机的架构通常会大幅降低系统性能,因为它增加了许多额外的机制来跟踪系统状态。虽然VMM需要额外的开销来实现虚拟机环境,但大量虚拟机监视器的实际应用和实验测试表明,虚拟化带来的开销可以忽略不计。
(4)目标系统完整性
基于主机的体系结构中,为了从系统中获取更多信息,IDS依赖于将模块插入到OS内核中,但这会破坏目标系统的完整性。而利用VMM监控目标系统并获取目标系统的状态,VMM能够访问真实和虚拟系统的任何资源,因此无需向目标系统添加模块[6]。从系统完整性角度来看,基于VMM的入侵检测系统实现比基于主机的体系结构更有优势。
2 XenIDS架构
XenIDS整个体系结构及其主要组件如图1所示。XenIDS主要由VMM、入侵檢测域(IDD)、事件传感器(ES)、 IDS插桩(IS)和IDD助手(IH)组成。
(1)VMM
由于VMM在最特权层上运行并拥有整个真实机器,因此它能够检查虚拟机的任意行为[7]。在XenIDS中,作为整个架构的基础,VMM非常方便地实现了XenIDS的所有组件,负责管理虚拟机,为虚拟机提供通信通道。此外,它还是IDD和IH的容器。
(2)ES
ES是一个单独模块,与VMM具有相同的特权属性,例如控制虚拟机及检查虚拟机的内存等。可以监控目标系统的状态,例如部署系统调用传感器以获取在目标系统中发生的系统调用序列。设计不同的传感器来收集各种数据,以检测入侵或获取有关攻击者的信息。ES需要公开一些接口与其他组件通信。由于ES完全在VMM中实现,不像基于主机的架构通常需要在目标系统内核中实现钩子或拦截器。
(3)IDD
在XenIDS中,使用专用虚拟机实现IDD。在Xen环境中,半虚拟化用户域用于实现此目标。考虑到安全性,IDD作为一个简单的系统实现,具有最小内核和根文件系统。
IDD具备良好接口。IDD接口与VMM接口一起工作,在VMM和IDD之间提供特定的通信通道。通常接口具有2个功能:
①当ES从目标系统获取一些数据并将它们存储到跟踪缓冲区时,需要通过接口向IDD发送通知,让IDD从跟踪缓冲区获取它们进行进一步分析,通知机制依赖于这些定义良好的接口。
②如果IS想要采取预防措施来控制受损系统,可以通知VMM中的IH通过这些接口控制目标系统。
(4)IS
IS作为入侵检测系统的核心组件,负责解释目标系统的数据,记录入侵报告、报告潜在的攻击以及响应攻击。由于IS部署在专用IDD中,因此在它与目标系统之间提供了强大的隔离。另一个优势是它提供的响应机制。通常,如果目标系统受到攻击,除了发出警报外,IDS不能采用预防性操作来控制目标系统,但是可以通过虚拟机环境中的响应机制执行预防策略来控制受损目标系统。例如IS可以暂停或重新引导目标系统,以防止系统受到后续攻击。
(5)IDD Helper
IDD Helper作为单独的模块部署在VMM中,职责是帮助IS完成预防措施。当IS检测到潜在攻击时,系统管理员希望采取一些预防措施,以避免泄露数据或资源。在这种情况下,IDS可以根据相关策略在IH的帮助下暂停或重启受感染的目标系统。
这些组件需要与整个虚拟机环境一起工作,Xen基础结构的其他组件,如Domain 0、HVM域和用户域用于构建整体体系结构。
3 XenIDS实现
3.1 VMM及IDD
直接使用Xen的用户域来实现入侵检测域IDD来分析入侵,并部署灵活的策略引擎。但考虑到IDD需要受限制的安全性要求这一事实,定制了一个用户域内核来实现IDD。IDD的内核仅保留最低运行要求,保留网络核心架构支持和除前端驱动程序之外的设备驱动程序。
3.2事件传感器
通过分析特殊进程的系统调用序列,可以识别出可能的入侵。在XenIDS中,实现的主要工作是拦截客户虚拟机中进程的动态行为(系统调用的顺序)。
为了捕获所有目标系统中的系统调用事件,提出一个五元组(VM-id,Pid,P-name,Syscall-Num,Args)来封装事件传感器的所有系统调用信息。XenIDS利用Xen域ID(VM-ID)来区分HVM域[8]。
(1)VM标识(VM-ID)
Xen VMM中的唯一标识符,用于标识Xen中的不同虛拟机。在实际执行中Xen VMM负责在VM创建时分配和取消分配VM-ID。
(2)进程ID(Pid)
将此字段用于区分进程,在XenIDS中,它可以通过存储在kr6中的task_struct指针来实现。Linux将3种不同的数据结构(the basic task struct,thread_info,process kernel stack)整合到每个进程的32 KB存储区域中,并将基址存储在kr6中[9]。
(3)进程名称(P-Name)
进程名称也来自task_struct的字段(char comm[TASK_COMM_LEN]),用于生成最终检测报告。与进程标识类似,进程名称也来自接口copyJrom_guest。
(4)Syscall码(Syscall-Num)
在Linux OS中系统调用码用于标识系统调用,并在头文件asrnlunistd.h中定义所有系统调用号。在IA64 Linux OS中,软件调用约定使用临时寄存器r15来编码系统调用号。在XenIDS中,当事件传感器通过break,epc指令跟踪检测到可能的系统调用执行时,可以通过读取通用寄存器r15来获得系统调用码。
(5)参数(Args)
由于只关心系统调用的顺序,不使用参数来检测可能的入侵,但需要将它们作为存储在IDD插桩中的重要审计日志信息。系统管理员可以使用这些信息来确认检测到的入侵。在XenIDS中,Xen VMM通过定义良好的接口get_rse_reg,从寄存器堆栈(r32,r33,r34,....)中获取这些参数。
事件传感器用于收集组织为五元组的所有上述信息,并通过预定义的接口发送到跟踪缓冲区。随后IDD可以从跟踪缓冲区中获取并及时分析可能的入侵。
4测试与分析
4.1有效性测试
为了评估提出的架构,使用Xen / IA64实现了XenIDS原型,使用了Rootkit攻击数据集[10],包括ARK,Adore工具包和Knark来测试它的有效性。XenIDS对Rootkit攻击表现出了良好的正确检测率。测试结果如表1所示。
4.2性能测试
根据XenIDS的体系结构,系统开销主要来自目标系统的事件传感器,部署了微基准SPEC CPU2000,以显示事件传感器对性能的影响。原生系统和HVM系统都托管在Linux RHEL4U3系统和Intel Tiger4平台上,配置20 GB主内存,Xen/IA64的Cset12014用于构建虚拟化环境,将其性能数据与使用相同硬件配置的原生系统的性能数据进行比较,详细性能数据如图2所示。
在每种情况下,通过系统调用传感器引入的额外开销基本上为0.1%~1.25%。这种性能下降主要源于监控系统调用序列的开销以及目标系统与IDD之间的通信。结果表明,XenIDS架构对性能的影响,在实际应用中是可接受的。
4.3可扩展性测试
由于VMM系统中核心资源之间的相互依赖性,由此产生的系统可扩展性是设计和实现虚拟化系统的挑战。通过在分配不同数量的虚拟CPU时的性能来评估XenIDS的可扩展性,并分别与HIDS,NIDS的可扩展性进行比较,如图3和图4所示。
由图3和图4可以看出,XenIDS的可扩展性可以很好地适应处理器资源的水平。对于基准测试,XenIDS和HIDS系统的可扩展性非常接近。当有4个CPU时,XenIDS表现出比HIDS系统略好的性能。对于NIDS的比较实验获得了类似的结果。
5结束语
本文分析了现有IDS存在的问题,针对其可见度不高、隔离性差及目标系统不完整等问题,提出一个基于虚拟机监视器Xen VMM入侵检测系统架构XenIDS。基于该架构设计和实现了一个IDS,使用Rootkit数据集进行了测试和评估,结果表明,XenIDS在增加有限开销的情况下可以有效检测攻击。同时,该架构在许多方面可以扩展,如可以利用可信计算技术构建Trust VMM并进一步保护架构中的关键组件。
参考文献
[1]王金辉,胡俊,徐湲策.一种基于HIDS的威胁情报解决方案[J].网络空间安全,2019,10(3):1-7.
[2]项国富,金海,邹德清,等.基于虚拟化的安全监控[J].软件学报,2012,23(8):2173-2187.
[3]马喆,禹熹,袁傲,等. Xen安全机制探析[J].信息网络安全, 2011(11):31-35.
[4] Zhang F,Chen J,Chen H,et al. Cloudvisor: Retrofitting Protection of Virtual Machines in Multi-tenant Cloud with Nested Virtualization[C]// In Proceeding of 23rd ACM Symposium on Operating System Principles (SOSP’2011), Cascais, Portugal,2011:203-216.
[5] Cho Y, Shin J, Kwon D, et al. Hardware-assisted On-demand Hypervisor Activation for Efficient Security Critical Code Execution on Mobile Devices[C]//2016 USENIX Annual Technical Conference, USENIX ATC 2016, Denver,CO,USA, 2016:565-578.
[6]邵炳陽,田庆宜,沈长达,等.XenServer虚拟化平台取证方法研究[J].网络空间安全, 2019,10(2):49-56.
[7] Litchfield A,Shahzad A. Virtualization Technology:Cross-VM Cache Side Channel Attacks Make it Vulnerable[C]// Proceedings of the Australasian Conference on Information Systems(ACIS) Adelaide, South Australia,2015.
[8] Reza A,Boshra P.SHADuDT: Secure Hypervisor-based Anomaly Detection Using Danger Theory[J]. Computers&Security ( COM-PUT SECUR),2013(39)268-288.
[9] Rhee J,Riley R,Xu D,et al.Defeating Dynamic Data Kernel Rootkit Attacks via VMM-based Guest-transparent Monitoring[C]//Proceedings of the 4th International Conference on Availability,Reliability and Security(ARES’09),2009:74-81.
[10]张瑜,刘庆中,李涛,等.Rootkit研究综述[J].电子科技大学学报,2015,44(4):563-578.
收稿日期:2019-05-18
基金项目:黑龙江省教育厅科技面上项目(12531121);国家级大学生创新创业训练项目(201810214027)