云平台中的数据流跟踪系统的目标是在虚拟化环境中引入数据流跟踪技术,为虚拟化环境提供一种更强大的安全检测技术,保障云平台中的数据安全。涉及到的核心技术点主要包括按需跟踪技术和基于模拟器的数据流跟踪。
1、 按需跟踪技术
由于虚拟化环境本身架构的原因,目标虚拟机是直接运行在硬件上,因此是不能直接获得对于目标虚拟机的指令流的控制。为了能够对目标虚拟机中的数据流进行跟踪,同时保证虚拟机运行时的效率,本系统采用按需跟踪技术来实现。即当目标虚拟机中数据流需要被跟踪时,动态地将目标虚拟机迁移到另一个虚拟域中的模拟器中继续运行,同时对运行中的目标虚拟机进行数据流的跟踪和分析,当数据不再需要被跟踪时,动态地将虚拟机迁移回来。通过采用按需跟踪技术,能够在获得数据流跟踪能力的同时减少对目标虚拟机性能的影响。
2、 基于模拟器的数据流跟踪
要实现对于整个系统中的数据流进行跟踪和分析,需要对系统中的数据进行污点标记,捕获导致污点数据进行传播的指令并进行分析和处理。在模拟器中运行的系统,是通过动态二进制翻译技术对目标系统中的指令进行翻译之后再运行,通过在二进制翻译的过程中,对目标系统的指令进行分析,加入相应的污点传播代码,就能够实现对于整个系统中的数据流的跟踪。
系统整体架构图如下:
在Hypervisor中通过页表级的污点标记和影子页表来捕获对于污点数据进行处理的指令流,在监控域中部署QEMU模拟器,当污点数据要被处理时,首先由Hypervisor捕获,然后动态地将虚拟机迁移到监控域中的QEMU中运行,并进行处理和分析。