Evoluzione del malware



Похожие документы
Università degli Studi di Milano. Malware. Aristide Fattori

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Hardware di un Computer

Protezione del Kernel Tramite Macchine Virtuali

ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE

Architettura di un sistema operativo

Introduzione alla Virtualizzazione

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Malware. Roberto Paleari, Alessandro Rinaldi

Virtualizzazione e Macchine Virtuali

Che cosa è un VIRUS?

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM

Architetture software. Virtualizzazione

STRUTTURE DEI SISTEMI DI CALCOLO

Il Software. Il software del PC. Il BIOS

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

VirtualBox. Eseguire altri sistemi operativi dentro Linux. Stefano Sanfilippo. POuL. 28 ottobre 2013

Approccio stratificato

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Il Sistema Operativo (1)

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Corso di Informatica

Macchine Virtuali. Docente: Fabio Tordini

REQUISITI TECNICI HR INFINITY ZUCCHETTI

Corso di Sistemi di Elaborazione delle informazioni

Virtualizzazione VirtualBox su Host Windows

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

Virus informatici Approfondimenti tecnici per giuristi

Architettura di un sistema di calcolo

Corso di Informatica

La virtualizzazione ed i suoi aspetti di sicurezza. Sergio Sagliocco Responsabile SecureLAB Direzione R&D CSP

Guida all utilizzo della postazione virtuale (VDI)

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

BOLLETTINO DI SICUREZZA INFORMATICA

ANALISI DÌ MALWARE E SOLUZIONI DÌ DIFESA. Tesina di Matteo Neri A.S

Guida all utilizzo della postazione virtuale (VDI)

Risolvere i problemi di avvio di Windows XP

Setup dell ambiente virtuale

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Software di base. Corso di Fondamenti di Informatica

I Sistemi Operativi. Installazione Ubuntu Linux su Macchina Virtuale

GNUraghe. Desktop Virtualization +VirtualBox+...quando un solo pc non basta più... IL LUG DI ORISTANO. Virtualizzazione dei sistemi con VirtualBox

Domande e risposte. Sommario. Autodesk Revit Autodesk Revit Architecture Autodesk Revit MEP Autodesk Revit Structure Autodesk Revit LT

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Introduzione ai Sistemi Operativi

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

2 Dipendenza da Internet Tipi di dipendenza Fasi di approccio al Web Fine del corso... 7

Le virtual machine e la memoria virtuale

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

L avvocato hacker. Genova, 15 marzo Prof. Giovanni Ziccardi Università degli Studi di Milano

27/03/2013. Contenuti

LA SICUREZZA INFORMATICA SU INTERNET NOZIONI DI BASE SU INTERNET

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

DKVM-4K Switch PS2 KVM a 4 porte

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Capitolo 3: Strutture dei sistemi operativi

GUIDA ALLE SOLUZIONI

Sophos Computer Security Scan Guida di avvio

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Strumenti per l Analisi Statica e Dinamica di Eseguibili

Collegamento al sistema

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

IL MULTIBOOT. Un sistema multiboot consiste nella possibilità di caricare più sistemi operativi sullo stesso computer.

Domande e risposte su Avira ProActiv Community

Protezione del Software

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

VIRTUAL INFRASTRUCTURE DATABASE

Indicazioni per una corretta configurazione del browser

Informatica e Bioinformatica: Sistemi Operativi

Usare MUD2011 con Windows 7

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Manuale del software GP-N100 Utility

Virtualizzazione. Orazio Battaglia

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Sistemi di Antivirus CEFRIEL. Politecnico di Milano. Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione. Politecnico di Milano

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Informatica - A.A. 2010/11

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Транскрипт:

Evoluzione del malware Lorenzo Martignoni lorenzo.martignoni@uniud.it Roberto Paleari roberto@security.dico.unimi.it Università degli Studi di Udine Università degli Studi di Milano

Malware Sequenza di codice progettata per danneggiare intenzionalmente un sistema, i dati che contiene o comunque alterare il suo normale funzionamento, all insaputa dell utente 17 marzo 2010 Evoluzione del malware 2

