Skip to content

Generic VMM fingerprinting (MATRIX cross-VMM)

Belirli bir vendor'ı hedeflemeden, kodun herhangi bir hypervisor altında çalıştığını tespit etmek — compatibility için inşa edilmiş bir VMM ile gerçek hardware arasındaki kaçınılmaz discrepancy'leri gözlemleyerek: logical anomaliler, resource limit'leri ve timing.

Mechanism

Note

Bir VMM, transparent (bare metal'den ayırt edilemez) değil, compatible (guest OS boot edip çalışır) olacak şekilde tasarlanır. Garfinkel ve arkadaşlarının "Compatibility is Not Transparency" çalışmasının temel argümanı, bu iki hedefin ayrıştığıdır: tüm performance ve engineering pratikliğini mükemmel fidelity uğruna feda eden bir VMM inşa edilemez, dolayısıyla her gerçek VMM gözlemlenebilir artifact'ler sızdırır. Generic fingerprinting işte bu açığı suistimal eder. Tek bir ürünün signature'ını (bir vendor string, bir backdoor port) yoklamak yerine, herhangi bir x86 virtualization layer'ının sergilemek zorunda olduğu discrepancy sınıflarını ölçer; bu yüzden bu tarz detection, VMM'ler arasında genellenir ("MATRIX" tarzı cross-VMM detection).

Discrepancy'ler, altta hangi hypervisor olursa olsun geçerli kalan geniş kategorilere ayrılır. Guest'in içinden gözlemlenebilirler çünkü host'u koruyan isolation boundary, aynı zamanda bare metal'de bulunmayan interposition maliyetleri ve emulated-resource limit'leri dayatır.

Walkthrough

Paper, tespit edilebilir artifact'leri üç aileye gruplar. Her birine eşlenen somut probe'lar:

1. Logical / functional discrepancy'ler — virtual hardware'in davranışı, dokümante edilmiş fiziksel parçadan farklıdır.

- TLB and cache geometry that does not match the claimed CPU model
- model-specific registers / CPUID fields that read back inconsistently
- instruction corner cases an OS tolerates but real silicon handles differently
- emulated device fingerprints (controllers, BIOS strings, MAC OUI ranges)

2. Resource discrepancy'leri — VMM, sınırlı host resource'larını paylaşır, dolayısıyla guest, bare metal'in görmeyeceği limit'leri veya layout'ları görür.

- non-physical memory sizing / unusual physical address-space layout
- presence of paravirtual devices and balloon-style memory reclamation
- restricted or virtualized device topology vs. a native chipset

3. Timing discrepancy'leri — interposition, bazı operasyonları orantısız biçimde yavaşlatır ve decoupled virtual time kendi içinde tutarsızdır.

- privileged ops that VM-exit (CPUID, certain MSR/CR access) cost orders of
  magnitude more cycles than on hardware
- self-modifying code and unusual instruction streams hit "performance cliffs"
- multi-core temporal decoupling: parallel threads show abnormal lock/contention
  timing because vCPUs are time-sliced rather than truly simultaneous
- wall-clock vs. cycle-counter skew when virtual time is decoupled from real time

MATRIX tarzı bir detector tek bir göstergeye dayanmaz. Birkaç bağımsız indicator'ı örnekler (bir timing cliff ve bir geometry uyumsuzluğu ve bir resource anomalisi) ve bunları birleştirir; böylece bir artifact'i üzerini örtmüş bir VMM, başka birine yine de takılır.

Warning

Paper'ın sonucu asimetrik ve önemli: tamamen transparent bir VMM inşa etmek temelde imkânsız ve pratik değildir, dolayısıyla kararlı bir in-guest adversary prensipte virtualization'ı her zaman tespit edebilir. Anti-VM malware tam da buna yaslanır. Bu nedenle savunma amaçlı analiz sandbox'ları, mükemmel transparency'yi başarmayı değil, detection'ın maliyetini artırmayı hedefler.

Detection

(Burada "detection", defender'ların guest dışından fingerprinting girişimini fark etmesidir.)

Mitigation

  • Bir VMM, kolay artifact'leri normalize edebilir — tutarlı bir CPUID/MSR görünümü sunabilir, hypervisor-present bit'i gizleyebilir, RDTSC'yi yumuşatabilir (bkz. stealth VT-x anti-detection) — ama kabul edilemez bir maliyet olmadan her timing ve resource açığını aynı anda kapatamaz.
  • Paper'ın tezini kabul edin: detection'ı imkânsız kılmaktan ziyade pahalı ve gürültülü (yani kendisi gözlemlenebilir) hâle getirmeyi hedefleyin. Exit latency'yi randomize etmek veya batch'lemek ve bariz paravirtual device fingerprint'lerinden kaçınmak çıtayı yükseltir.
  • Analiz sandbox'ları için, VM transparency hardening'i out-of-guest monitoring ile birleştirin; böylece virtualization'ı tespit eden bir guest bile introspection'dan kaçamaz.

References