APP下载

虚拟机攻防检测技术应用分析

2022-06-09王晨昊励家磊应俊薛义博尚中义

中学生学习报 2022年31期
关键词:基址描述符特权

王晨昊 励家磊 应俊 薛义博 尚中义

摘要:虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,在实体计算机中能够完成的工作在虚拟机中都能够实现。该文介绍利用IDT基址检测虚拟机和通过执行特权指令来检测虚拟机。

关键字:攻防检测,虚拟机技术,IDT基址检测

0前言

在个人计算机上模拟出虚拟机,体验不同版本的操作系统,如Linux、Mac还可以进行其他操作。虚拟机技术在如今的信息安全领域得到了广泛的运用,尤其是恶意软件分析中。然而虚拟机技术的使用使得攻击者为了提高破坏真实主机的成功率,在恶意程序中加入了检测虚拟机的代码,用于判断当前程序处于哪一种环境。当其发现程序处于虚拟机时,会立刻改变甚至中断执行,让反病毒人员分析恶意软件行为变得困难。

1利用IDT基址检测虚拟机

1.1技术介绍

利用IDT基址检测虚拟机的方法是一种通用方式,对VMware和Virtual PC均适用。中断描述符表IDT(Interrupt Descriptor Table)用于查找处理中断时所用的软件函数,它是一个由256项组成的数据,其中每一中断对应一项函数。读取IDT基址,我们需要通过SIDT指令来读取IDTR(中断描述符表寄存器,用于IDT在内存中的基址),格式为如下:

IDTR只有一个,而操作系统有虚拟机和主机系统两个。为了防止发生冲突,VMM需要修改虚拟机中的IDT地址,依靠虚拟机环境中执行sidt指令和主机的差别来检测虚拟机是否存在。

1.2案例测试

在VMware上发现虚拟机系统上的IDT地址通常0xFFXXXXXX,而Virtual PC一般位于0xE8XXXXXX,主机都位于0x80XXXXXX。Redpill只是通过判断执行SIDT指令后返回的第一字节是否大于0xD0来判断是否处于虚拟机。其代码是否简练,源码如下:

1.3测试结果:

2通过执行特权指令来检测虚拟机

2.1技术介绍

VMware提供了主机和虚拟机互相沟通的通讯机制,即“IN”指令来读取特定端口的数据以进行两机通讯,但由于IN指令属于特权指令,在处于保护模式下的真机上执行此指令时,需要权限允许,否则会出发异常。而在虚拟机中并不会有异常发生。VMDetect正是利用前一种方法来检测VMware的存在。

核心代码:

2.2测试结果

3结论

IDT检测技术相对简单易懂,也有其缺陷,IDT的值是对于当前正在运行的处理器,在单个CPU中是常量,但当其在多个CPU时可能会受到影响,原因是每一个CPU都是有自己的IDT。通过执行特权指令来检测虚拟机时用主机和虚拟机自身差别来识别。

参考文献:

[1] Fatma A. Hashim, Essam H. Houssein, Kashif Hussain, Mai S. Mabrouk, Walid Al-Atabany. Honey Badger Algorithm: New metaheuristic algorithm for solving optimization problems[J]. Mathematics and Computers in Simulation, 2021: 84-110.

[2] Yang, Y., Chen, H., Asghar Heidari, A., Gandomi, A.H., Hunger Games Search: Visions, Conception, Implementation, Deep Analysis, Perspectives, and Towards Performance Shifts, Expert Systems with Applications (2021).

資助项目:国家级大学生科技创新项目(项目编号:201911488010,Q20x034)

猜你喜欢

基址描述符特权
无聊是一种特权
基于结构信息的异源遥感图像局部特征描述符研究
西周金文“王在周”所涉及建筑考述——兼说凤雏三号基址大型石柱为宗庙碑
河南偃师商城囷仓遗址
Linux单线程并发服务器探索
利用CNN的无人机遥感影像特征描述符学习
试论现阶段特权问题及其治理
商代西北方国的文明遗珍 山西吕梁高红商代夯土基址
洛阳瞿家屯战国建筑基址与东周“周赧王居地”
『人大代表』不该成为特权符号