Malware & underground economy Vendita informazioni rubate Goods & services Percentage Range of prices Bank accounts 22% $10-$1000 Credit cards 13% $0.40-$20 Full identities 9% $1-$15 Online auction site accounts 7% $1-$8 Scams 7% $2.50-$50/week (hosting) Mailers 6% $1-$10 Email addresses 5% $0.83/MB-$10/MB Email passwords 5% $4-$30 Drop (request or offer) 5% 10%-20% of drop amount Proxies 5% $1.50-$30 Fonte: Symantec 17 marzo 2010 Evoluzione del malware 3

Evoluzione del malware Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 4

Evoluzione del malware Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 4

Evoluzione del malware Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 4

Evoluzione del malware Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 4

Evoluzione del malware Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 4

Evoluzione del malware Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 4

Situazione attuale Malware vs AV AV in posizione svantaggiata The amount of new malware has never been higher. Our labs are receiving an average of 25,000 malware samples every day, seven days a week. F-Secure, 2008 17 marzo 2010 Evoluzione del malware 5

Kernel & drivers Hypervisor BIOS/SMM Chipset CPU User-space malware

Malware tradizionale Codice assembly/c/macro Diffusione via file infection (es., virus) o via rete (es., worm) 17 marzo 2010 Evoluzione del malware 7

Malware tradizionale Codice assembly/c/macro Diffusione via file infection (es., virus) o via rete (es., worm) 1983 Frederick Cohen Computer virus 1987 Jerusalem 1995 Concept 1981 Elk Cloner 1986 Brain 1988 Morris worm 17 marzo 2010 Evoluzione del malware 7

Malware tradizionale Codice assembly/c/macro Diffusione via file infection (es., virus) o via rete (es., worm) Problemi Piuttosto semplici Il codice del malware non è protetto/offuscato in alcun modo Signature-based detection efficace 17 marzo 2010 Evoluzione del malware 7

Contromisure Detection signature-based Come funziona? Database di signature Un applicazione che contiene una signature nota viene considerate infetta 17 marzo 2010 Evoluzione del malware 8

Contromisure Detection signature-based Come funziona? Database di signature Un applicazione che contiene una signature nota viene considerate infetta Codice applicazione 17 marzo 2010 Evoluzione del malware 8

Contromisure Detection signature-based Come funziona? Database di signature Un applicazione che contiene una signature nota viene considerate infetta Signature 17 marzo 2010 Evoluzione del malware 8

Contromisure Detection signature-based Come funziona? Database di signature Un applicazione che contiene una signature nota viene considerate infetta + + 17 marzo 2010 Evoluzione del malware 8

Contromisure Detection signature-based Come funziona? Database di signature Un applicazione che contiene una signature nota viene considerate infetta + + + + 17 marzo 2010 Evoluzione del malware 8

Contromisure Detection signature-based Come funziona? Database di signature Un applicazione che contiene una signature nota viene considerate infetta + + + + + + 17 marzo 2010 Evoluzione del malware 8

Tecniche di self-defense Packing Codice maligno nascosto da 1 + layer di compressione/cifratura Decompressione/decrifratura a run-time 17 marzo 2010 Evoluzione del malware 9

Tecniche di self-defense Packing Codice maligno nascosto da 1 + layer di compressione/cifratura Decompressione/decrifratura a run-time Malicious code 17 marzo 2010 Evoluzione del malware 9

Tecniche di self-defense Packing Codice maligno nascosto da 1 + layer di compressione/cifratura Decompressione/decrifratura a run-time Unpacking routine Malicious code 17 marzo 2010 Evoluzione del malware 9

Tecniche di self-defense Packing Codice maligno nascosto da 1 + layer di compressione/cifratura Decompressione/decrifratura a run-time Unpacking routine Unpacking routine Malicious code 17 marzo 2010 Evoluzione del malware 9

Tecniche di self-defense Packing Codice maligno nascosto da 1 + layer di compressione/cifratura Decompressione/decrifratura a run-time Unpacking routine Unpacking routine Malicious code Problema 80% del malware è packed 200 famiglie di packer, 2000 varianti Backlog di 90 famiglie Fonte: Symantec, 2008 17 marzo 2010 Evoluzione del malware 9

Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata 17 marzo 2010 Evoluzione del malware 10

Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata Idea: variare la routine di packing ad ogni infezione 17 marzo 2010 Evoluzione del malware 10

Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata Idea: variare la routine di packing ad ogni infezione La semantica della routine rimane sempre la stessa 17 marzo 2010 Evoluzione del malware 10

Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata Idea: variare la routine di packing ad ogni infezione La semantica della routine rimane sempre la stessa Contromisure Emulazione Algorithmic detection 17 marzo 2010 Evoluzione del malware 10

