Superare le protezioni hardware

Intervista esclusiva a Joanna Rutkowska, massima esperta di sicurezza informatica.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Superare le protezioni hardware

TH: Con "red pill", invece, hai mostrato come sia possibile capire se un'applicazione sta girando dentro a "The Matrix", cioè l'ambiente virtualizzato nascosto di BluePill. Nella tua dimostrazione, sembra che basti usare l'istruzione SIDT per esaminare i dati IDTR.

Joanna: C'è una differenza tra individuare una virtualizzazione qualsiasi rispetto ad uno specifico hypervisor, come BluePill. RedPill cerca virtualizzazioni basate sul sofware, e infatti usavamo prodotti VMWare, prima che AMD e Intel introducessero le loro tecnologie, nel 2006. La prima versione di RedPill risale al 2004, e non era in grado d'individuare la virtualizzazione a livello hardware.

Altri ricercatori hanno presentato strumenti capaci, a volte, d'individuare la virtualizzazione a livello hardware, nel 2006 e nel 2007, dopo la mia prima presentazione di BluePill al Black Hat (nel 2006).

TH: Quattro anni e mezzo dopo, quindi, abbiamo al possibilità di identificare le macchine virtuali, grazie a strumenti avanzati, ma il concetto resta lo stesso.

Joanna: Sì, questo accade perché anche se praticamente ogni macchina in commercio oggi supporta VT-x alcuni prodotti usano ancora la virtualizzazione software. Credo che VMWare Workstation la usi ancora con i sistemi a 32-bit. I nuovi identificatori di virtualizzazione, la prossima generazione di RedPill, possono riconoscere la virtualizzazione VT-x o AMD, ma in genere sono "timing based" o "caching based".

TH: Se sei nella squadra dei buoni, probabilmente ti preoccupa il malware con accesso di livello Ring -1. Identificare la presenza di una macchina virtuale, quindi, può essere un aiuto importante. Se non ci dovrebbero essere macchine virtuali attive, dopotutto, trovarne una è un ottimo campanello di allarme.

Joanna: Certo, ma non dimentichiamo che la virtualizzazione sta diventando un fenomeno di massa, usata persino su sistemi desktop Xen Client Initiative (conosciuto anche come Project Independence) o Phoenix HyperCore.

TH: Detto questo, se fossi uno dei cattivi, potresti alterare i risultati per mantenere nascosto il malware? Se l'antivirus vedesse un'applicazione che richiede l'IDT e la successiva linea di codice è "il risultato comincia con 0xc0 o 0x80", altererebbe i risultati. Come ci possiamo proteggere da questo tipo di attacco?

Joanna: Non si può. Questi attacchi però partono dal presupposto che l'attaccante conosca il codice del programma usato per l'individuazione. In altre parole, dovrebbe avere un database con tutti i possibili codici d'identificazione, e conoscere quali frammenti di codice dovrebbero essere ingannati, così da far credere all'applicazione che non ci sia virtualizzazione. Questi sono attacchi specifici per certe implementazioni, ma si adattano male ad un uso generale. Il loro uso non è necessariamente legato alla virtualizzazione invisibile, quanto piuttosto alla disabilitazione di popolari programmi antivirus.

Dal punto di vista dai buoni, purtroppo, non c'è modo di prevenire attacchi del genere se si lavora con privilegi uguali o minori a quelli usati dal malware. Ecco perché gli antivirus stanno perdendo la battaglia con i rootkit a livello kernel, che spesso sono in grado di disabilitare la modalità kernel dell'antivirus, almeno per i prodotti più conosciuti, proprio perché sono famosi, e facili da analizzare e neutralizzare. Quando c'è una nuova versione di un antivirus anche tutto il malware deve essere aggiornato, naturalmente, e quindi si tratta di una corsa senza fine, dove i criminali si divertono e si arricchiscono, così come i produttori di antivirus. L'obiettivo, proteggere gli utenti, non è però mai raggiunto veramente.