View Single Post
Old 09-07-2008, 08:43   #6978
ConteZero
Senior Member
 
L'Avatar di ConteZero
 
Iscritto dal: Dec 2006
Città: Trapani (TP)
Messaggi: 3098
Un paio di precisazioni...

1. Si, un virus hypervisor ha accesso all'hardware, ma non ha i metodi per usare l'hardware. Se il driver di una stampante è 100K o l'hypervisor ha 100K per quella stampante o deve "passare" dal SO che stà "sotto" di lui. Tra l'altro un qualsiasi hardware è come un quaderno, lo usa una persona per volta e non puoi usarlo senza che l'altro se ne "accorga".
2. C'è sempre un modo per beccare un virus; io quando devo gestire una macchina potenzialmente infetta mi limito a lanciare un Windows XP con antivirus che ho su un disco USB, e con quello (quindi boot e sistema "pulito" per definizione) effettuo la scansione del disco; per quanto un virus possa provare (virtualizzazione o altro) a rendersi invisibile il suo codice fisicamente da qualche parte deve stare.
3. Gli hypervisor possono essere nestati (lo dice anche la tizia di bluepill) il che vuol dire che un hypervisor può essere "figlio" di un altro hypervisor; questo fa sì che un hypervisor possa mettersi "a monte" di un altro hypervisor. I programmi possono comunque "detectare" se la VT è in uso oppure no e penso che esista (visto che da bios è disabilitabile) la possibilità di "spegnere" le feature VT.

Per il resto le estensioni di virtualizzazione sono necessarie perché senza di esse o si usa la paravirtualizzazione tipo XEN (implica che ogni kernel virtuale sia al corrente di essere una macchina virtualizzata) o si usa l'emulazione stile VMWare (e penso che chiunque si renderebbe conto delle perdite prestazionali e dell'hardware "emulato").


Tornando a Blue pill e simili... quella roba è, essenzialmente, da rootkit.

Il giochetto è anche abbastanza semplice; si "infetta" il sistema (facile a dirsi ma difficile a farsi, infatti prima di diventare hypervisor un programma è un comune programma "sottomesso" al SO) e poi si usa l'hypervisor per cambiare i "diritti" di un programma terzo che gira sul medesimo SO.
L'hypervisor ha accesso alla memoria, anche alle aree riservate al sistema operativo (tra cui la tabella dei processi) per cui, una volta "individuato" il programma "complice" l'hypervisor svolge la semplice funzione di "elevargli" i diritti (in pratica cambia il suo "status"), questo ed altri eventuali giochini "cosmetici" per rendere più difficile l'individuazione propria e del complice.
L'hypervisor in sé è estremamente limitato nelle sue interazioni con il SO, per questo per funzionare al meglio ha bisogno di un "complice" che sia a livello dell'SO stesso (un "avatar"), inoltre và notato come essere hypervisor non significa essere "immortali"; un hypervisor rimane lì fino al successivo riavvio... per "perpetuarsi" l'hypervisor deve far sì che il suo codice venga caricato all'avvio e questo implica che, da qualche parte, l'hypervisor deve mettere il suo "corpo" (il suo codice), e che quel "corpo" dev'essere raggiungibile dal SO stesso.
Essendo "raggiungibile" è anche, a sua volta, tracciabile.

Chiudendo il cerchio mentre un virus normale ha un solo componente (il virus stesso) un virus hypervisor ha due componenti differenti, un hypervisor ed il complice... per il resto è un virus come gli altri.
La "differenza" fra virus VT e virus normali è che un virus VT è "irrintracciabile"; vero, ma solo per la sua parte hypervisor mentre il "complice" ed il suo "codice" sono tracciabilissimi... inoltre il discorso è un pochino "monco" perché gira intorno all'idea che un antivirus dovrebbe essere in grado di rintracciare un virus girando sulla macchina nella quale il virus stesso è in esecuzione, ma in questa situazione sono già molti i virus in grado di "difendersi" (a partire dal gromozon) e/o rendersi introvabili.
__________________
A casa ho almeno sette PC, in firma non ci stanno

Ultima modifica di ConteZero : 09-07-2008 alle 09:04.
ConteZero è offline   Rispondi citando il messaggio o parte di esso