Malware - Computer and Network Security Lab

Transcript

Malware - Computer and Network Security Lab
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Malware
Alessandro Rozza
<[email protected]>
Università degli Studi di Milano
Facoltà di Scienze Matematiche, Fisiche e Naturali
Progetto della sicurezza di rete
10 Dicembre 2007
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Sommario
1
Introduzione
2
Virus
3
Worm
4
Anti-virus
5
Bibliografia
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Sommario
1
Introduzione
2
Virus
3
Worm
4
Anti-virus
5
Bibliografia
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Sommario
1
Introduzione
2
Virus
3
Worm
4
Anti-virus
5
Bibliografia
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Sommario
1
Introduzione
2
Virus
3
Worm
4
Anti-virus
5
Bibliografia
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Sommario
1
Introduzione
2
Virus
3
Worm
4
Anti-virus
5
Bibliografia
Rozza Alessandro
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
Rozza Alessandro
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à
Rozza Alessandro
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à
Rozza Alessandro
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)
Rozza Alessandro
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)
Rozza Alessandro
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
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Classificazione
Tipologie di payload
non distruttivo
accidentalmente distruttivo
distruttivo
DoS (Denial of Service)
sottrazione di informazioni
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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].
Rozza Alessandro
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)
Rozza Alessandro
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)
Rozza Alessandro
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
Rozza Alessandro
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.
Rozza Alessandro
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.
Rozza Alessandro
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)
Rozza Alessandro
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
Rozza Alessandro
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)
Rozza Alessandro
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
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Tecniche di infezione
Infezione di file
Macro Virus
Virus
Virus - Esempio
Semplice Esempio di file infector
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Tecniche di infezione
Infezione di file
Macro Virus
Virus
Virus - Esempio
Creiamo dei file .com da infettare
C:\> debug
-a100
xxxx:0100 mov ax,4c00
xxxx:0103 int 21h
xxxx:0105 Ctrl-C
-rcx
CX 0000
:5
-n ex.com
-w
Writing 00005 bytes
-q
C:\> copy ex.com uninfectedFile.com
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Tecniche di infezione
Infezione di file
Macro Virus
Virus
Virus - Esempio
Compiliamo il virus:
C:\> tasm virus.asm
C:\> tlink /t virus.obj
Utiliziamo DosBoxa per testarlo
a
http://dosbox.sourceforge.net/
Rozza Alessandro
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
Rozza Alessandro
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), . . .
Rozza Alessandro
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[3]:
active worms non richiedono l’intervento dell’utente per la
propagazione (exploit)
email worms richiedono una qualche azione dell’utente
(propagazione più lenta)
Rozza Alessandro
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[3]:
active worms non richiedono l’intervento dell’utente per la
propagazione (exploit)
email worms richiedono una qualche azione dell’utente
(propagazione più lenta)
Rozza Alessandro
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[3]:
active worms non richiedono l’intervento dell’utente per la
propagazione (exploit)
email worms richiedono una qualche azione dell’utente
(propagazione più lenta)
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Struttura
Esempi
Worm
Struttura
Componenti essenziali[4]
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;
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Struttura
Esempi
Worm
Struttura (cont.)
Componenti opzionali[4]
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.
Rozza Alessandro
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”. . . )
Rozza Alessandro
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”. . . )
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Struttura
Esempi
Worm
Target locator (cont.)
Network scanning e fingerprinting[3]
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
Rozza Alessandro
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!)
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Struttura
Esempi
Worm
Payload
Diverse tipologie di payload:
backdoor
DDoS zombie
raccolta informazioni sensibili
zombie generico
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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?)
Rozza Alessandro
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?)
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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.
Rozza Alessandro
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.
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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);
Rozza Alessandro
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);
Rozza Alessandro
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
...
Rozza Alessandro
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?)
Rozza Alessandro
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.
Rozza Alessandro
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.
Rozza Alessandro
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
Rozza Alessandro
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
...
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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
Rozza Alessandro
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-debugging
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Entry Point Obscuring
Quando un Virus infetta un file deve trovare un modo per
ottenere il controllo ed eseguirsi. La maggior parte dei PE
infectors usano una semplice tecnica, semplicemente cambiano
l’entry-point dell’applicazione infettata per puntare al corpo
del virus.
Original EXE
Infected EXE
Entry-point: 0x1000 (.code section)
Entry-point: 0x6000 (.reloc section)
Questi virus sono molto semplici da identificare in quanto
l’entry point risiede fuori dalla code section e ci viene marcato
come sospetto dai Virus Scanner.
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Entry point Obscuring - Win32.CTX.Phage
Un entry- point obscuring virus è un virus che non ottiene
direttamente controllo dal programma host. Tipicamente il
virus aggiorna il programma host con una jump/call routine e
ottiene il controllo in questo modo.
Un esempio è il virus Phage, che non modifica l’entry-point di
un file infettato ma cerca nel file nella sezione code la
chiamata alle API generate da Borland o dal Microsoft Linker.
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Entry point Obscuring - Win32.CTX.Phage - Borland Linker
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Entry point Obscuring - Win32.CTX.Phage - Borland Linker
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Entry point Obscuring - Win32.CTX.Phage - Microsoft Linker
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Entry point Obscuring - Win32.CTX.Phage - Microsoft Linker
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging[2]
Le tecniche di Anti-debugging sono delle routine che
permettono ad un programma di contrallare se é in esecuzione
in un ambito emulato oppure da un debugger.
Vediamo qualche esempio:
kernel32!IsDebuggerPresent
IsDebuggerPresent ritorna 1 if il processo é in debugging, 0
altrimenti. Questa API legge semplicemente il byte-flag di
PEB!BeingDebugged (allocato con offset 2 nella struttura
PEB).
call IsDebuggerPresent
test eax, eax
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging[2]
Le tecniche di Anti-debugging sono delle routine che
permettono ad un programma di contrallare se é in esecuzione
in un ambito emulato oppure da un debugger.
Vediamo qualche esempio:
kernel32!IsDebuggerPresent
IsDebuggerPresent ritorna 1 if il processo é in debugging, 0
altrimenti. Questa API legge semplicemente il byte-flag di
PEB!BeingDebugged (allocato con offset 2 nella struttura
PEB).
call IsDebuggerPresent
test eax, eax
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi
PEB!IsDebugged
Questo campo si riferisce al secondo byte del Process
Environment Block. Viene settato dal sistema quando il
processo viene debaggato. Questo byte puó essere risettato a
0 senza nessuna complicazione durante l’esecuzione
mov eax, fs:[30h]
mov eax, byte [eax+2]
test eax, eax
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi
PEB!IsDebugged
Questo campo si riferisce al secondo byte del Process
Environment Block. Viene settato dal sistema quando il
processo viene debaggato. Questo byte puó essere risettato a
0 senza nessuna complicazione durante l’esecuzione
mov eax, fs:[30h]
mov eax, byte [eax+2]
test eax, eax
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi(2)
PEB!NtGlobalFlags
Quando un processo è creato il sistema setta alcuni flags che
definiscono quali API saranno utilizzate nel programma.
Questi flag possono essere letti nel PEB, nella DWORD
localizzata all’offset 0x68. Di default alcune flags vengono
settate se un processo è creato sotto un debugger oppure no.
(FLG-HEAP-ENABLE-TAIL-CHECK,
FLG-HEAP-ENABLE-FREE-CHECK ...). Questa tecnica puo’
essere bypassata risettando a zero questi flag.
mov eax, fs:[30h]
mov eax, [eax+68h]
and eax, 0x70
test eax, eax
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi(2)
PEB!NtGlobalFlags
Quando un processo è creato il sistema setta alcuni flags che
definiscono quali API saranno utilizzate nel programma.
Questi flag possono essere letti nel PEB, nella DWORD
localizzata all’offset 0x68. Di default alcune flags vengono
settate se un processo è creato sotto un debugger oppure no.
(FLG-HEAP-ENABLE-TAIL-CHECK,
FLG-HEAP-ENABLE-FREE-CHECK ...). Questa tecnica puo’
essere bypassata risettando a zero questi flag.
mov eax, fs:[30h]
mov eax, [eax+68h]
and eax, 0x70
test eax, eax
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi(3)
NtQueryInformationProcess
ntdll!NtQueryInformationProcess é un wrapper della syscall
ZwQueryInformationProcess . Quando viene chiamato con
ProcessInformationClass settato a 7 (la costante
ProcessDebugPort), il sistema settera ProcessInformation a -1 se il
processo é debuggato.
push 0
push 4
push offset isdebugged
push 7 ;ProcessDebugPort
push -1
call NtQueryInformationProcess
test eax, eax
jne @ExitError
cmp isdebugged, 0
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi(3)
NtQueryInformationProcess
ntdll!NtQueryInformationProcess é un wrapper della syscall
ZwQueryInformationProcess . Quando viene chiamato con
ProcessInformationClass settato a 7 (la costante
ProcessDebugPort), il sistema settera ProcessInformation a -1 se il
processo é debuggato.
push 0
push 4
push offset isdebugged
push 7 ;ProcessDebugPort
push -1
call NtQueryInformationProcess
test eax, eax
jne @ExitError
cmp isdebugged, 0
jne @DebuggerDetected
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi(4)
Self-debugging
Un processo puo’ accorgersi di essere debaggato cercando di
debaggare se stesso, per esempio creando un nuovo processo e
chiamamando kernel32!DebugActiveProcess(pid) passando
come pid quello del padre. Se il processo é giá in fase di
debugging la syscall fallisce.
Interrupt 2Dh
Eseguendo questo interrupt se il programma non é debuggato
solleverá una breakpoint execption. Se invece é sotto
debugging l’esecuzione proseguirá senza sollevare nessuna
eccezione.
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Anti-Debugging - Esempi(4)
Self-debugging
Un processo puo’ accorgersi di essere debaggato cercando di
debaggare se stesso, per esempio creando un nuovo processo e
chiamamando kernel32!DebugActiveProcess(pid) passando
come pid quello del padre. Se il processo é giá in fase di
debugging la syscall fallisce.
Interrupt 2Dh
Eseguendo questo interrupt se il programma non é debuggato
solleverá una breakpoint execption. Se invece é sotto
debugging l’esecuzione proseguirá senza sollevare nessuna
eccezione.
Rozza Alessandro
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
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Malware – Tecniche di self-defense - Polimorfismo
corpo cifrato
il malware è in grado di mutare la routine di cifratura
Esempio
lea
si , corpo virus
nop
mov
sp , 0682 h
sub ax, bx
ciclo :
xor
[ si ] , si
inc cx
xor
[ s i ] , sp
inc
si
add bx, cx
dec
sp
jnz
ciclo
corpo virus :
...
Rozza Alessandro
le istruzioni evidenziate sono
“junk code”
elevato numero di mutazioni
possibili
difficile individuare una
signature costante
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Polimorfismo - Packers - Protectors
Packers
Un run-time executable packer é un tool usato per comprimere il codice
di un programma e/o l’area dati. Gli Executable packers sono progettati
per far occupare ad un programma un spazio minore di memoria e per
rendere piú veloce il caricamento.
Esempi di Executable packers: UPX, ASPack, PECompact, FSG, UPack,
MEW.
Protectors
Run-time executable cryptors o executable protectors, lavorano con una
modalitá molto simile agli executable packers. Invece (o in aggiunta)
della/alla compressione del contenuto di un programma essi utilizzano la
crittografia.
Esempi possono essere: ASProtect, Armadillo, Morphine, PolyCryptPE,
EXECryptor, Obsidium, NSAnti, Enigma, Themida.
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Strategie di difesa
Polimorfismo - Packers - Protectors
Packers
Un run-time executable packer é un tool usato per comprimere il codice
di un programma e/o l’area dati. Gli Executable packers sono progettati
per far occupare ad un programma un spazio minore di memoria e per
rendere piú veloce il caricamento.
Esempi di Executable packers: UPX, ASPack, PECompact, FSG, UPack,
MEW.
Protectors
Run-time executable cryptors o executable protectors, lavorano con una
modalitá molto simile agli executable packers. Invece (o in aggiunta)
della/alla compressione del contenuto di un programma essi utilizzano la
crittografia.
Esempi possono essere: ASProtect, Armadillo, Morphine, PolyCryptPE,
EXECryptor, Obsidium, NSAnti, Enigma, Themida.
Rozza Alessandro
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
Rozza Alessandro
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
...
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Malware – Tecniche di self-defense
Metamorfismo
W95/Regswap
5A
BF04000000
8BF5
B80C000000
81 C288000000
8B1A
pop
mov
mov
mov
add
mov
edx
edi ,0004 h
e s i , ebp
eax , 0 0 0 Ch
edx , 0 0 8 8 h
ebx , [ edx ]
58
BB04000000
8BD5
BF0C000000
81 C088000000
8B30
pop
mov
mov
mov
add
mov
eax
ebx , 0 0 0 4 h
edx , ebp
e d i , 0 0 0 Ch
eax , 0 0 8 8 h
e s i , [ eax ]
W32/Evol
BF0F000055
893E
5F
52
B640
BA8BEC5151
53
8BDA
895 E04
mov
mov
pop
push
mov
mov
push
mov
mov
e d i , 5 5 0 0 0 0 0 Fh
[ esi ] , edi
edi
edx
dh , 4 0
edx , 5 1 5 1 EC8Bh
ebx
ebx , edx
[ e s i + 0 0 0 4 ] , ebx
Rozza Alessandro
BB0F000055
891E
5B
51
B9CB00C05F
81 C1C0EB91F1
894 E04
Malware
mov
mov
pop
push
mov
add
mov
ebx , 5 5 0 0 0 0 0 Fh
[ e s i ] , ebx
ebx
ecx
ecx , 5 FC000CBh
ecx , F191EBC0h
[ e s i +0004] , ecx
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Malware – Tecniche di self-defense
Polimorfismo e metamorfismo
Polimorfismo
dopo la decifratura il malware appare
“in chiaro”
adottano tecniche abbastanza semplici
implemetazione relativamente semplice
Rozza Alessandro
Metamorfismo
non esiste una versione “in chiaro” del
malware
possono arrivare anche alla code integration (W95/Zmist)
implementazione complessa
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Introduzione
Metodologie di ricerca
Contromisure
Malware & Microsoft Windows
Strumenti
Alcuni strumenti utili (Sysinternals)1 :
regmon, filemon: chiavi di registro/file a cui un processo
accede
autoruns: applicazioni eseguite al boot
tcpview: connessioni TCP in corso e porte in ascolto
procexp
...
1
li trovate su www.http://www.microsoft.com/technet/sysinternals/default.mspx
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Bibliografia I
F. Cohen.
Computer Viruses, Theory and Experiments.
Computers & Security, 6:22–35, 1987.
N. Falliere.
Windows Anti-Debug Reference - Securityfocus.
September 2007.
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.
Rozza Alessandro
Malware
Introduzione
Virus
Worm
Anti-virus
Bibliografia
Bibliografia II
Rozza Alessandro
Malware