资源描述
与虚拟机透明的安全监控技术实验
- 1 -
1。实验目的与意义
(1)掌握 Linux 操作系统的安装、使用开发环境搭建.
(2)学习 KVM或Xen Hypervisor的安装、使用,以及操作系统.
(3)学习使用 Libvmi 工具对虚拟机的行为(进程、 内存、网络、I/O、以及特定进程的行为)进行安全监控和分析。
2。基本原理和方法
通过在开源HypervisorKVM或Xen之上搭建虚拟机,并使用与之兼容的虚拟机内省工具 libvmi对虚拟机的行为进行监控。
LibVMI是美国Sandia国家实验室的Brian D.Payne等人开发的提供虚拟机内省(VMI)功能的程序库。使用LibVMI,可以方便地在宿主机上透明读写虚拟机的内存。libvmi的运行原理如图1所示。
图1 LibVMI的运行原理和系统结构
3。实验环境
物理服务器操作系统: Linux
Hypervisor: KVM或Xen
虚拟机操作系统: Windows 7
VMI监控工具: libvmi
4。 实验内容及步骤
(1)搭建虚拟机环境
I.安装并配置Linux操作系统,安装好Linux后安装openssh—server以便ssh登录进行实验.
II.安装Xen
之后重启,使用sudo xm list 查看信息:
完成Xen的安装。
III.配置网络
在/etc/network/interfaces中配置好物理端口信息后,加入以下文本以配置虚拟机网络使之桥接于物理端口:
之后重启网络:
IV。创建虚拟机
重启计算机,引导选择Xen进入系统。
首先为虚拟机生成30G镜像空间:
之后创建虚拟机的配置文件,配置为内存2G,一个CPU:
使用xm create 命令启动虚拟机:
这样就成功运行了虚拟机。
然后使用VNC软件通过SSH隧道与虚拟机连接,并安装Windows 7系统。
最后关闭系统,将虚拟机配置文件中的启动配置修改为硬盘启动:
(2)安装并使用libvmi
I.安装libvmi
由于libvmi官方示例代码将使用python版本,故此需要安装PyVMI:
II.配置libvmi
将以下虚拟机信息写入etc/libvmi。conf:
III.运行示例程序
在libvmi的。/tools/pyvmi/examples文件夹下执行process—list。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.实验总结
总结本次实验。
展开阅读全文