论文部分内容阅读
目前,云计算已成为最重要的计算基础设施之一。在云计算被广泛应用的同时,也带来了安全问题。云计算引入了大量不可信云租户和网络访问用户,使云计算中虚拟机受到安全威胁。被攻破的或恶意的虚拟机可能提供恶意服务或继续攻击云计算中的其他虚拟机,使云计算的安全变得不可控。为使云服务商对云租户或访问用户的行为具有识别、取证、控制的能力,实现可控云,虚拟机域外监控技术被广泛应用。相比于域内监控,域外监控由于监控程序运行于具有更高权限的虚拟机管理层或安全虚拟机中,具有更好的安全性和透明性。然而,域外监控会干扰目标虚拟机的执行,对虚拟机引入较高的监控负载;而且,监控程序需要能够自动化解决语义鸿沟问题。运行于虚拟机管理层的监控程序仅能访问到虚拟机的底层运行信息(二进制内存、寄存器等),而监控程序需要基于高级语义才能实现监控,这个语义差距被称之为语义鸿沟问题。针对这些问题,本文致力于研究语义处理能力强、高性能、低负载的虚拟机监控技术。首先,针对虚拟机中文件数量众多,进行域外文件检测时需要检测的文件量大、检测时间长的问题,研究高性能的虚拟机域外文件检测技术。通过分析两次文件检测之间虚拟机对文件的修改,获取脏文件信息,进而将每次轮询检测的范围从全部文件缩小为脏文件,减少扫描的文件数量和扫描时间。针对单镜像虚拟机,研究基于文件驱动的脏文件获取技术;针对多镜像虚拟机,研究基于增量镜像的脏文件获取技术。在获取脏文件之后,每次轮询仅需要扫描分析脏文件,实现高性能的域外文件轮询式检测。其次,针对实时域外监控虚拟机中关键文件会对虚拟机引入较高负载的问题,研究基于目标的虚拟机关键文件域外实时监控技术。由于虚拟机中文件操作非常频繁,基于操作的文件监控,即通过监听和分析虚拟机中文件操作来监控虚拟机中文件,会严重干扰虚拟机的执行,引入较高监控负载。与基于操作的实时监控不同,基于目标的监控仅监控与目标文件相关的文件访问,使监控负载仅与对目标文件的访问频次有关。由于对关键文件的访问频次在整个虚拟机文件系统中占比很小,因此,基于目标的文件监控的负载更低。为了进一步降低监控负载,研究虚拟机内核结构体迁移技术,降低了系统的误触发率。然后,针对域外动态跟踪和分析虚拟机控制流会引入较高负载的问题,研究页面级虚拟机内核控制流完整性域外检测技术。通过将跟踪和分析的目标从虚拟机中的指令和分支跳转提升为内存页,降低监听过程中事件的触发量,从而降低对虚拟机引入的监控负载。面向页面级执行信息,提出两种模型对内核控制流进行建模和分析,保证了监控程序的检测能力。在学习阶段,建立内核的安全控制流模型;在监控阶段,将实时采集到的数据与安全模型进行比对,从而发现虚拟机内核控制流异常。最后,针对域外细粒度管理虚拟机面临的语义鸿沟问题和安全性挑战,研究安全的虚拟机域外细粒度自动化管理技术。由于虚拟机操作系统中关键操作都是通过系统调用完成的,通过向目标虚拟机中注入系统调用可以利用虚拟机自动化地获取其运行信息和干预其执行。当在域外对虚拟机细粒度管理时,首先根据管理操作的类型选取和准备待注入的系统调用,之后在虚拟机中选取一个傀儡进程,最后通过傀儡进程注入系统调用。由于注入调用运行于目标虚拟机中,一旦目标虚拟机内核被篡改,注入调用的执行将受到影响。针对这类安全性问题,本文研究虚拟机系统调用执行保护技术,保证了注入调用的安全性。