虽然三角洲已经卸载了,但是今天刚刚看到的steam里三角洲的新推送引起了我的兴趣:
VT外挂?网安人又来学技术了
文章中提到了最新的外挂技术,VT外挂,也就是虚拟机外挂。与之前最流行的DMA外挂原理不同,VT这类外挂借助虚拟化技术,将自己的核心逻辑部署在虚拟机监视器层面,获得了高于安全系统的权限。这导致VT外挂能够在游戏启动之前就先行对操作系统进行虚拟化处理,使得其留下的痕迹并不出现在电脑系统的真实运行环境中。
虚拟机监视器
正好之前读过一篇论文《Towards an Understanding of Anti-virtualization and Anti-debugging Behavior in Modern Malware》,翻译过来就是《面向对现代恶意软件反虚拟化和反调试行为的理解》,虽然文章讲的是恶意软件(即病毒)的反虚拟化反调试,但我也一直好奇游戏是如何反虚拟化的,正好借这篇论文了解一下。
反虚拟化是软件检测虚拟化环境所采用的一系列技术手段,主要原理是虚拟环境与真实物理环境存在一定差异,可以通过检测这些差异来判断软件此时是否在虚拟机/模拟器中。论文中提到的主流的反虚拟化包括以下几类:
1.硬件检测类:检测特定硬件设备属性,像 VMware 的以太网设备有特定制造商前缀(安装了VMware的Host与虚拟机内部都会多出来两个虚拟网卡设备:一个是VMnet1,使用Host Only的方式联网;一个是VMnet8,采用NAT的方式联网),VGA 适配器有专属设备字符串,Bochs 模拟器有特定调试端口,再比如Oracle VirtualBox 的虚拟硬盘名字叫 VBOX HARDDISK ATA Device,软件可以通过检测类似的硬件名称来判断此时的工作环境。
2.执行环境检测类:内存方面,VMware 的 “ComChannel” 通道、中断描述表等内存特征,以及调试器相关的 API 标志,都能被恶意软件检测到;执行方面,虚拟机 CPU 指令的 bug 在执行路径上留下的痕迹,如 OllyDbg 修改的调用栈等,也可帮助软件判断是否处于虚拟或调试环境。
例如IDT(Interrupt Descriptor Table)是Windows处理中断时用于查找中断处理程序的一块内存,为了隔离Host与Guest OS,虚拟机与宿主机的IDT在内存当中的地址是不同的,当地址为0xff开头时为真机、为0xe8开头时为虚拟机(32位系统上)。
另外,一些机器码中无效的指令(Invalid Opcode)被虚拟机使用作为后门以便于虚拟机的管理,检查是否触发特殊的机器方法同样可以识别虚拟机。比如VMware当中的IN指令,在真机上不能在ring3下执行,但虚拟机中可以用于与宿主机通信。
ARM汇编指令集与机器码
3.应用检测类:从安装角度,软件可枚举注册表键或磁盘文件,查找 VMware Tools 等相关信息,判断系统是否为虚拟环境;执行时,通过枚举进程、服务和窗口名称,识别与虚拟机管理软件相关的名字,进而检测虚拟环境。
4.行为检测类(侧信道检测):软件可以利用时间差异来判断,比如在调试器中单步执行进程时,时间差异明显;某些指令在虚拟机中执行时间比在正常机器上长,游戏或者其他软件通过执行时间检查就能推断是否在虚拟环境中。
例如,一些涉及硬件加速的指令,如图形处理指令等,在虚拟机中的执行时间可能会比在物理机上慢数倍甚至数十倍。软件可以选择执行一组特定的指令,并记录其执行时间。然后将这个时间与在正常物理机环境下的预期执行时间进行比较。如果实际执行时间明显长于预期,就可能判断当前处于虚拟机环境。像进行大量图形运算的游戏,在物理机上可以快速完成渲染操作,但在虚拟机中,由于模拟硬件的性能限制,这个过程会显著变慢,通过监测这个时间变化,就能察觉自己是否在虚拟机中运行,进而做出反应。
了解完主流的策略,再来看三角洲介绍的反外挂手法:
稍微翻译一下就是三种方法,其中第二种方法就是我上面提到的反虚拟化:
1.内核安全特性,即借助操作系统内核的底层权限与功能,在内核层拦截特定的系统调用,分析调用的来源、参数等信息。若发现来自游戏进程的系统调用存在异常(如调用频率、访问内存地址不合常规),则可能判定为外挂行为。同时,三角洲可能监控所有进程的创建、运行和销毁过程,利用内核特性可以对游戏进程进行特殊保护。当有新进程试图注入游戏进程空间(外挂常用手段)时,内核可基于安全规则阻止该操作,并记录相关信息。
2.非法虚拟环境检测,就是我上面提到的反虚拟化技术,通过识别虚拟环境与真实物理环境的差异,以及虚拟环境自身的特征,来精准判断是否存在非法虚拟环境。
3.外挂表现对抗策略,即分析玩家数据,这也是目前的一种主流方法,游戏会收集和记录玩家在游戏中的各种行为数据,如玩家的移动轨迹、射击频率、命中率、击杀位置等。通过对大量正常玩家游戏数据的统计分析,建立起正常游戏行为的基准模型。利用机器学习算法对大量的游戏行为数据进行训练,让算法自动学习正常行为和作弊行为的特征模式。
对于第二种反外挂技术,本文已经基本概括,对于三角洲更新公告提到的1和3的具体细节,大家可以查看我之前的文章内核级反作弊技术简析-小蓝熊为什么这么烂?里面具体解释了其他各类内核级反外挂技术的原理。
更多游戏资讯请关注:电玩帮游戏资讯专区
电玩帮图文攻略 www.vgover.com