论文部分内容阅读
随着计算机技术的快速发展,安全问题也渐渐突显出来。传统的安全监控工具存在一个致使的缺点,即安全监控工具布署在被监控系统内部,如果恶意程序的权限高于它,那么恶意程序就能够绕过甚至破坏监控工具。虚拟化技术的出现,不仅改变了传统计算机的体系结构,同时虚拟化技术的隔离性和资源共享特性也给安全监控带来了新的思路。内核态Rootkit是虚拟机系统中一种非常常见的安全威胁,它通常以内核可加载模块为载体,篡改内核代码和数据,感染应用进程,据此本文提出了一个基于完全虚拟化技术的安全监控架构,分别从内核、内核可加载模块和应用进程三个方面对虚拟机系统进行监控;以intel VT-x技术为基础,在开源的虚拟化平台KVM中实现了一个基于完全虚拟化技术的安全监控原型系统。通过该原型系统,运行在真实物理机器上的宿主机能够对运行在该宿主机上的多个虚拟机进行监控。本文的主要工作有:1)研究了虚拟机内视技术,并根据该技术对虚拟机系统的底层信息(如CPU、内存页面)进行重构,得到高层次的信息(如内核关键数据、进程),以方便获取虚拟机系统中发生的事件。2)研究了内存保护与访问控制方法,对内核代码和数据进行完整性保护:内存保护技术设置内核代码所在内存页面为只读,拦截所有内核数据访问行为,并根据访问控制技术确定该访问是否合法。3)设计了一种基于交叉视图的方法,用于检测隐藏在内核中的可加载模块:对目标虚拟机系统中的内核可加载模块构建出两张视图,分别是虚拟机监控器层次的可信视图和虚拟机层次的不可信视图。通过视图的交叉对比,就能够将隐藏的内核可加载模块检测出来。4)研究了系统调用函数状态机模型,将其用于虚拟化环境下的恶意进程检测:通过对正常进程中的系统调用相关函数进行抽取,训练得到系统调用函数状态机,在测试阶段,检验被测进程的系统调用相关函数是否落在已经建立的状态机内,从而确定是否有入侵行为。最后对每个模块进行了功能验证,并分析了整体架构给虚拟机带来的性能影响。实验证明,本文提出的基于完全虚拟化的监控方法在虚拟机安全监控中具有可行性。