Università degli Studi di Milano
Malware
Aristide Fattori
[email protected]
Introduzione
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
A. Fattori
Malware
3
replicazione autonoma
no replicazione
replicazione
Tipologie di malware
Virus
Worm
Dialer
Root-kit
Spyware
Trojan horse
necessita ospite
Keylogger
nessun ospite
dipendenza da ospite
A. Fattori
Malware
4
Virus
Virus
replicazione autonoma
necessitano di un ospite in cui inserirsi
riproduzione attraverso la diffusione dell’ospite
riproduzione
payload
A. Fattori
infezione
Malware
6
Virus
replicazione autonoma
necessitano di un ospite in cui inserirsi
riproduzione attraverso la diffusione dell’ospite
•
•
•
•
riproduzione
payload
A. Fattori
File eseguibili
Boot sector
Script
Documenti
infezione
Malware
6
Virus
replicazione autonoma
necessitano di un ospite in cui inserirsi
riproduzione attraverso la diffusione dell’ospite
•
•
•
•
La parte non relativa all’infezione
(@FORMAT C: /AUTOTEST)
riproduzione
payload
A. Fattori
File eseguibili
Boot sector
Script
Documenti
infezione
Malware
6
Virus
Esempio “alto livello”
DEMO
A. Fattori
Malware
7
Tecniche di infezione
File infection
File infection
companion
sovrascrittura
inserimento in testa/coda/cavity
entry point obfuscation (EPO)
A. Fattori
Malware
8
Tecniche di infezione
File infection
Companion Virus
sfruttare la precedenza dei .com sui .exe
(es, notepad.com e notepad.exe)
sfruttare l’ordine con cui un eseguibile viene cercato nel path
(es, $PATH=/usr/local/bin:/usr/bin:/bin:...)
meno efficace quando si usa la GUI
A. Fattori
Malware
8
Tecniche di infezione
File infection
Sovrascrittura
parte del codice dell’ospite è sostituito con quello del virus
l’ospite non funzionerà più correttamente
(⇒ rimozione impossibile)
A. Fattori
Malware
8
Tecniche di infezione
File infection
Parasitic virus: inserimento in testa
virus
entry
programma
infezione
entry
...gramma
pro...
A. Fattori
Malware
8
Tecniche di infezione
File infection
Parasitic virus: inserimento in coda
entry
programma
infezione
programma
virus
entry
modifica delle prime istruzioni dell’ospite o dell’entry point
nel caso di eseguibili “complessi” (es, PE, ELF, . . . ) è
necessario aggiornarne le strutture
A. Fattori
Malware
8
Tecniche di infezione
File infection
Cavity virus
jmp <virus> entry
entry
programma
infezione
...rogramma
virus
cavità
p...
alcuni virus (e.g. W95/CIH) sono in grado di ripartire il proprio
codice tra più cavità (fractionated cavity virus)
A. Fattori
Malware
8
Tecniche di infezione
EPO: Entry Point Obfuscation & Code Integration
EPO
Modifiche all’entry point originale di un programma sono
facilmente identificabili:
A. Fattori
Malware
9
Tecniche di infezione
EPO: Entry Point Obfuscation & Code Integration
EPO
Modifiche all’entry point originale di un programma sono
facilmente identificabili:
joystick@arya:~$ readelf -h /bin/ls
ELF Header:
Class: ELF64
...
Entry point address: 0x4046d4
A. Fattori
Malware
9
Tecniche di infezione
EPO: Entry Point Obfuscation & Code Integration
EPO
Modifiche all’entry point originale di un programma sono
facilmente identificabili:
il virus ritarda il passaggio del controllo al suo codice
sovrascrive una chiamata a funzione
modifica la import table
A. Fattori
Malware
9
Tecniche di infezione
EPO: Entry Point Obfuscation & Code Integration
EPO
Modifiche all’entry point originale di un programma sono
facilmente identificabili:
il virus ritarda il passaggio del controllo al suo codice
sovrascrive una chiamata a funzione
modifica la import table
Code Integration
Disassembla il codice eseguibile del file vittima, si inserisce nel
codice e lo ri-assembla. (W95/Zmist)
A. Fattori
Malware
9
Tecniche di infezione
Device infection
Infezione di device removibili
File autorun.inf
[autorun]
open=Knight.exe open
icon=Knight.exe,0
shellexecute=Knight.exe open
shell=auto
action=Disk Knight(Protection Against Mobile Disk Viruses)
shell\auto=&Auto
shell\auto\command=Knight.exe open
shell\open=&Open
shell\open\command=Knight.exe open
shell\explore=E&xplore
shell\explore\command=Knight.exe open
shell\find=S&earch...
shell\find\command=Knight.exe open
...
A. Fattori
Malware
10
Tecniche di infezione
MBR Infection
MBR
Porzione dell’hard disk che contiene il codice responsabile
dell’avvio del sistema operativo.
un virus può modificarlo per venire eseguito prima del sistema
operativo stesso
molto difficile da individuare
tecnica vecchia (1986-: (c)Brain, Stoned, Michelangelo,
Junkie, Tequila, . . . )
sta “tornando di moda” (2007: Rustock bootkit,
2008: Trojan.Mebroot, 2010: TDL 1-4)
A. Fattori
Malware
11
Worm
Worm
non necessitano di un ospite
propagazione autonoma attraverso la rete
capacità di propagarsi in sistemi altrui sfruttando delle
vulnerabilità
capacità di propagarsi via mail
A. Fattori
Malware
13
Worm
Componenti
locator: identifica nuove potenziali vittime
propagator: ottiene controllo della vittima e ci si trasferisce
life-cycle manager: controlla attività worm
payload: DoS, furto credenziali, spam, . . .
A. Fattori
Malware
14
Worm
Locator
Indirizzi mail
parsing rubrica outlook
pattern matching su file
cache internet explorer
Network share
Condivisione file e directory senza protezione:
identifica gli share nella rete locale e ci si copia
uno dei vettori più sfruttati
Login remoto
RSH, SSH, telnet, . . .
attacchi bruteforce
A. Fattori
Malware
15
Worm
Locator (2)
Scanning
Ricerca di nuove vittime nella rete locale o su internet:
scansione della rete locale
∀ target ⇒ ricerca servizi vulnerabili
lista di target pre-compilata (e.g., router con vuln note)
uso di motori di ricerca per trovare macchine vuln
(google-dorking)
A. Fattori
Malware
16
Worm
Propagation: email-based
Propagator
Dopo il recupero di indirizzi mail, il worm invia copie del suo body
agli indirizzi recuperati.
Tecniche di social engineering:
I
I
I
I
uso di temi “hot” (e.g., partite di calcio, catastrofi, reality)
contraffazione indirizzi mittente
pornografia
...
Tecniche di hiding:
I
I
I
nascondere l’estensione (.exe ⇒ .jpeg)
URL che punta all’eseguibile
...
Vulnerabilità nel motore HTML del mail client
Queste tecniche hanno impatto significante sui provider di posta
(molto traffico) ma non sono molto efficaci. Perché?
A. Fattori
Malware
17
Worm
Propagation: exploit-based
Caratteristiche
sfrutta vulnerabilità dei target (note o meno)
non richiede interazione ⇒ propagazione molto veloce
Anatomia di un attacco
1. exploit ⇒ remote code execution
2. download da origine o da web del body
3. nuova installazione
A. Fattori
Malware
18
Morris Worm
Robert Morris Jr. - 1988
Primo worm in grado di causare problemi seri.
Sfrutta 3 vulnerabilità per propagarsi:
1. RCE in sendmail
2. buffer overflow in fingerd
3. bruteforce su RSH
Tramite la vuln esegue un piccolo snippet di codice che trasferisce
il corpo del worm sulla vittima.
The Internet Worm - Eugene H. Spafford
http://security.dico.unimi.it/sicurezza1112/papers/
spafford89_crisis.pdf
A. Fattori
Malware
19
Slammer Worm
??? - 2003
Sfrutta vulnerabilità nota di MSSQL1 2000 Servers.
Non contiene payload dannoso ma la sua velocità di propagazione
causa gravi problemi.
1. SW bersaglio permette ai client di inviare una req per trovare
un db
2. richiesta ⇒ pacchetto udp max 17 byte null terminated
3. buffer overflow, 376 byte per shellcode
4. shellcode: (1) genera IP (2) prova a attaccarlo (3) goto 1
Macchina infetta con 100Mbps di banda → 30000 scan/s
Inside the Slammer Worm - Moore et al.
http://cseweb.ucsd.edu/~savage/papers/IEEESP03.pdf
1
A. Fattori
Microsoft SQL
Malware
20
Stuxnet
??? - 2010
Primo malware che attacca sistemi industriali (SCADA).
1. Infetta sistemi Windows tramite 4 0-day + removable device
2. infetta software di controllo degli SCADA
3. infetta il device stesso e ne compromette il funzionamento
Riflessioni:
4 0-day diversi == $$$
A. Fattori
Malware
21
Stuxnet
??? - 2010
Primo malware che attacca sistemi industriali (SCADA).
1. Infetta sistemi Windows tramite 4 0-day + removable device
2. infetta software di controllo degli SCADA
3. infetta il device stesso e ne compromette il funzionamento
Riflessioni:
4 0-day diversi == $$$
molto targettizzato
A. Fattori
Malware
21
Stuxnet
??? - 2010
Primo malware che attacca sistemi industriali (SCADA).
1. Infetta sistemi Windows tramite 4 0-day + removable device
2. infetta software di controllo degli SCADA
3. infetta il device stesso e ne compromette il funzionamento
Riflessioni:
4 0-day diversi == $$$
molto targettizzato
firmato con certificato compromesso
W32.Stuxnet Dossier - Symantec
http://goo.gl/lakj3
A. Fattori
Malware
21
Worm - Tecniche di
propagazione alternative
Tecniche di propagazione
Rogue Antivirus
A. Fattori
Malware
23
Tecniche di propagazione
Rogue Antivirus
A. Fattori
Malware
23
Tecniche di propagazione
Rogue Antivirus
A. Fattori
Malware
23
Tecniche di propagazione
Drive-by-download
Osservazioni:
1. Lo scenario è cambiato, la maggior parte delle attività sono su
web.
2. Molte vulnerabilità trovate nei browser.
3. (1) + (2) == worm che si diffondono via web
A. Fattori
Malware
24
Tecniche di propagazione
Drive-by-download
Osservazioni:
1. Lo scenario è cambiato, la maggior parte delle attività sono su
web.
2. Molte vulnerabilità trovate nei browser.
3. (1) + (2) == worm che si diffondono via web
Come?
1. crea (o compromette) un sito per ospitare exploit
2. exploita i browser vulnerabili che visitano il sito
3. scarica il codice del worm sulla vittima
A. Fattori
Malware
24
Tecniche di propagazione
Remote exploit + drive-by-download
A. Fattori
Malware
25
Tecniche di propagazione
Remote exploit + drive-by-download
link a JS maligno nel sito
exploit MS06-014 + MS07-004
download keylogger/backdoor
∼ 3 giorni prima del Super Bowl!
A. Fattori
Malware
25
Malware Generators
A. Fattori
Malware
26
Contromisure
Contromisure
Detection signature-based
Come funziona?
Database di signature
Un’applicazione che contiene una signature nota viene
considerate infetta
A. Fattori
Malware
28
Contromisure
Detection signature-based
Come funziona?
Database di signature
Un’applicazione che contiene una signature nota viene
considerate infetta
Codice applicazione
A. Fattori
Malware
28
Contromisure
Detection signature-based
Come funziona?
Database di signature
Un’applicazione che contiene una signature nota viene
considerate infetta
Signature
A. Fattori
Malware
28
Contromisure
Detection signature-based
Come funziona?
Database di signature
Un’applicazione che contiene una signature nota viene
considerate infetta
+
A. Fattori
+
Malware
28
Contromisure
Detection signature-based
Come funziona?
Database di signature
Un’applicazione che contiene una signature nota viene
considerate infetta
A. Fattori
+
+
+
+
Malware
28
Contromisure
Detection signature-based
Come funziona?
Database di signature
Un’applicazione che contiene una signature nota viene
considerate infetta
A. Fattori
+
+
+
+
+
+
Malware
28
Tecniche di self-defense
Packing
Codice maligno nascosto da 1+ layer di compressione/cifratura
Decompressione/decrifratura a run-time
A. Fattori
Malware
29
Tecniche di self-defense
Packing
Codice maligno nascosto da 1+ layer di compressione/cifratura
Decompressione/decrifratura a run-time
Malicious
code
A. Fattori
Malware
29
Tecniche di self-defense
Packing
Codice maligno nascosto da 1+ layer di compressione/cifratura
Decompressione/decrifratura a run-time
Unpacking
routine
A. Fattori
Malicious
code
Malware
29
Tecniche di self-defense
Packing
Codice maligno nascosto da 1+ layer di compressione/cifratura
Decompressione/decrifratura a run-time
Unpacking Unpacking
routine
routine
A. Fattori
Malicious
code
Malware
29
Tecniche di self-defense
Packing
Codice maligno nascosto da 1+ layer di compressione/cifratura
Decompressione/decrifratura a run-time
Unpacking Unpacking
routine
routine
Malicious
code
Problema
∼ 80% del malware è “packed”
200 famiglie di packer, 2000 varianti
Backlog di ∼ 90 famiglie
Fonte: Symantec, 2008
A. Fattori
Malware
29
Tecniche di self-defense
Polimorfismo
Mutazione #1
Mutazione #2
Mutazione #3
Problema: la routine di packing può essere rilevata
A. Fattori
Malware
30
Tecniche di self-defense
Polimorfismo
Mutazione #1
Mutazione #2
Mutazione #3
Problema: la routine di packing può essere rilevata
Idea: variare la routine di packing ad ogni infezione
A. Fattori
Malware
30
Tecniche di self-defense
Polimorfismo
Mutazione #1
Mutazione #2
Mutazione #3
Problema: la routine di packing può essere rilevata
Idea: variare la routine di packing ad ogni infezione
La semantica della routine rimane sempre la stessa
A. Fattori
Malware
30
Tecniche di self-defense
Polimorfismo
Mutazione #1
Mutazione #2
Mutazione #3
Problema: la routine di packing può essere rilevata
Idea: variare la routine di packing ad ogni infezione
La semantica della routine rimane sempre la stessa
Contromisure
Emulazione
Algorithmic detection
A. Fattori
Malware
30
Tecniche di self-defense
Metamorfismo
“Metamorphics are body-polymorphics” (Igor Muttik)
A ogni infezione muta l’intero corpo del malware
Mutazione #1
A. Fattori
Mutazione #2
Malware
Mutazione #3
31
Tecniche di self-defense
Metamorfismo
“Metamorphics are body-polymorphics” (Igor Muttik)
A ogni infezione muta l’intero corpo del malware
Come funziona?
Codice
malware
1. Analizza il proprio codice
2. Identifica dei blocchi
3. Applica mutazioni
A. Fattori
Malware
31
Tecniche di self-defense
Metamorfismo
“Metamorphics are body-polymorphics” (Igor Muttik)
A ogni infezione muta l’intero corpo del malware
blocco1
blocco2
Come funziona?
blocco3
1. Analizza il proprio codice
blocco4
2. Identifica dei blocchi
blocco5
blocco6
3. Applica mutazioni
blocco7
blocco8
A. Fattori
Malware
31
Tecniche di self-defense
Metamorfismo
“Metamorphics are body-polymorphics” (Igor Muttik)
A ogni infezione muta l’intero corpo del malware
blocco1
blocco2
Come funziona?
blocco3
1. Analizza il proprio codice
blocco4
2. Identifica dei blocchi
blocco5
blocco6
3. Applica mutazioni
blocco7
blocco8
A. Fattori
Malware
31
Tecniche di self-defense
Metamorfismo
“Metamorphics are body-polymorphics” (Igor Muttik)
A ogni infezione muta l’intero corpo del malware
blocco1
blocco6
Come funziona?
blocco3
1. Analizza il proprio codice
blocco9
2. Identifica dei blocchi
blocco5
blocco2
3. Applica mutazioni
blocco10
blocco8
A. Fattori
Malware
31
Tecniche di self-defense
Metamorfismo
“Metamorphics are body-polymorphics” (Igor Muttik)
A ogni infezione muta l’intero corpo del malware
Problema
Analizzatore di codice particolarmente complesso
Sviluppare un motore metamorfico è molto difficile
A. Fattori
Malware
31
Tecniche di self-defense
Malware emulators
mov
xor
inc
int
%ax, $0xcafe;
%ebx, %ebx;
%ecx;
$0x2e;
inst37 %r6 , $0xcafe;
inst15 %r2 , %r2 ;
inst24 %r11 ;
inst4 $0x2e;
Programma originale
VM
Programma offuscato
1. Codice del malware trasformato in bytecode
2. Bytecode interpretato a run-time da una VM
3. Bytecode mutato ad ogni infezione
A. Fattori
Malware
32
Tecniche di self-defense
Malware emulators
mov
xor
inc
int
%ax, $0xcafe;
%ebx, %ebx;
%ecx;
$0x2e;
inst37 %r6 , $0xcafe;
inst15 %r2 , %r2 ;
inst24 %r11 ;
inst4 $0x2e;
Programma originale
VM
Programma offuscato
1. Codice del malware trasformato in bytecode
2. Bytecode interpretato a run-time da una VM
3. Bytecode mutato ad ogni infezione
Sembra complicato?
A. Fattori
Malware
32
Tecniche di self-defense
Malware emulators
A. Fattori
Malware
32
Tecniche di self-defense
Contromisure
Signature-based detection è troppo debole
Verso tecniche più “semantiche”
A. Fattori
Malware
33
Tecniche di self-defense
Contromisure
Signature-based detection è troppo debole
Verso tecniche più “semantiche”
Soluzioni
Analisi dinamica
Granularità a livello di system call
Panda TruPrevent, AVG Identity Protection, NovaShield,
ThreatFire, . . .
Problemi
Performance
Falsi positivi
Information leakage
A. Fattori
Malware
33
Strumenti anti-malware di nuova generazione
Analisi statica impraticabile o troppo onerosa
Analisi dinamica in ambienti emulati
A. Fattori
Malware
34
Strumenti anti-malware di nuova generazione
Analisi statica impraticabile o troppo onerosa
Analisi dinamica in ambienti emulati
Esempi
Anubis
CWSandbox
BitBlaze
A. Fattori
Malware
34
Strumenti anti-malware di nuova generazione
Analisi statica impraticabile o troppo onerosa
Analisi dinamica in ambienti emulati
Esempi
Anubis
CWSandbox
BitBlaze
Come funzionano?
1. Esecuzione dell’applicazione sospetta in un emulatore
2. Monitoring dell’esecuzione (VM introspection)
3. Rilevamento di comportamenti maligni
A. Fattori
Malware
34
Rilevamento VM
Red-pill
Programma in grado di rilevare se eseguito all’interno di un
emulatore (o virtualizzatore)
CPU
EMU
Fonte: A fistful of red-pills (R. Paleari, L. Martignoni, G. Fresi Roglia, D. Bruschi)
A. Fattori
Malware
35
Rilevamento VM
Red-pill
Programma in grado di rilevare se eseguito all’interno di un
emulatore (o virtualizzatore)
void main() {
redpill = ‘‘\x08\x7c\xe3\x04...’’;
if (((void (*)())redpill)()) {
// Eseguito su CPU fisica
return CPU;
} else {
// Eseguito su CPU emulata
return EMU;
}
}
Fonte: A fistful of red-pills (R. Paleari, L. Martignoni, G. Fresi Roglia, D. Bruschi)
A. Fattori
Malware
35
Malware
Domande?
Aristide Fattori
[email protected]
Università degli Studi di Milano
A. Fattori
Malware
36