Tecniche di self-defense Metamorfismo Metamorphics are body-polymorphics (Igor Muttik) Ad ogni infezione muta l intero corpo del malware Mutazione #1 Mutazione #2 Mutazione #3 17 marzo 2010 Evoluzione del malware 11

Tecniche di self-defense Metamorfismo Metamorphics are body-polymorphics (Igor Muttik) Ad ogni infezione muta l intero corpo del malware Come funziona? 1. Analizza il proprio codice 2. Identifica dei blocchi 3. lica mutazioni Codice malware 17 marzo 2010 Evoluzione del malware 11

Tecniche di self-defense Metamorfismo Metamorphics are body-polymorphics (Igor Muttik) Ad ogni infezione muta l intero corpo del malware blocco 1 Come funziona? 1. Analizza il proprio codice 2. Identifica dei blocchi 3. lica mutazioni blocco 2 blocco 3 blocco 4 blocco 5 blocco 6 blocco 7 blocco 8 17 marzo 2010 Evoluzione del malware 11

Tecniche di self-defense Metamorfismo Metamorphics are body-polymorphics (Igor Muttik) Ad ogni infezione muta l intero corpo del malware blocco 1 Come funziona? 1. Analizza il proprio codice 2. Identifica dei blocchi 3. lica mutazioni blocco 2 blocco 3 blocco 4 blocco 5 blocco 6 blocco 7 blocco 8 17 marzo 2010 Evoluzione del malware 11

Tecniche di self-defense Metamorfismo Metamorphics are body-polymorphics (Igor Muttik) Ad ogni infezione muta l intero corpo del malware blocco 1 Come funziona? 1. Analizza il proprio codice 2. Identifica dei blocchi 3. lica mutazioni blocco 6 blocco 3 blocco 9 blocco 5 blocco 2 blocco 10 blocco 8 17 marzo 2010 Evoluzione del malware 11

Tecniche di self-defense Metamorfismo Metamorphics are body-polymorphics (Igor Muttik) Ad ogni infezione muta l intero corpo del malware Problema Analizzatore di codice particolarmente complesso Sviluppare un motore metamorfico è molto difficile 17 marzo 2010 Evoluzione del malware 11

Tecniche di self-defense Malware emulators mov %ax, $0xcafe; xor %ebx, %ebx; inc %ecx; int $0x2e; Programma originale inst 37 %r 6, $0xcafe; inst 15 %r 2, %r 2 ; inst 24 %r 11 ; inst 4 $0x2e; VM Programma offuscato 1. Codice del malware trasformato in bytecode 2. Bytecode interpretato a run-time da una VM 3. Bytecode mutato ad ogni infezione 17 marzo 2010 Evoluzione del malware 12

Tecniche di self-defense Malware emulators mov %ax, $0xcafe; xor %ebx, %ebx; inc %ecx; int $0x2e; Programma originale inst 37 %r 6, $0xcafe; inst 15 %r 2, %r 2 ; inst 24 %r 11 ; inst 4 $0x2e; VM Programma offuscato 1. Codice del malware trasformato in bytecode 2. Bytecode interpretato a run-time da una VM 3. Bytecode mutato ad ogni infezione Sembra complicato? 17 marzo 2010 Evoluzione del malware 12

Tecniche di self-defense Malware emulators 17 marzo 2010 Evoluzione del malware 12

Tecniche di self-defense Contromisure Signature-based detection è troppo debole Verso tecniche più semantiche 17 marzo 2010 Evoluzione del malware 13

Tecniche di self-defense Contromisure Signature-based detection è troppo debole Verso tecniche più semantiche Soluzioni Analisi dinamica Granularità a livello di system call Panda TruPrevent, AVG Identity Protection, NovaShield, ThreatFire,... Problemi Performance Falsi positivi Information leakage 17 marzo 2010 Evoluzione del malware 13

Strumenti anti-malware di nuova generazione Analisi statica impraticabile o troppo onerosa Analisi dinamica in ambienti emulati 17 marzo 2010 Evoluzione del malware 14

