[TOC]
了解设备模拟器器的工作原理: 用户空间:Send 内核空间:Syscall / tcp_ / ip_ / dev_ / e1000_ 设备模拟器:Network devices / Hub / slirp 基础设备:网络设备->内核(Kernel)->App
半自动化deHypervisor fuzz 框架 虚拟机逃逸工具 Hypervisor 脆弱性防御系统;
虚拟化安全基本信息: 可测试的软件或模块,qemu/vmware系列产品 发展方法:测试VMware workstation 产品,Hyper-V产品;
Fuzz系统工作流程: 1.搭建网络和硬件环境,启动server,client,monitor 2.client加载系统hook模式,获取所在的机器的设备模拟器 3.Client向server申请设备测试数据,server发送数据 4.Client获取测试数据,并加载启动测试; 5.Monitor 持续监控Hypervisor运行情况并记录日志: 6.Client阶段性测试完毕,通知server 7.server从client和monitor获取日志并存储 8.Server启动日志分析模块判断是否发生异常; 9.分析异常并优化fuzz系统
monitor模块功能系统细节: 虚拟机管理:Snapshot / Reboot / 虚拟机设备编辑
虚拟机执行流程动态调试
- 开始时进入调试模式
- 载入调试插件
虚拟化系统运行日志:
- 用户空间层进程日志;
- 内核空间层日志;
e1000 模拟器: 初始化 : 端口分配,地址映射/设备状态设置,资源分配; 数据传输:写TDT寄存器;处理模拟符号表;3种类型描述:context data legacy;数据处理;状态复原 等待下一次连接; 处理细节:环形内存;TSO技术;
pcnet模拟器: 写IO端口-> Control and Status 写寄存器 -> [接收 / 发送] -> 虚拟网卡接口