Protezione del Kernel Tramite MacchineVirtuali
Fabio Campisi Daniele Sgandurra
Università di Pisa
27 Novembre 2007
1/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Sommario della Prima Parte
La VirtualizzazioneDefinizione e VantaggiIl Virtual Machine Monitor
XenCaratteristicheArchitetturaProcedura d’Installazione
2/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Sommario della Seconda Parte
ProblemiAttacco e Evasione dei Controlli di Sicurezza
Xen-VMIVirtual Machine Introspection
Valutazione e ConclusioniValutazione della Sicurezza e delle PrestazioniLimiti Attuali e Sviluppi Futuri
3/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Parte I
Introduzione a Xen
4/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Definizione e Vantaggi
La Virtualizzazione
I Un livello di astrazione.1. Resource Virtualization.
I Memoria Virtuale.I RAID, Storage Virtualization.I Grid Computing.
2. Platform Virtualization.I Emulazione/SimulazioneI A livello applicativo: Java VM.I A livello di sistema operativo: FreeBSD Jails.I A livello “hardware”: VMWare, Xen.
5/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Definizione e Vantaggi
Platform Virtualization
I Una metodologia per creare sulla stessa macchina fisicadiversi ambienti di esecuzione virtuali. Fine anni ’60.
I Le macchine virtuali emulano a software il comportamentodella macchina reale sottostante.
I Possibilità di eseguire in concorrenza sulla stessamacchina fisica diverse istanze di sistemi operativi.
6/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Definizione e Vantaggi
Macchine Virtuali
7/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Definizione e Vantaggi
Benefici della Virtualizzazione
8/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Il Virtual Machine Monitor
Il Gestore delle Macchine Virtuali
Il gestore delle macchine virtuali (VMM = Virtual MachineMonitor) è il software che:
1. crea e gestisce le macchine virtuali,2. media l’accesso alle risorse fisiche,3. garantisce l’isolamento tra le MV,4. grazie alla proprietà dell’incapsulamento può:
I eseguire numerose MV simultaneamente;I migrare MV in esecuzione tra diversi host.
9/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Il Virtual Machine Monitor
Tipologie di Virtual Machine Monitor
10/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Il Virtual Machine Monitor
Tipologie di Macchine Virtuali
I A livello utente: User-Mode LinuxI A livello kernel: Linux-VServer, FreeBSD Jail, OpenVZ.I A livello “hardware”.
I Paravirtualization: Xen, Denali.I Full Virtualization: VMWare, QEMU.
11/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Il Virtual Machine Monitor
Full Virtualization e ParavirtualizationI Full Virtualization: fornisce una replica esatta
dell’interfaccia sottostante.I Paravirtualization: espone una interfaccia simile ma non
identica a quella sottostante.I Richiede che i sistemi operativi siano (in parte) modificati.
12/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Il Virtual Machine Monitor
Intel VT e AMD-VIntel Virtualization Technology e AMD Virtualization hannointrodotto il supporto hardware/firmware alla virtualizzazione.
1. Lo sviluppo di un VMM è semplificato.2. È possibile eseguire sistemi operativi non modificati.3. Prestazioni più elevate.
13/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Caratteristiche
Xen
I Xen è un software Open Source: licenza GNU GPL.I Progetto dell’Università di Cambridge.I Supporta IA-32, x86-64, IA-64 e PowerPC.I Sistemi operativi supportati:
I Linux;I NetBSD;I FreeBSD;I Solaris;I Windows (con VT).
14/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Caratteristiche
Xen Supporters
15/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Caratteristiche
Vantaggi di Xen
I Prestazioni paragonabili a soluzioni non virtualizzate(∼ 8% overhead).
I Migrazione di una macchina virtuale in tempo reale (Quake3 server in 60 ms).
I Fino a 32 VCPU per macchina virtuale.I Inclusa in molte distribuzioni Linux: Fedora, Debian,
Ubuntu e openSUSE.
16/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Architettura
Architettura di Xen
17/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Architettura
Domini Xen
In Xen una macchina virtuale è detta dominio.I Xen Hypervisor è il VMM:
I implementa i meccanismi;I esporta un’interfaccia di controllo al dominio 0.
I Il dominio 0 è un dominio privilegiato:I definisce le politiche;I crea, sospende, ripristina e migra i domini utente.
I I domini U ospitano le macchine virtuali utente.
18/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Architettura
Livelli di Protezione della CPUI Xen utilizza il concetto di ring x86: livelli di privilegio.I I domini devono invocare Xen per le operazioni privilegiate.
19/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Architettura
Hypercall
I I domini invocano Xen tramite hypercall.I Analogo delle system call in un sistema operativo.
I Tipologie di hypercall:1. relative alla CPU: es., registrazione tabella interruzioni;2. relative alla memoria: es., gestione tabella pagine;3. relative all’I/O: es., event channel (notifica interruzioni).
20/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Architettura
Il Modello Split Device Driver
I un dominio driver controlla un dispositivo tramite il driveroriginale, e accetta richieste tramite un backend driver.
I gli altri domini utilizzano un frontend driver.
21/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Procedura d’Installazione
Passi per Creare un Dominio Utente
1. Installare Xen e il kernel del dominio 0.I Sorgenti o pacchetti.
2. Creare una partizione per il dominio utente.I Partizione fisica/LVM/file.
3. Creare un file system per il dominio utente.I Ad es.: debootstrap.
4. Creare il kernel per il dominio utente.5. Creare il file di configurazione per il domU.
22/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Procedura d’Installazione
Esempio
23/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Xen
Procedura d’Installazione
Esempio
24/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Parte II
Protezione del Kernel Tramite MacchineVirtuali
25/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Attacco e Evasione dei Controlli di Sicurezza
I Rootkits
I Rootkits: collezione di programmi utilizzati da unattaccante per...
I nascondere processi o file,I mantenere l’accesso al sistema compromesso.
I A livello utente: ad es., modifica utilità di sistema (ps).I A livello kernel: ad es., un modulo che modifica una
chiamata di sistema.
26/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Attacco e Evasione dei Controlli di Sicurezza
Attacco e Evasione
Un rootkit può disabilitare o eludere i controlli di sicurezza.
27/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Introspezione
I Visibilità: accesso allo stato di una MV da un livello inferiore.
I Robustezza: controlli effettuati da un’altra MV.
28/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Problema Semantico
I L’introspezione accede solo a dati di basso livello.I Occorre una libreria di introspezione che:
I ricostruisca le stutture dati del kernel dai dati “grezzi”;I verifichi la loro consistenza.
I Assunzione: Xen è affidabile.I Interfaccia limitata.I Dimensione ridotta.
29/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Macchina Virtuale d’IntrospezioneMonitora le altre MV.
I Xen-VMI è la libreria di introspezioneI L’introspettore protegge l’integrità del kernel.
30/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Macchina Virtuale Monitorata
Esegue l’host da monitorare.
31/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Controlli a Più Livelli
L’introspezione può essere la base di una chain of trust.1. L’introspezione protegge l’integrità del kernel.2. Il kernel è esteso con altre funzioni di sicurezza.
I Es., patch del kernel: SELinux, LIDS, grsecurity.
3. Host IDS sono eseguiti nella MV monitorata.
32/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Chain of Trust
33/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Strategia Generale dei Controlli
1. Mappare le pagine di memoria del kernel con le strutturedati critiche.
2. Cast dei dati di basso livello nelle strutture dati relative.I Utilizzo header del kernel Linux.
3. Controlli di consistenza.
34/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Esempio: Lista dei Processi in Esecuzione
35/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Esempio: Lista dei Processi in Esecuzione
36/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Esempio: Lista dei Processi in Esecuzione
37/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Esempio: Lista dei Processi in Esecuzione
38/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Virtual Machine Introspection
Esempio: Lista dei Processi in Esecuzione
39/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Valutazione della Sicurezza e delle Prestazioni
Efficacia dei Controlli
Xen-VMI rileva:I Modifiche al codice e a strutture dati critiche del kernel.
I Sezione text.I Moduli non autorizzati o modificati.I Tabelle interruzioni / chiamate di sistema.
I Modifiche a utilità di sistema:
1. Controllo processi in esecuzione con introspezione e ps.2. Controllo file aperti tramite introspezione e lsof.
I Modalità promiscua nelle schede di rete.
40/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Valutazione della Sicurezza e delle Prestazioni
Overhead Introdotto dai Controlli di ConsistenzaInferiore al 10% nel caso peggiore.
41/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Limiti Attuali e Sviluppi Futuri
Limiti Attuali del Prototipo
I Altre regioni critiche del kernel da proteggere.I Es:. strutture dati Virtual File System.
I Modifiche illecite a strutture dati dinamiche (es., stack).I Attacchi diretti al VMM.I Attacchi al kernel temporizzati per evadere i controlli.
42/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Limiti Attuali e Sviluppi Futuri
Sviluppi Futuri
I Controllo processi a livello utente tramite introspezione.I Controllo di invarianti dei processi/kernel calcolate con
metodi statici.I Tracciamento di un processo da un’altra VM (es., ptrace).
I Verifica parametri / ordine delle chiamate di sistema.
43/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi Xen-VMI Valutazione e Conclusioni
Limiti Attuali e Sviluppi Futuri
Domande?
44/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa