三角洲最新反外掛更新-反虛擬化技術簡析

雖然三角洲已經卸載了,但是今天剛剛看到的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