1、与虚拟机透明的安全监控技术实验- 1 -1。实验目的与意义(1)掌握 Linux 操作系统的安装、使用开发环境搭建.(2)学习 KVM或Xen Hypervisor的安装、使用,以及操作系统.(3)学习使用 Libvmi 工具对虚拟机的行为(进程、 内存、网络、I/O、以及特定进程的行为)进行安全监控和分析。2。基本原理和方法通过在开源HypervisorKVM或Xen之上搭建虚拟机,并使用与之兼容的虚拟机内省工具 libvmi对虚拟机的行为进行监控。LibVMI是美国Sandia国家实验室的Brian D.Payne等人开发的提供虚拟机内省(VMI)功能的程序库。使用LibVMI,可以方便地
2、在宿主机上透明读写虚拟机的内存。libvmi的运行原理如图1所示。图1 LibVMI的运行原理和系统结构3。实验环境物理服务器操作系统: LinuxHypervisor: KVM或Xen虚拟机操作系统: Windows 7VMI监控工具: libvmi 4。实验内容及步骤(1)搭建虚拟机环境I安装并配置Linux操作系统,安装好Linux后安装opensshserver以便ssh登录进行实验.II安装Xen之后重启,使用sudo xm list 查看信息:完成Xen的安装。III配置网络在/etc/network/interfaces中配置好物理端口信息后,加入以下文本以配置虚拟机网络使之桥接
3、于物理端口:之后重启网络:IV。创建虚拟机重启计算机,引导选择Xen进入系统。首先为虚拟机生成30G镜像空间:之后创建虚拟机的配置文件,配置为内存2G,一个CPU:使用xm create 命令启动虚拟机:这样就成功运行了虚拟机。然后使用VNC软件通过SSH隧道与虚拟机连接,并安装Windows 7系统。最后关闭系统,将虚拟机配置文件中的启动配置修改为硬盘启动:(2)安装并使用libvmiI安装libvmi由于libvmi官方示例代码将使用python版本,故此需要安装PyVMI:II配置libvmi将以下虚拟机信息写入etc/libvmi。conf:III运行示例程序在libvmi的。/too
4、ls/pyvmi/examples文件夹下执行processlist。py示例程序:(3)对进程的某一行为进行监控以下步骤说明如何配合使用内存监控软件(Cheat Engine)监视虚拟机内的记事本程序(notepad.exe)当前打开的文件名。I首先在虚拟机内用记事本打开一个文本文件*。txt;II用Cheat Engine打开notepad.exe进程,在内存浏览器中查找字符串。txt,记录下找到的多个内存地址;III再用打开的记事本程序打开另一个文件,重复上一步操作,比较两次找到的内存地址,选取两次都出现的一个,作为如下外部内省程序exp1。py的输入参数(外部内省程序通过调用vmi。read_str_va(vaddr)输出此va即虚拟机中程序的虚拟地址所指向的字符串);IV运行实验程序,可以看出程序输出值与虚拟机中程序一致,这说明libvmi可以对进程的行为进行监控。(4)模拟加密监控I在虚拟机内运行exp2。c;II将exp2。c的输出结果作为exp2.py的参数,并运行该程序,虚拟机外部程序通过被监控程序的输出获得要监控数据的内存地址,后通过vmi。read_va()与vmi。read_str_va()取得相应的数据;III查看程序运行结果中包含虚拟机程序的数据信息,实现模拟加密监控.IV外部程序exp2。py虚拟机内程序exp2。c:5.实验总结总结本次实验。