Havěť se zcela běžně brání „pitvě“, tedy bližšímu zkoumání. A dalo by se říci, že se brání ve dvou rovinách…
- Analytikům antivirových společností díky přítomnosti různých ochranných „slupek“ okolo stěžejního programového kódu havěti, díky čemuž lze pak hůře popsat chování havěti.
- Běžným, hlavně pak pokročilým uživatelům, kterým něco říkají pojmy jako sandboxing či virtualizace a snaží se tak vlastními silami zjistit, zda daný soubor, který jim přistál v e-mailu či na něj koukají na pochybném webu, je opravdu svinstvo nebo je OK.
Havěť jako laboratorní myš
Pokud vytvářím obrázky / screenshoty z havěti (pokud se teda vůbec vizuálně projevuje) pro článek na viry.cz, pochopitelně si havěť nespustím na vlastním PC (ač uznávám, že doba mezi články by mě bohatě stačila ke kompletní reinstalaci počítače a obnově ze záloh), ale ve virtuálním prostředí, například v Oracle VirtualBox. No a zde lze stále častěji narazit na situaci, kdy havěť, kterou v tomto virtuálním prostředí pustíte, dělá mrtvého brouka. Ten hajzlík prostě pozná, že neběží na počítači oběti, ale na nějakém testovacím, kde ze sebe laboratorní myš dělat nenechá!
Rozpoznat to může jednoduše. Havěť z poslední novinky o mrtvých schránkách (Win32/Spy.Ursnif) se spustila jen pokud měl procesor minimálně 3 jádra. Testovacímu prostředí obvykle vyčleníte menší množství prostředků. Havěť z rodiny TrickBot pro změnu sleduje rozlišení monitoru. Pokud jde o základních 800 x 600 či 1024 x 768, svoji činnosti ukončí. Toto je totiž obvyklé rozlišení virtuálních strojů bez nějakých dalších SW rozšíření.
Pochopitelně lze přítomnost virtualizace určovat i podle názvů některých ovladačů atd. Konkrétněji je zaměřena i havěť popsána zde (anglicky), která detekuje přítomnost konkrétní online služby any.run, kam můžete nahrát libovolný soubor k analýze. Jakmile je havěť spuštěna ve virtuálním izolovaném prostředí této služby, vypíše rovnou „Any.run detected!“ a o dalším chování se nic nedozvíte.
To by mě nenapadlo, že virus – havět pozná, že je ve virtuálním prostředí. Nejde upravit SW vytvařející virtuální prostředí aby se chovalo jako skutečný počitač?