Malware - Computer and Network Security Lab

Transcript

Malware - Computer and Network Security Lab
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