Skip to content

VMI-based evasive monitoring (out-of-guest cheating/analysis)

İlgilenilen yazılımı bir VM içinde çalıştırıp guest memory/state'i tamamen out-of-guest okuyup değiştirmek için hypervisor'dan virtual-machine introspection kullanmak — böylece in-guest target (anti-cheat, anti-tamper, anti-analysis) hiçbir şey görmez — "VIC" evasive oyun-hilesi çalışması ve malware-analysis sandbox'ları ile örneklenir.

Mechanism

Note

Guest/host sınırı asimetriktir: hypervisor tüm guest physical memory'yi gözlemleyip düzenleyebilir ve hardware olaylarını intercept edebilir, ama guest'in hypervisor'ı inceleyecek mimari bir yolu yoktur. VMI-based evasive monitoring bu asimetriyi silahlandırır: monitör/cheat mantığı host'ta yaşar, guest'in memory'sini okur (oyuncu koordinatları, key material, syscall argümanları) ve isteğe bağlı olarak geri yazar, bir in-guest agent ile aynı etkiyi sağlar ama guest tarafındaki bir defender'ın bulabileceği in-guest kod ya da hook olmadan. "VIC" araştırması, guest memory'nin doğrudan read/write'ı artı hardware-interrupt erişimi için KVM'in introspection interface'ine karşı LibVMI kullanır ve user- ve kernel-level anti-cheat'in tespit etmediği radar/wall-hack hilelerini gösterir. Bir defender'ın dayandığı invariant — "guest'te ring 0'ı kontrol edersem, tüm tampering'i görebilirim" — adversary hypervisor'ın sahibiyse yanlıştır. Bug/abuse class: bu bir memory-safety bug'ından çok bir trust-model gap'idir; aynı zamanda meşru out-of-guest analizinin de motorudur. Belgelenmiş bir kısıtlama: guest memory encrypted ise (örn. confidential-computing memory encryption), host read'leri ciphertext döndürür ve tekniği körleştirir.

memory introspection, guest state reconstruction ve isteğe bağlı olarak VMI breakpoint injection üzerine inşa edilir.

Walkthrough

Kavramsal path (VIC paper'ından):

  1. Target uygulamayı, introspection etkinleştirilmiş bir hypervisor üzerindeki bir VM'de çalıştır (VIC'te KVM + LibVMI).
  2. Host tool'undan, guest physical memory'nin doğrudan read/write'ını ve event/interrupt erişimini kazanmak için introspection API üzerinden attach ol.
  3. OS/app structure'larını yeniden inşa ederek (semantic gap'i köprüleyerek) ilgilenilen veriyi bul — örn. oyunun entity list'i.
  4. Guest'e hiçbir şey inject etmeden onu her frame'de oku (harici bir overlay/radar için) ve/veya yaz (guest davranışını değiştirmek için).

Beklenen: in-guest anti-cheat/anti-analysis değiştirilmemiş bir process ve temiz bir kernel gözlemler, ama davranış dışarıdan etkilenir.

Warning

Kavramsal, defansif-çerçeveli kayıt. Bir in-guest defender'ın bir out-of-guest gözlemciye neden kör olabileceğini belgeler; oyuna özgü offset'ler veya cheat kodu verilmemiştir.

Detection

  • In-guest: virtualization için probe et (timing/cpuid hypervisor leaf, VM-exit latency) ve çalışmayı reddet, ya da hiçbir introspection interface'inin aktif olmadığına dair attestation iste — düşman bir hypervisor'a karşı zorunlu olarak eksik kalır.
  • Server-side: istatistiksel/davranışsal tespit (imkânsız tepkiler, aim pattern'leri) kalıcı savunmadır, çünkü guest integrity'sine bağlı değildir.

Mitigation

  • Trust anchor'ı hypervisor'ın altına taşı: hardware confidential computing (memory encryption) ki host read'leri ciphertext görsün, artı platformun remote attestation'ı.
  • Server-authoritative oyun/state tasarımı ki client memory'sini okumak/değiştirmek avantaj sağlamasın.
  • Analiz defender'ları için: kararlı bir adversary'nin out-of-guest izleyebileceğini varsay ve yalnızca in-guest agent'lara değil, davranışsal sinyallere güven.

References