Introduzione Virus Worm Anti-virus Bibliografia Malware Roberto Paleari <[email protected]> Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali CFP Vigorelli 1-6 febbraio 2006 Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Sommario 1 Introduzione 2 Virus 3 Worm 4 Anti-virus 5 Bibliografia Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Sommario 1 Introduzione 2 Virus 3 Worm 4 Anti-virus 5 Bibliografia Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Sommario 1 Introduzione 2 Virus 3 Worm 4 Anti-virus 5 Bibliografia Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Sommario 1 Introduzione 2 Virus 3 Worm 4 Anti-virus 5 Bibliografia Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Sommario 1 Introduzione 2 Virus 3 Worm 4 Anti-virus 5 Bibliografia Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione 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 Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Tipologie di malware (1) Virus replicazione autonoma necessitano di un ospite in cui inserirsi propagazione attraverso la diffusione dell’ospite Worm non necessitano di un ospite propagazione autonoma attraverso la rete capacità di propagarsi in sistemi altrui sfruttando delle vulnerabilità Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Tipologie di malware (1) Virus replicazione autonoma necessitano di un ospite in cui inserirsi propagazione attraverso la diffusione dell’ospite Worm non necessitano di un ospite propagazione autonoma attraverso la rete capacità di propagarsi in sistemi altrui sfruttando delle vulnerabilità Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Tipologie di malware (2) Trojan horse camuffamento di funzionalità maligne all’interno di altre benigne propagazione manuale: diffusione di applicazioni con funzionalità “secondarie” oppure inserimento di nuove funzionalità nelle applicazioni esistenti rientrano in questa categoria adware e spyware Backdoor codice in grado di garantire l’accesso ad un sistema evitando le normali procedure di autenticazione rientrano in questa categoria tutti i RAT (Remote Access Trojan) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Tipologie di malware (2) Trojan horse camuffamento di funzionalità maligne all’interno di altre benigne propagazione manuale: diffusione di applicazioni con funzionalità “secondarie” oppure inserimento di nuove funzionalità nelle applicazioni esistenti rientrano in questa categoria adware e spyware Backdoor codice in grado di garantire l’accesso ad un sistema evitando le normali procedure di autenticazione rientrano in questa categoria tutti i RAT (Remote Access Trojan) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Tipologie di malware (3) Rootkit strumenti utilizzati per mantenere l’accesso ad un sistema compromesso senza fare nascere sospetti utilizzati per nascondere file, processi, connessioni di rete, . . . possono lavorare sia a livello kernel che a livello utente Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Tipologie di payload non distruttivo accidentalmente distruttivo distruttivo DoS (Denial of Service) sottrazione di informazioni Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Convenzioni per la scelta dei nomi CARO naming convention: [malware_type://][platform/]family_name[.group_name] [.infective_lenght][.variant[devolution]][modifiers] Alcuni esempi: Trojan-Downloader.Win32.Banload Backdoor.Win32.Breplibot.o Virus.Multi.Etapux Net-Worm.Win32.Slammer SymbOS.Doomboot.P Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Classificazione Convenzioni per la scelta dei nomi CARO naming convention: [malware_type://][platform/]family_name[.group_name] [.infective_lenght][.variant[devolution]][modifiers] Alcuni esempi: Trojan-Downloader.Win32.Banload Backdoor.Win32.Breplibot.o Virus.Multi.Etapux Net-Worm.Win32.Slammer SymbOS.Doomboot.P Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Definizione Porzione di codice in grado di infettare altri programmi, modificandoli includendo una versione (eventualmente evoluta) di se stesso[1]. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche di infezione (1) Boot sector o MBR il virus viene inserito nel boot sector (hard-disk o floppy) o nel MBR (hard-disk) il virus viene eseguito durante la sequenza di avvio il virus può rimanere in memoria anche dopo la fase di boot File il virus è inserito in un ospite quando l’ospite viene eseguito viene eseguito anche il virus durante l’esecuzione il virus individua nuovi programmi in cui inserirsi e li infetta (evitando di infettare due volte lo stesso file) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche di infezione (1) Boot sector o MBR il virus viene inserito nel boot sector (hard-disk o floppy) o nel MBR (hard-disk) il virus viene eseguito durante la sequenza di avvio il virus può rimanere in memoria anche dopo la fase di boot File il virus è inserito in un ospite quando l’ospite viene eseguito viene eseguito anche il virus durante l’esecuzione il virus individua nuovi programmi in cui inserirsi e li infetta (evitando di infettare due volte lo stesso file) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche di infezione (2) Memoria il virus viene inserito all’interno dello spazio di indirizzamento di un processo il virus può rimanere attivo solo fino a quando il processo non termina il virus può essere inserito all’interno della memoria del kernel del sistema operativo Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche per l’infezione dei file Companion il nome del file che contiene il virus è scelto in modo tale che il SO esegua il virus quando l’utente richiede il programma originale; ad esempio su Windows è possibile: 1 2 3 4 sfruttare la precedenza dei .com sui .exe sfruttare l’ordine con cui un eseguibile viene cercato nel path rinominare il file originale e sostituirlo con il virus (es. notepad.exe → notepad.ex ) utilizzare gli stream NTFS (es. Win2k.Stream) Sovrascrittura parte del codice dell’ospite viene rimpiazzato con quello del virus. L’ospite non funzionerà più correttamente e la rimozione del virus non sarà possibile. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche per l’infezione dei file Companion il nome del file che contiene il virus è scelto in modo tale che il SO esegua il virus quando l’utente richiede il programma originale; ad esempio su Windows è possibile: 1 2 3 4 sfruttare la precedenza dei .com sui .exe sfruttare l’ordine con cui un eseguibile viene cercato nel path rinominare il file originale e sostituirlo con il virus (es. notepad.exe → notepad.ex ) utilizzare gli stream NTFS (es. Win2k.Stream) Sovrascrittura parte del codice dell’ospite viene rimpiazzato con quello del virus. L’ospite non funzionerà più correttamente e la rimozione del virus non sarà possibile. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche per l’infezione dei file Le tecniche seguenti preservano il file originale (facilitando anche la rimozione del virus): Inserimento in testa il codice dell’ospite viene spostato ed il virus viene inserito all’inizio del programma; il virus si preoccuperà di eseguire il codice originale dell’ospite più semplice in eseguibili plain (es. .com), ma possibile anche in quelli attuali (es. Nimda per i .exe) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche per l’infezione dei file Inserimento in coda il codice del virus viene inserito alla fine di quello dell’ospite; nel codice dell’ospite vengono inserite delle istruzioni per attivare il virus modificano l’inizio dell’host per saltare al corpo del virus, che a sua volta trasferirà poi il controllo all’host anche qui con eseguibili “complessi” (PE, ELF, . . . ) è necessario modificare opportunamente i metadati Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche per l’infezione dei file Inserimento nelle cavità il codice del virus viene inserito nei “buchi” trovati all’interno dell’ospite; nel codice dell’ospite vengono inserite le istruzioni per l’attivazione del virus (es. Lehigh, W2K/Installer) alcuni virus (es. W95/CIH) sono anche in grado di ripartire il proprio codice tra piu’ cavità (fractionated cavity virus) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Tecniche per l’infezione dei file Entry Point Obscuring (EPO) adattamento dell’ospite per mascherare l’attivazione del virus, senza modifiche dirette all’entry point o al codice dell’ospite nelle immediate vicinanze dell’entry point: inserimento di salti all’interno dell’ospite manipolazione dei salti o delle chiamate a funzione dell’ospite (es. ExitProcess()) manipolazione delle sezioni dinamiche dispersione del codice del virus in quello dell’ospite Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus Macro Virus molte applicazioni sono “programmabili” con un proprio linguaggio di scripting a volte tali linguaggi sono tanto “potenti” da consentire anche la scrittura di virus multi-piattaforma c macro per Microsoft Office, script Visual Basic, script mIRC, . . . il virus richiede la presenza di una applicazione che contenga l’interprete adeguato Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Tecniche di infezione Infezione di file Macro Virus Virus c Macro Virus nei prodotti Microsoft Office il virus è incluso nei documenti (o template) gestiti dalle applicazioni virus multi-piattaforma (a meno di language dependency o altri problemi di platform dependency) spesso per gli antivirus è difficile rimuovere completamente il virus senza toccare le macro degli utenti: macro corruption macro conversion evoluzioni e devoluzioni del codice ... esistono migliaia di esemplari: Melissa (1999), Laroux (Excel 1996), . . . Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Caratteristiche fondamentali Differenze tra Virus e Worm il principale mezzo di propagazione di uno worm è la rete (infezione network-oriented) non necessitano di un host da infettare, ma si propagano come programmi standalone distinguiamo[2]: active worms non richiedono l’intervento dell’utente per la propagazione (exploit) email worms richiedono una qualche azione dell’utente (propagazione più lenta) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Caratteristiche fondamentali Differenze tra Virus e Worm il principale mezzo di propagazione di uno worm è la rete (infezione network-oriented) non necessitano di un host da infettare, ma si propagano come programmi standalone distinguiamo[2]: active worms non richiedono l’intervento dell’utente per la propagazione (exploit) email worms richiedono una qualche azione dell’utente (propagazione più lenta) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Caratteristiche fondamentali Differenze tra Virus e Worm il principale mezzo di propagazione di uno worm è la rete (infezione network-oriented) non necessitano di un host da infettare, ma si propagano come programmi standalone distinguiamo[2]: active worms non richiedono l’intervento dell’utente per la propagazione (exploit) email worms richiedono una qualche azione dell’utente (propagazione più lenta) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Struttura Componenti essenziali[3] target locator individuazione di nuovi bersagli. Esempio: recupero indirizzi e-mail, IP vulnerabili, . . . infection propagator trasferimento del worm e infezione di un nuovo nodo. Esempio: moduli di exploiting; Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Struttura (cont.) Componenti opzionali[3] remote control and update interface controllo della macchina infetta (backdoor, IRC, . . . ) e aggiornamento del worm (download moduli da web, newsgroup, . . . ); payload molte tipologie che vanno dal DoS fino a sistemi distribuiti molto complessi. Spesso il payload installa patch per la protezione da altri worm; self-tracking tracciamento degli host infetti. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Target locator Indirizzi e-mail Possibili fonti di indirizzi: rubrica newsgroup file su disco messaggi in uscita Network share Windows offre “utili” servizi per trovare altre macchine facilitato da: trust relationship fra sistemi diversi password deboli (o assenti!) molti host collegati con i servizi di condivisione accessibili da chiunque (. . . quando il firewall è un “problema”. . . ) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Target locator Indirizzi e-mail Possibili fonti di indirizzi: rubrica newsgroup file su disco messaggi in uscita Network share Windows offre “utili” servizi per trovare altre macchine facilitato da: trust relationship fra sistemi diversi password deboli (o assenti!) molti host collegati con i servizi di condivisione accessibili da chiunque (. . . quando il firewall è un “problema”. . . ) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Target locator (cont.) Network scanning e fingerprinting[2] random scanning: indirizzo del target scelto casualmente. Problema: un target può essere provato più volte hit-list scanning: worm distribuito con una lista di n target potenzialmente vulnerabili; ad ogni infezione, passa metà lista al nuovo worm; permutation scanning: permutazione pseudo casuale dell’IP address space; ogni esemplare parte da un punto casuale e se trova una macchina infetta, sceglie un nuovo punto di partenza; warhol worm = hit-list + permutation Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Infection propagator (cont.) Tecniche di propagazione: 1 e-mail (social engineering, sender spoofing, . . . ) 2 sfruttamento di backdoor preesistenti (es. W32/Nimda → CodeRed ii, W32/Borm → Back Orifice) (no intervento utente!) 3 propagazione tramite reti P2P (aggiunta ai file in sharing o infezione di file condivisi) 4 diffusione tramite instant messaging (es. mIRC /DCC, MSN, . . . ) 5 bluetooth 6 file server 7 vulnerabilità in applicazioni (no intervento utente!) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Payload Diverse tipologie di payload: backdoor DDoS zombie raccolta informazioni sensibili zombie generico Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Alcuni dei più famosi - Blaster Blaster (Agosto 2003) c SO: Microsoft Windows 2000, XP Metodo di propagazione: vulnerabilità nel servizio RPC (buffer overflow; riavvio di Windows XP dopo la chiusura della shell) Payload: DoS contro windowsupdate.com, apertura shell remota nascosta Target locator: 60% IP casuale, 40% stessa rete di classe B dell’host infetto Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Alcuni dei più famosi - Slammer Slammer (Gennaio 2003) 376 bytes (“mini worm”) c SO: Microsoft Windows c Metodo di propagazione: vulnerabilità Microsoft SQL Server 2000 (stack-based overflow; attacco verso porta UDP 1434, con source IP probabilmente spoofato) Payload: nessuno Target locator: 100% random in loop infinito → CPU al 100% e paralisi della rete Host infettati: almeno 75.000 Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Alcuni dei più famosi - CodeRed CodeRed - (Luglio 2001) c SO: Microsoft Windows 2000 Metodo di propagazione: vulnerabilità in IIS (buffer overflow) “anti worm” CodeGreen Host infettati: 300.000 nelle prime 24 ore Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Struttura Esempi Worm Alcuni dei più famosi - Sobig Sobig SO: Microsoft Windows Metodo di propagazione: email (allegato .pif o .scr) Payload: infezione altri sistemi della stessa lan, aggiornamento automatico e possibilità di esecuzione di codice da remoto Conseguenze: congestione server SMTP Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Componenti fondamentali motore per la scansione (anche di tipi di differenti) signature: definizione dei pattern da utilizzare per l’identificazione dei virus Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Tipologie Anti-virus a livello di host Possibili diverse tipologie di scansione: ricerca su richiesta (on-demand) ricerca in tempo reale: all’apertura di un file, alla ricezione di un’email, . . . (on-access) Anti-virus a livello di rete analisi del traffico in uscita ed in ingresso il traffico deve passare attraverso un gateway in grado di analizzare la particolare tipologia di traffico Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Tipologie Anti-virus a livello di host Possibili diverse tipologie di scansione: ricerca su richiesta (on-demand) ricerca in tempo reale: all’apertura di un file, alla ricezione di un’email, . . . (on-access) Anti-virus a livello di rete analisi del traffico in uscita ed in ingresso il traffico deve passare attraverso un gateway in grado di analizzare la particolare tipologia di traffico Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching String scanning Viene definita una stringa di byte (signature) che identifica un particolare malware. Se un file (o la memoria) contiene una signature, allora è infetto dal malware corrispondente. quanto dev’essere lunga la signature? (e.g. problema dei falsi positivi) dove cercare la signature? (performance) una signature potrebbe identificare varianti diverse dello stesso malware o addirittura malware diversi (svantaggio: quale metodo di rimozione applicare?) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching String scanning Viene definita una stringa di byte (signature) che identifica un particolare malware. Se un file (o la memoria) contiene una signature, allora è infetto dal malware corrispondente. quanto dev’essere lunga la signature? (e.g. problema dei falsi positivi) dove cercare la signature? (performance) una signature potrebbe identificare varianti diverse dello stesso malware o addirittura malware diversi (svantaggio: quale metodo di rimozione applicare?) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching Wildcards Variante dello string scanning, impiegando wildcard o espressioni regolari. Problema: performance. Bookmarks Memorizzare la distanza dall’inizio del body del virus alla posizione dove si dovrebbe trovare la signature. Velocizzare la scansione top-and-tail scanning entry-point scanning Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching Wildcards Variante dello string scanning, impiegando wildcard o espressioni regolari. Problema: performance. Bookmarks Memorizzare la distanza dall’inizio del body del virus alla posizione dove si dovrebbe trovare la signature. Velocizzare la scansione top-and-tail scanning entry-point scanning Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching Wildcards Variante dello string scanning, impiegando wildcard o espressioni regolari. Problema: performance. Bookmarks Memorizzare la distanza dall’inizio del body del virus alla posizione dove si dovrebbe trovare la signature. Velocizzare la scansione top-and-tail scanning entry-point scanning Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching Smart pattern matching Evitare caratteri “inutili” (e.g. NOP nei binari, spazi nei sorgenti, . . . ) durante scansione e creazione della signature. Skeleton detection Utile per macro virus: parsing del sorgente, scartando spazi e istruzioni non essenziali per un macro virus. Rimane lo “scheletro” del virus. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching Smart pattern matching Evitare caratteri “inutili” (e.g. NOP nei binari, spazi nei sorgenti, . . . ) durante scansione e creazione della signature. Skeleton detection Utile per macro virus: parsing del sorgente, scartando spazi e istruzioni non essenziali per un macro virus. Rimane lo “scheletro” del virus. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching Nearly Exact Identification combinazione di più criteri di matching (e.g. signature multiple, checksum di parti del codice, . . . ) se solo alcuni sono soddifatti, si potrebbe aver identificato una variante ⇒ evitare rimozione Exact Identification Consente di distinguere varianti di uno stesso malware. 1 eliminazione della parti variabili del codice del malware 2 definizione degli intervalli relativi alle parti costanti 3 calcolo del checksum di tutta la parte costante Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: pattern matching Nearly Exact Identification combinazione di più criteri di matching (e.g. signature multiple, checksum di parti del codice, . . . ) se solo alcuni sono soddifatti, si potrebbe aver identificato una variante ⇒ evitare rimozione Exact Identification Consente di distinguere varianti di uno stesso malware. 1 eliminazione della parti variabili del codice del malware 2 definizione degli intervalli relativi alle parti costanti 3 calcolo del checksum di tutta la parte costante Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: algorithmic scanning Cos’è? algoritmi per il rilevamento di particolari malware, non gestibili con l’algoritmo standard implementabile in modi diversi: moduli compilati, linkati dinamicamente: efficiente ma poco portabile; moduli compilati in qualche forma di bytecode: lento ma portabile (e.g. Norton Antivirus); Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: algorithmic scanning Cos’è? algoritmi per il rilevamento di particolari malware, non gestibili con l’algoritmo standard implementabile in modi diversi: moduli compilati, linkati dinamicamente: efficiente ma poco portabile; moduli compilati in qualche forma di bytecode: lento ma portabile (e.g. Norton Antivirus); Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: algorithmic scanning Filtering Queste routine specifiche sono spesso “pesanti”. Vengono definiti filtri sugli oggetti esaminati, in modo da applicarle solo ad oggetti sospetti. Esempi di filtri: tipo dell’oggetto presenza di una stringa nell’header nomi di sezioni sospette ... Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: algorithmic scanning Disassembling per ricercare una instruzione “sospetta”, spesso non basta cercare la stringa che la rappresenta esempio: cmp ax,0x5a4d → 66 3D 4D 5A 90 90 BF 66 3D 4D 5A → nop; nop; mov edi,0x5a4d3d66 soluzione: disassembling (da dove partire? che tecnica utilizzare? come gestire anti-disassembing?) Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: code emulation Cos’è? Il malware è eseguito in una virtual machine, che simula una macchina reale. Componente essenziale in antivirus moderni. Considerazioni utile emulare routine di decifratura, in modo da ottenere il body del virus in chiaro; quando terminare l’emulazione? (e.g. alla prima chiamata API, . . . ); tecniche di antiemulation o junk code nella routine di decifratura possono aumentare in modo inaccettabile l’overhead. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: code emulation Cos’è? Il malware è eseguito in una virtual machine, che simula una macchina reale. Componente essenziale in antivirus moderni. Considerazioni utile emulare routine di decifratura, in modo da ottenere il body del virus in chiaro; quando terminare l’emulazione? (e.g. alla prima chiamata API, . . . ); tecniche di antiemulation o junk code nella routine di decifratura possono aumentare in modo inaccettabile l’overhead. Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: analisi euristica Cos’è? ricerca di “anomalie” nella struttura dei file, sequenze di istruzioni “sospette”, . . . analisi dinamica di un’applicazione alla ricerca di fenomeni riconducibili a comportamenti maligni noti Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Metodologie di ricerca: analisi euristica Esempi 1 entry point fuori dalla code section (spesso nell’ultima sezione → appending virus) 2 sezioni con attributi sospetti (e.g. .text RWX) 3 jmp in prossimità dell’entry point, con target esterno alla code section (EPO virus) 4 esecuzione di codice in sezioni con nome atipico (e.g. .reloc, .debug, . . . ) 5 ... Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Disinfezione In molti casi è possibile identificare esattamente le parti di codice appartenenti al virus e rimuoverle dall’ospite, lasciando intatte le funzionalità originali dell’ospite Questo non è possibile quando: il virus ha alterato parte dell’ospite non è possibile identificare tutti le parti del virus all’interno dell’ospite Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Disinfezione Tecniche possibili standard disinfection generic disinfection: il file infetto viene emulato finchè il virus stesso non lo ha ripristinato. Problemi: 1 2 il file è davvero infetto? qual è la parte infetta da rimuovere? Vantaggi: 1 2 rimozione di virus sconosciuti riduzione delle dimensioni del DB Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Disinfezione Tecniche possibili standard disinfection generic disinfection: il file infetto viene emulato finchè il virus stesso non lo ha ripristinato. Problemi: 1 2 il file è davvero infetto? qual è la parte infetta da rimuovere? Vantaggi: 1 2 rimozione di virus sconosciuti riduzione delle dimensioni del DB Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Disinfezione Tecniche possibili standard disinfection generic disinfection: il file infetto viene emulato finchè il virus stesso non lo ha ripristinato. Problemi: 1 2 il file è davvero infetto? qual è la parte infetta da rimuovere? Vantaggi: 1 2 rimozione di virus sconosciuti riduzione delle dimensioni del DB Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Disinfezione Tecniche possibili standard disinfection generic disinfection: il file infetto viene emulato finchè il virus stesso non lo ha ripristinato. Problemi: 1 2 il file è davvero infetto? qual è la parte infetta da rimuovere? Vantaggi: 1 2 rimozione di virus sconosciuti riduzione delle dimensioni del DB Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Vaccinazione In alcuni casi è possibile prevenire le infezioni vaccinando i potenziali ospiti, ovvero facendo in modo che un virus non li identifichi come programmi in cui è possibile inserirsi. Problemi: impossibile vaccinare un ospite nei confronti di tutti i possibili virus (e.g. marker incompatibili) possibili interazioni indesiderate tra vaccinazione e moduli di detection/disinfection Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Vaccinazione In alcuni casi è possibile prevenire le infezioni vaccinando i potenziali ospiti, ovvero facendo in modo che un virus non li identifichi come programmi in cui è possibile inserirsi. Problemi: impossibile vaccinare un ospite nei confronti di tutti i possibili virus (e.g. marker incompatibili) possibili interazioni indesiderate tra vaccinazione e moduli di detection/disinfection Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Anti-virus Altri metodi per rilevamento e contenimento delle infezioni: 1 integrity checking 2 behavior blocking 3 sand-boxing Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Strategie di difesa Esempi cifratura payload con chiavi casuali (e.g. RDA – Random Decryption Algorithm) EPO: Entry Point Obscuring → offuscamento dell’entry point anti-emulazione anti-disassembling anti-goat Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Strategie di difesa Polimorfismo Cos’è? capacità del virus di mutare la propria routine di cifratura in molti forme differenti il software anti-virus non è in grado di individuare un insieme limitato di pattern che identifica tutte le istanze del virus Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Strategie di difesa Polimorfismo Come? Esempi: junk-code riordinamento delle istruzioni sostituzione delle istruzioni sostituzione dei registri ... Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Strategie di difesa Metamorfismo Cos’è? “metamorphics are body-polymorphics” (Igor Muttik) il nuovo corpo del virus è modificato in modo automatico a partire da quello precedente nel caso del polimorfismo, dopo la decifratura il body del virus appare in memoria, decifrato e costante; questo non accade col metamorfismo Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Introduzione Metodologie di ricerca Contromisure Strategie di difesa Metamorfismo Come? Esempi: il virus trasporta anche il proprio sorgente, lo modifica e lo ricompila (W32/Apparition) sostituzione dei registri (W95/Regswap); rilevabile con wildcard string riordinamento procedure (W32/Ghost) junk-code ... Roberto Paleari Malware Introduzione Virus Worm Anti-virus Bibliografia Bibliografia I F. Cohen. Computer Viruses, Theory and Experiments. Computers & Security, 6:22–35, 1987. S. Staniford, V. Paxson, and N. Weaver. How to 0wn the Internet in Your Spare Time. May 2002. P. Szor. The Art of Computer Virus Research and Defense. Addison-Wesley Professional, 2005. Roberto Paleari Malware