Strumenti anti-malware di nuova generazione Analisi statica impraticabile o troppo onerosa Analisi dinamica in ambienti emulati Esempi Anubis CWSandbox BitBlaze 17 marzo 2010 Evoluzione del malware 14

Strumenti anti-malware di nuova generazione Analisi statica impraticabile o troppo onerosa Analisi dinamica in ambienti emulati Esempi Anubis CWSandbox BitBlaze Come funzionano? 1. Esecuzione dell applicazione sospetta in un emulatore 2. Monitoring dell esecuzione (VM introspection) 3. Rilevamento di comportamenti maligni 17 marzo 2010 Evoluzione del malware 14

Rilevamento VM Red-pill Programma in grado di rilevare se eseguito all interno di un emulatore (o virtualizzatore) CPU EMU Fonte: A fistful of red-pills (R. Paleari, L. Martignoni, G. Fresi Roglia, D. Bruschi) 17 marzo 2010 Evoluzione del malware 15

Rilevamento VM Red-pill Programma in grado di rilevare se eseguito all interno di un emulatore (o virtualizzatore) void main() { redpill = \x08\x7c\xe3\x04... ; if (((void (*)())redpill)()) { // Eseguito su CPU fisica return CPU; } else { // Eseguito su CPU emulata return EMU; } } Fonte: A fistful of red-pills (R. Paleari, L. Martignoni, G. Fresi Roglia, D. Bruschi) 17 marzo 2010 Evoluzione del malware 15

Rilevamento VM Red-pill Programma in grado di rilevare se eseguito all interno di un emulatore (o virtualizzatore) Qualche numero... BOCHS State differences: R M E Pin Valgrind QEMU 50 100 150 200 250 300 350 400 450 500 550 Fonte: A fistful of red-pills (R. Paleari, L. Martignoni, G. Fresi Roglia, D. Bruschi) 17 marzo 2010 Evoluzione del malware 15

Kernel & drivers Hypervisor BIOS/SMM Chipset CPU Kernel-space malware

Root-kit Cosa sono? Strumenti utilizzati per nascondere la presenza di attività maligna nel sistema Cosa nascondere? File Chiavi di registro Servizi Connessioni di rete Processi... 17 marzo 2010 Evoluzione del malware 17

Root-kit Cosa sono? Strumenti utilizzati per nascondere la presenza di attività maligna nel sistema Cosa nascondere? File Chiavi di registro Servizi Connessioni di rete Processi... User-mode Kernel-mode Kernel & drivers User-space vs kernel-space 17 marzo 2010 Evoluzione del malware 17

Root-kit Hooking Obiettivo Dirottare il flusso di esecuzione modificando un code pointer Esempi User-space: IAT Kernel-space: IDT, MSR, SSDT 17 marzo 2010 Evoluzione del malware 18

Root-kit Hooking: IDT Interrupt Descriptor Table Dispatching di interruzioni ed eccezioni User-space Interrupt Sw int./excep. &handler i Kernel-space Handler IDT 17 marzo 2010 Evoluzione del malware 19

Root-kit Hooking: IDT Interrupt Descriptor Table Dispatching di interruzioni ed eccezioni Hijacking di 1 + handler (e.g., 0x2e KiSystemService) User-space Interrupt Sw int./excep. &handler m IDT Kernel-space Handler Malicious handler 17 marzo 2010 Evoluzione del malware 19

Root-kit Hooking: IDT Interrupt Descriptor Table Dispatching di interruzioni ed eccezioni Hijacking di 1 + handler (e.g., 0x2e KiSystemService) Problemi Non è possibile fare filtering Le system call non possono essere intercettate se viene usata sysenter/syscall Detection semplice: if (IDT[0x2e]!= KiSystemService) then... 17 marzo 2010 Evoluzione del malware 19

Root-kit Hooking: SSDT System Service Descriptor Table Dispatching system call int/sysenter/syscall User-space Kernel-space Syscall gate &handler i Handler SSDT 17 marzo 2010 Evoluzione del malware 20

Root-kit Hooking: SSDT System Service Descriptor Table Dispatching system call Hijacking di 1 + descrittori (e.g., 0x74 NtOpenFile) int/sysenter/syscall User-space Kernel-space Syscall gate &handler m SSDT Handler Malicious handler 17 marzo 2010 Evoluzione del malware 20

Root-kit Hooking: SSDT System Service Descriptor Table Dispatching system call Hijacking di 1 + descrittori (e.g., 0x74 NtOpenFile) Problemi Detection comunque semplice: if (SSDT[0x74]!= NtOpenFile) then... 17 marzo 2010 Evoluzione del malware 20

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax movl $0x7ffe0300, %edx nop call *%edx ret $0x18... 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Run-time patching È possibile intercettare l esecuzione in molti punti diversi Più difficile da rilevare... NtOpenFile: movl $0x74, %eax pushl MaliciousHandler ret call *%edx ret $0x18... MaliciousHandler:... movl $0x7ffe0300, %edx nop push addr ret 17 marzo 2010 Evoluzione del malware 21

Root-kit Direct Kernel Object Manipulation (DKOM) Alterazione delle strutture kernel in memoria Nessun hook o patch al codice 17 marzo 2010 Evoluzione del malware 22

Root-kit Direct Kernel Object Manipulation (DKOM) Alterazione delle strutture kernel in memoria Nessun hook o patch al codice EPROCESS csrss.exe EPROCESS malware.exe EPROCESS svchost.exe 17 marzo 2010 Evoluzione del malware 22

Root-kit Direct Kernel Object Manipulation (DKOM) Alterazione delle strutture kernel in memoria Nessun hook o patch al codice EPROCESS csrss.exe EPROCESS malware.exe EPROCESS svchost.exe Il processo malware.exe non compare più tra quelli in esecuzione Scheduling è thread-based 17 marzo 2010 Evoluzione del malware 22

Root-kit Direct Kernel Object Manipulation (DKOM) Alterazione delle strutture kernel in memoria Nessun hook o patch al codice MODULE ENTRY ntfs.sys MODULE ENTRY malware.sys MODULE ENTRY pci.sys C:\WINDOWS> drivers.exe ModuleName Code Data Bss Paged Init LinkDate ------------------------------------------------------------------------------... ntfs.sys 96000 7040 0 412544 14080 Wed Aug 04 08:15:06 2004 malware.sys 3903 0 0 0 0 Sat Mar 13 02:22:32 2010 pci.sys 16000 1664 0 34176 5632 Wed Aug 04 08:07:45 2004... 17 marzo 2010 Evoluzione del malware 22

Root-kit Direct Kernel Object Manipulation (DKOM) Alterazione delle strutture kernel in memoria Nessun hook o patch al codice MODULE ENTRY ntfs.sys MODULE ENTRY malware.sys MODULE ENTRY pci.sys C:\WINDOWS> drivers.exe ModuleName Code Data Bss Paged Init LinkDate ------------------------------------------------------------------------------... ntfs.sys 96000 7040 0 412544 14080 Wed Aug 04 08:15:06 2004 pci.sys 16000 1664 0 34176 5632 Wed Aug 04 08:07:45 2004... 17 marzo 2010 Evoluzione del malware 22

Root-kit Esempio: Mebroot (2007 2008) Funzionamento 1. Infezione master boot record (MBR) 2. Dati memorizzati raw sul disco ( nessun file) 3. Hooking INT13 per patching run-time del kernel 4. Caricamento device driver 5. Run-time patch in disk.sys per nascondere il MBR modificato Fonte: F-Secure & Symantec 17 marzo 2010 Evoluzione del malware 23

Root-kit Esempio: Mebroot (2007 2008) Funzionamento 1. Infezione master boot record (MBR) 2. Dati memorizzati raw sul disco ( nessun file) 3. Hooking INT13 per patching run-time del kernel 4. Caricamento device driver 5. Run-time patch in disk.sys per nascondere il MBR modificato Versioni successive ancora più evolute This malware is very professionally written and produced. Which of course means it s not written for fun. Fonte: F-Secure & Symantec 17 marzo 2010 Evoluzione del malware 23

Root-kit Contromisure: Windows Vista Caratteristiche \Device\PhysicalMemory non accessibile da user-mode Firma dei driver PatchGuard 17 marzo 2010 Evoluzione del malware 24

Root-kit Contromisure: Windows Vista Caratteristiche \Device\PhysicalMemory non accessibile da user-mode Firma dei driver PatchGuard Accesso a \Device\PhysicalMemory consente la modifica della memoria kernel (senza necessità di driver) 17 marzo 2010 Evoluzione del malware 24

Root-kit Contromisure: Windows Vista Caratteristiche \Device\PhysicalMemory non accessibile da user-mode Firma dei driver PatchGuard Accesso a \Device\PhysicalMemory consente la modifica della memoria kernel (senza necessità di driver) Problemi Modifica dello swap file Richiede accesso raw al disco (disabilitato da user-mode nelle versioni attuali di Vista) Funzionalità fornita da driver firmati (es., disk editor) 17 marzo 2010 Evoluzione del malware 24

Root-kit Contromisure: Windows Vista Caratteristiche \Device\PhysicalMemory non accessibile da user-mode Firma dei driver PatchGuard Richiesta firma digitale di driver e componenti critici Nemmeno Administrator può caricare driver non firmati 17 marzo 2010 Evoluzione del malware 24

Root-kit Contromisure: Windows Vista Caratteristiche \Device\PhysicalMemory non accessibile da user-mode Firma dei driver PatchGuard Richiesta firma digitale di driver e componenti critici Nemmeno Administrator può caricare driver non firmati Problemi Problemi etici (... ed economici!) Basta un reboot (es., Vbootkit) Vulnerabilità in driver firmati? 17 marzo 2010 Evoluzione del malware 24

Root-kit Contromisure: Windows Vista Caratteristiche \Device\PhysicalMemory non accessibile da user-mode Firma dei driver PatchGuard Da Win XP e Win 2003 SP1 (x64) Verifica periodica di integrità 17 marzo 2010 Evoluzione del malware 24

Root-kit Contromisure: Windows Vista Caratteristiche \Device\PhysicalMemory non accessibile da user-mode Firma dei driver PatchGuard Da Win XP e Win 2003 SP1 (x64) Verifica periodica di integrità Problemi Problemi di compatibilità 3 versioni, poi exploitate 17 marzo 2010 Evoluzione del malware 24

Kernel & drivers Hypervisor BIOS/SMM Chipset CPU Malware di nuova generazione

Malware di nuova generazione Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 26

Malware di nuova generazione Malware detector Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 26

Malware di nuova generazione Malware detector Kernel & drivers Hypervisor BIOS/SMM Chipset CPU 17 marzo 2010 Evoluzione del malware 26

Malware di nuova generazione Ago 2006 D. Dai Zovi Vitriol Set 2008 S. Embleton SMM rootkit Mag 2006 S. King SubVirt Ago 2006 J. Rutkowska Blue Pill Mar 2009 J. Rutkowska SMM memory attack 17 marzo 2010 Evoluzione del malware 27

Kernel & drivers Hypervisor BIOS/SMM Chipset CPU Malware basati su hypervisor

Hypervisor Kernel Hardware 17 marzo 2010 Evoluzione del malware 29

Hypervisor Kernel Hypervisor Hardware Un hypervisor, anche chiamato virtual machine monitor (VMM), è un componente software che permette di condividere le risorse fisiche di un sistema tra più sistemi operativi 17 marzo 2010 Evoluzione del malware 29

Hypervisor Kernel Kernel Hypervisor Hardware Un hypervisor, anche chiamato virtual machine monitor (VMM), è un componente software che permette di condividere le risorse fisiche di un sistema tra più sistemi operativi 17 marzo 2010 Evoluzione del malware 29

Hypervisor Kernel Kernel Hypervisor Hardware Le CPU dei moderni PC supportano delle estensioni (es. Intel VT-x) che facilitano il compito dell hypervisor 17 marzo 2010 Evoluzione del malware 29

Malware basati su hypervisor Kernel Hardware 17 marzo 2010 Evoluzione del malware 30

Malware basati su hypervisor Kernel Kernel Hypervisor Hardware Hardware La macchina fisica viene convertita di nascosto in una virtuale 17 marzo 2010 Evoluzione del malware 30

Malware basati su hypervisor Kernel Hardware Kernel Hypervisor Hardware La macchina fisica viene convertita di nascosto in una virtuale Vantaggi dell attaccante: Pieno controllo del sistema Invisibilità (quasi) totale Possibilità di sviluppare nuove applicazioni maligne 17 marzo 2010 Evoluzione del malware 30

Malware basato su hypervisor software (SubVirt) Modalità di installazione: L installazione avviene durante lo spegnimento Modifica della sequenza di avvio: BIOS MBR Boot Sector Sistema Operativo Malware basato su Virtual PC o VMware Fonte: SubVirt: Implementing malware with virtual machines (S. T. King,... ) 17 marzo 2010 Evoluzione del malware 31

Malware basato su hypervisor software (SubVirt) Modalità di installazione: L installazione avviene durante lo spegnimento Modifica della sequenza di avvio: BIOS Malware MBR Boot Sector Sistema Operativo Malware basato su Virtual PC o VMware Fonte: SubVirt: Implementing malware with virtual machines (S. T. King,... ) 17 marzo 2010 Evoluzione del malware 31

Supporto hardware per la virtualizzazione Intel VT-X, AMD SVM R3 R1 Kernel R0 Hypervisor 17 marzo 2010 Evoluzione del malware 32

Supporto hardware per la virtualizzazione Intel VT-X, AMD SVM R3 R3 R1 Kernel R0 Kernel R0 Hypervisor Root mode Hypervisor 17 marzo 2010 Evoluzione del malware 32

Supporto hardware per la virtualizzazione Intel VT-X, AMD SVM R3 R3 R1 Kernel R0 Kernel R0 Hypervisor Root mode Hypervisor Sistema operativo eseguito normalmente Overhead minimo Trasparenza & isolamento garantiti dall hardware Disponibile su tutti i PC (desktop & portatili) 17 marzo 2010 Evoluzione del malware 32

Supporto hardware per la virtualizzazione Intel VT-X, AMD SVM R3 R3 R1 Kernel R0 Kernel R0 Hypervisor Root mode Hypervisor Enter ExitEnter Hypervisor Kernel/ 17 marzo 2010 Evoluzione del malware 32

Supporto hardware per la virtualizzazione Intel VT-X, AMD SVM R3 R3 R1 Kernel R0 Kernel R0 Hypervisor Root mode Hypervisor Enter ExitEnter Hypervisor Kernel/ L hypervisor può configurare dinamicamente l insieme degli eventi che causano exit 17 marzo 2010 Evoluzione del malware 32

Supporto hardware per la virtualizzazione Intel VT-X, AMD SVM R3 R3 R1 Kernel R0 Kernel R0 Hypervisor Root mode Hypervisor 17 marzo 2010 Evoluzione del malware 32

Late launch di un hypervisor Kernel Installazione di un hypervisor in un sistema in esecuzione 17 marzo 2010 Evoluzione del malware 33

Late launch di un hypervisor Kernel Hypervisor Installazione di un hypervisor in un sistema in esecuzione 17 marzo 2010 Evoluzione del malware 33

Late launch di un hypervisor Kernel 17 marzo 2010 Evoluzione del malware 33

Late launch di un hypervisor Kernel 17 marzo 2010 Evoluzione del malware 33

Late launch di un hypervisor Kernel Hypervisor Installazione di un hypervisor maligno in un sistema in esecuzione 17 marzo 2010 Evoluzione del malware 33

Late launch di un hypervisor Kernel Hypervisor L installazione dell hypervisor è impercettibile dall utente Il malware ha pieno controllo del sistema Una volta installato il malware è completamente trasparente Tutti gli utenti con PC con supporto hardware per virtualizzazione (abilitato da BIOS) sono vulnerabili!!! 17 marzo 2010 Evoluzione del malware 33

Keyboard sniffer Exit ad ogni operazione di I/O sulla porta della tastiera Enter Exit (I/O) Hypervisor Kernel/ 17 marzo 2010 Evoluzione del malware 34

Il problema è reale Blue pill (Windows Vista 64) Vitriol (Mac OS X) Blue pill/vitriol vs. SubVirt: 6000LOC Infezione di in un sistema in esecuzione Trasparente Bastato su VMware L infezione richiede il riavvio del sistema Non trasparente Fonte: Subverting Vista Kernel For Fun And Profit (J. Rutkowska) Fonte: Hardware Virtualization Based rootkits (D. Dai Zovi) 17 marzo 2010 Evoluzione del malware 35

Siete vulnerabili? $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 26... flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca sse4_1 sse4_2 popcnt lahf_lm ida bogomips : 5070.65... $ 17 marzo 2010 Evoluzione del malware 36

Limitazioni & Prevenzione Limitazioni: È necessario eseguire codice kernel per caricare l hypervisor Se un hypervisor è già caricato il nuovo non ha pieno controllo del sistema Il supporto hardware per la virtualizzazione deve essere abilitato da BIOS 17 marzo 2010 Evoluzione del malware 37

Limitazioni & Prevenzione Limitazioni: È necessario eseguire codice kernel per caricare l hypervisor Se un hypervisor è già caricato il nuovo non ha pieno controllo del sistema Il supporto hardware per la virtualizzazione deve essere abilitato da BIOS Prevenzione: Impedire l esecuzione di codice kernel non fidato (driver) Hypervisor dummy Disabilitare il supporto hardware per la virtualizzazione da BIOS 17 marzo 2010 Evoluzione del malware 37

Invisibile al 100%? Il malware è invisibile al 100%, l hypervisor non lo è L hypervisor può alterare leggermente lo stato della CPU L overhead è minimo, ma non nullo (alcune istruzioni sono più costose da eseguire quando l hypervisor è caricato) for (i = 1... 1000) { cpuid(); } Fonte: Garfinkel,... ) Compatibility is Not Transparency: VMM Detection Myths and Realities (Tal 17 marzo 2010 Evoluzione del malware 38

Altri usi del late launching 17 marzo 2010 Evoluzione del malware 39

Altri usi del late launching 17 marzo 2010 Evoluzione del malware 39

Altri usi del late launching 17 marzo 2010 Evoluzione del malware 39

Altri usi del late launching 17 marzo 2010 Evoluzione del malware 39

Kernel & drivers Hypervisor BIOS/SMM Chipset CPU SMM malware

SMM malware System Management Mode modalità di esecuzione con alti privilegi per power management, emulazione PS/2,... memoria SMM può essere acceduta solo da modalità SMM (no da kernel e nemmeno hypervisor) SMI# Protected mode SMM rsm 17 marzo 2010 Evoluzione del malware 41

SMM malware System Management Mode modalità di esecuzione con alti privilegi per power management, emulazione PS/2,... memoria SMM può essere acceduta solo da modalità SMM (no da kernel e nemmeno hypervisor) SMM malware accesso all intera memoria di sistema privilegi maggiori di un eventuale hypervisor Fonte: SMM Rootkits: A New Breed of OS Independent Malware (S. Embleton,... ) 17 marzo 2010 Evoluzione del malware 41

SMM malware System Management Mode modalità di esecuzione con alti privilegi per power management, emulazione PS/2,... memoria SMM può essere acceduta solo da modalità SMM (no da kernel e nemmeno hypervisor) Come? Tecnica #1 Bug architetturale Intel 1. impostare memoria SMM come cachable 2. scrittura memoria SMM ( modifica della cache, concessa dal controller) 3. SMI# Fonte: SMM Cache Fun (Invisible Things Lab) 17 marzo 2010 Evoluzione del malware 41

SMM malware System Management Mode modalità di esecuzione con alti privilegi per power management, emulazione PS/2,... memoria SMM può essere acceduta solo da modalità SMM (no da kernel e nemmeno hypervisor) Come? Tecnica #2 Bug architetturale Intel mov 0x407d(%rip),%rax callq *0x18(%rax) Fuori da memoria SMM! Fonte: SMM Cache Fun (Invisible Things Lab) 17 marzo 2010 Evoluzione del malware 41

Altre forme di malware 17 marzo 2010 Evoluzione del malware 42

Altre forme di malware Firmware modificato per sniffare le pressioni dei tasti Malware impossibile da identificare ed in grado di sopravvivere al reboot TPM completamente inefficace Fonte: Reversing and exploiting an le firmware update (K. Chen) 17 marzo 2010 Evoluzione del malware 42

? Kernel & drivers Hypervisor BIOS/SMM Chipset CPU CPU malware

Evoluzione del malware Domande? Lorenzo Martignoni lorenzo.martignoni@uniud.it Roberto Paleari roberto@security.dico.unimi.it Università degli Studi di Udine Università degli Studi di Milano 17 marzo 2010 Evoluzione del malware 44