Il rapporto fra malware e macchine virtuali può essere essenzialmente di due tipi. Il primo è quello descritto da Anna Rutkowska con il famoso Blue Pill, in cui il rootkit, in sostanza, “muove” il sistema operativo ospite in una macchina virtuale, appropriandosi invece di quella reale. Lo scopo è di rendere “invisibile” il rootkit, e presuppone che il rootkit si sia installato sul sistema operativo operante sulla macchina reale. Il secondo è che il malware infetti una macchina virtuale. In questo caso il malware può danneggiare la macchina virtuale, ma non dovrebbe poter danneggiare quella reale. Su questo secondo tipo sto leggendo frequenti discussioni sulla capacità e possibilità per il malware di riconoscere di essere su una macchina virtuale. A parte l’interesse “accademico” per il problema, non mi riesce di capire quale possa essere il grande interesse pratico. Supponiamo che un malware sia in esecuzione su una macchina. Perché gli interessa sapere se è o meno virtuale? Le uniche risposte che mi vengono, e non ho trovato (o capito) altro in giro, è che se è su una macchina virtuale potrebbe decidere di “non fare” per non essere scoperto se la macchina reale lo sta monitorando, o decidere di “fare” attaccando delle vulnerabilità del meccanismo di virtualizzazione per arrivare alla macchina reale. Tuttavia, la cosa mi ricorda le discussioni di qualche anno fa sul fatto che un servizio dovesse o meno nascondere le informazioni sul prodotto e la versione che lo implementano (ad es. connettendosi ad un server http quello tuttora ci racconta che è ad esempio un Apache, la versione e i moduli disponibili). Poi si è visto che i worm di questa informazione se ne fanno poco: se conoscono una vulnerabilità di Apache, la provano e vedono se riescono ad entrare. Se ne conoscono una di IIS, provano anche quella, senza preoccuparsi di chiedere prima se è l’uno o l’altro.
Allo stesso modo, il malware nella macchina virtuale può provare una vulnerabilità del meccanismo di virtualizzazione, se la conosce: se è in una macchina virtuale, accede a quella reale. Se è in quella reale, ne ha comunque già il controllo e non cambia niente. L’unica altra possibilità che vedo è che il malware, sapendo di essere in una macchina virtuale (e quindi monitorato da quella reale?) decida di stare calmo o addirittura di cancellarsi per non farsi scoprire… ma direi che il modo di agire e le motivazioni del malware dovrebbero cambiare parecchio, prima che questa possibilità diventi realistica.