Protezione del Kernel Tramite Macchine Virtuali 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 Virtualizzazione Definizione e Vantaggi Il Virtual Machine Monitor Caratteristiche Architettura Procedura d Installazione 2/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Sommario della Seconda Parte Problemi Attacco e Evasione dei Controlli di Sicurezza -VMI Virtual Machine Introspection Valutazione e Conclusioni Valutazione della Sicurezza e delle Prestazioni Limiti Attuali e Sviluppi Futuri 3/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Parte I Introduzione a 4/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Definizione e Vantaggi La Virtualizzazione Un livello di astrazione. 1. Resource Virtualization. Memoria Virtuale. RAID, Storage Virtualization. Grid Computing. 2. Platform Virtualization. Emulazione/Simulazione A livello applicativo: Java VM. A livello di sistema operativo: FreeBSD Jails. A livello hardware : VMWare,. 5/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Definizione e Vantaggi Platform Virtualization Una metodologia per creare sulla stessa macchina fisica diversi ambienti di esecuzione virtuali. Fine anni 60. Le macchine virtuali emulano a software il comportamento della macchina reale sottostante. Possibilità di eseguire in concorrenza sulla stessa macchina fisica diverse istanze di sistemi operativi. 6/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Definizione e Vantaggi Macchine Virtuali 7/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Definizione e Vantaggi Benefici della Virtualizzazione 8/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Il Virtual Machine Monitor Il Gestore delle Macchine Virtuali Il gestore delle macchine virtuali (VMM = Virtual Machine Monitor) è 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ò: eseguire numerose MV simultaneamente; migrare MV in esecuzione tra diversi host. 9/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Il Virtual Machine Monitor Tipologie di Virtual Machine Monitor 10/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Il Virtual Machine Monitor Tipologie di Macchine Virtuali A livello utente: User-Mode Linux A livello kernel: Linux-VServer, FreeBSD Jail, OpenVZ. A livello hardware. Paravirtualization:, Denali. Full Virtualization: VMWare, QEMU. 11/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Il Virtual Machine Monitor Full Virtualization e Paravirtualization Full Virtualization: fornisce una replica esatta dell interfaccia sottostante. Paravirtualization: espone una interfaccia simile ma non identica a quella sottostante. Richiede che i sistemi operativi siano (in parte) modificati. 12/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Il Virtual Machine Monitor Intel VT e AMD-V Intel Virtualization Technology e AMD Virtualization hanno introdotto 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 Caratteristiche è un software Open Source: licenza GNU GPL. Progetto dell Università di Cambridge. Supporta IA-32, x86-64, IA-64 e PowerPC. Sistemi operativi supportati: Linux; NetBSD; FreeBSD; Solaris; Windows (con VT). 14/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Caratteristiche Supporters 15/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Caratteristiche Vantaggi di Prestazioni paragonabili a soluzioni non virtualizzate ( 8% overhead). Migrazione di una macchina virtuale in tempo reale (Quake 3 server in 60 ms). Fino a 32 VCPU per macchina virtuale. Inclusa in molte distribuzioni Linux: Fedora, Debian, Ubuntu e opensuse. 16/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Architettura Architettura di 17/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Architettura Domini In una macchina virtuale è detta dominio. Hypervisor è il VMM: implementa i meccanismi; esporta un interfaccia di controllo al dominio 0. Il dominio 0 è un dominio privilegiato: definisce le politiche; crea, sospende, ripristina e migra i domini utente. I domini U ospitano le macchine virtuali utente. 18/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Architettura Livelli di Protezione della CPU utilizza il concetto di ring x86: livelli di privilegio. I domini devono invocare per le operazioni privilegiate. 19/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Architettura Hypercall I domini invocano tramite hypercall. Analogo delle system call in un sistema operativo. 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 Architettura Il Modello Split Device Driver un dominio driver controlla un dispositivo tramite il driver originale, e accetta richieste tramite un backend driver. gli altri domini utilizzano un frontend driver. 21/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Procedura d Installazione Passi per Creare un Dominio Utente 1. Installare e il kernel del dominio 0. Sorgenti o pacchetti. 2. Creare una partizione per il dominio utente. Partizione fisica/lvm/file. 3. Creare un file system per il dominio utente. 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 Procedura d Installazione Esempio 23/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
La Virtualizzazione Procedura d Installazione Esempio 24/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Parte II Protezione del Kernel Tramite Macchine Virtuali 25/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Attacco e Evasione dei Controlli di Sicurezza I Rootkits Rootkits: collezione di programmi utilizzati da un attaccante per... nascondere processi o file, mantenere l accesso al sistema compromesso. A livello utente: ad es., modifica utilità di sistema (ps). 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 -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 -VMI Valutazione e Conclusioni Virtual Machine Introspection Introspezione Visibilità: accesso allo stato di una MV da un livello inferiore. Robustezza: controlli effettuati da un altra MV. 28/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Virtual Machine Introspection Problema Semantico L introspezione accede solo a dati di basso livello. Occorre una libreria di introspezione che: ricostruisca le stutture dati del kernel dai dati grezzi ; verifichi la loro consistenza. Assunzione: è affidabile. Interfaccia limitata. Dimensione ridotta. 29/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Virtual Machine Introspection Macchina Virtuale d Introspezione Monitora le altre MV. -VMI è la libreria di introspezione L introspettore protegge l integrità del kernel. 30/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -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 -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. 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 -VMI Valutazione e Conclusioni Virtual Machine Introspection Chain of Trust 33/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Virtual Machine Introspection Strategia Generale dei Controlli 1. Mappare le pagine di memoria del kernel con le strutture dati critiche. 2. Cast dei dati di basso livello nelle strutture dati relative. Utilizzo header del kernel Linux. 3. Controlli di consistenza. 34/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -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 -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 -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 -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 -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 -VMI Valutazione e Conclusioni Valutazione della Sicurezza e delle Prestazioni Efficacia dei Controlli -VMI rileva: Modifiche al codice e a strutture dati critiche del kernel. Sezione text. Moduli non autorizzati o modificati. Tabelle interruzioni / chiamate di sistema. Modifiche a utilità di sistema: 1. Controllo processi in esecuzione con introspezione e ps. 2. Controllo file aperti tramite introspezione e lsof. Modalità promiscua nelle schede di rete. 40/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Valutazione della Sicurezza e delle Prestazioni Overhead Introdotto dai Controlli di Consistenza Inferiore al 10% nel caso peggiore. 41/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Limiti Attuali e Sviluppi Futuri Limiti Attuali del Prototipo Altre regioni critiche del kernel da proteggere. Es:. strutture dati Virtual File System. Modifiche illecite a strutture dati dinamiche (es., stack). Attacchi diretti al VMM. Attacchi al kernel temporizzati per evadere i controlli. 42/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Limiti Attuali e Sviluppi Futuri Sviluppi Futuri Controllo processi a livello utente tramite introspezione. Controllo di invarianti dei processi/kernel calcolate con metodi statici. Tracciamento di un processo da un altra VM (es., ptrace). Verifica parametri / ordine delle chiamate di sistema. 43/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa
Problemi -VMI Valutazione e Conclusioni Limiti Attuali e Sviluppi Futuri Domande? 44/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa