Sei sulla pagina 1di 27

Pattern Recognition

and Applications Lab

Analisi di Malware in Applicazioni


Multimediali: il Caso dei PDF
Dott. Ing. Davide Maiorca
davide.maiorca@diee.unica.it

Universit
di Cagliari, Italia

Corso di Sicurezza Informatica A.A. 2014/2015

Dipartimento di
Ingegneria Elettrica
ed Elettronica

Sommario
Introduzione
Struttura dei PDF
Struttura generale
Struttura di un malware

Analisi dei PDF


Tecniche di difesa
Analisi di contenuto
Analisi strutturale
Evasione

Conclusioni
http://pralab.diee.unica.it

Introduzione

http://pralab.diee.unica.it

Introduzione
Finora abbiamo esclusivamente analizzato eseguibili
La maggior parte dei malware , infatti, un eseguibile Windows o Linux
(estensioni .EXE o .ELF)
Gli attacchi che vengono portati sfruttano delle vulnerabilit del
programma stesso
ma anche delle vulnerabilit del sistema operativo
Tuttavia, il sistema operativo diventato sempre meno vulnerabile
e trovare nuove vulnerabilit negli eseguibili una operazione
complessa e dispendiosa!
Ci vuole, quindi, una soluzione alternativa

http://pralab.diee.unica.it

Introduzione (2)
Lidea : quali altri programmi in esecuzione nel sistema operativo hanno
vulnerabilit?
La scelta pu essere ampia
ma non tutti i programmi sono adatti!
La scelta deve ricadere su qualcosa capace di eseguire delle istruzioni, ad
esempio del codice
Un esempio di codice eseguibile Javascript
Linguaggio di scripting usato, molto spesso, per potenziare la rappresentazione di
contenuti multimediali
Viene interpretato ed eseguito da alcuni programmi esterni

Quindi dei buoni candidati potrebbero essere i Browser, I lettori di


documenti multimediali o di file Flash
Noi ci occuperemo di attacchi a lettori di files PDF

http://pralab.diee.unica.it

PDF
Acronimo di Portable Document Format
E il formato pi utilizzato per la lettura di documenti
Ma non solo!

Un PDF anche un grande contenitore multimediale


Attraverso un PDF possibile visualizzare immagini, video in formato
Flash, compilare form
E possibile leggere questi files utilizzando diversi lettori

Adobe Reader
Foxit
XPdf
Anteprima

Questo, naturalmente, se il file legittimo

http://pralab.diee.unica.it

PDF Maligni
I form interattivi sono un esempio di esecuzione di codice Javascript
contenuto allinterno del file
Cosa succederebbe se questo codice fosse malevolo?
Il reader lo eseguirebbe comunque
Lo stesso varrebbe se un file Flash fosse maligno
Questi codici non rappresentano il malware vero e proprio
Ma contengono del codice che serve ad eseguire, ad esempio, un buffer
overflow contro il reader
La fase finale dellattacco, una volta sfruttata la vulnerabilit, consiste nel
trasferire in memoria un shellcode (quindi, in sostanza, un eseguibile)
E lanciarlo sfruttando la vulnerabilit

http://pralab.diee.unica.it

PDF Maligni (2)


Javascript

Shellcode
(X86)

Actionscript

http://pralab.diee.unica.it

Vulnerabilit del Reader

http://pralab.diee.unica.it

Challenge!
Nel file zippato: esercitazione_pdf trovate dei pdf (senza estensione)
NON ESEGUITELI!
Uno di loro , infatti, un vero malware!
Naturalmente, anche se lo eseguiste non succederebbe niente perch sfrutta una
vulnerabilit troppo vecchia
Ma potrebbe mandare comunque in crash il vostro reader

Il vostro obiettivo capire, attraverso unanalisi, quale di questi files in


realt un malware

http://pralab.diee.unica.it

Struttura PDF

http://pralab.diee.unica.it

Oggetti PDF
Un PDF un grafo di oggetti interconnessi fra di loro
Questi oggetti si dividono in due categorie
Oggetti indiretti
Sono indicizzati da un numero e possono essere referenziati da altri oggetti

Oggetti diretti
Non sono indicizzati da un numero e non possono essere referenziati

Gli oggetti possono essere di diversi tipi:

Numeri
Stringhe
Array
Keywords: sono sempre preceduti dal simbolo / e specificano unazione svolta
dalloggetto (seguendo le specifiche di Adobe). Ad esempio, /Font indica che loggetto
mostrer un font a video
Dizionari: solitamente composti da coppie Keywords-valore o Keywords-Keywords che
descrivono una serie di azioni svolte dalloggetto e, opzionalmente, da uno STREAM
Lo STREAM una sequenza di dati compressi che rappresenta i dati su cui agisce
loggetto (ad esempio, pu contenere il codice Javascript eseguito dal reader)

http://pralab.diee.unica.it

Struttura Generale PDF


Un PDF generalmente composto da quattro parti
Header
Specifica le informazioni base sul file, come ad esempio la versione della specifica PDF

Body
E una lista di oggetti INDIRETTI, ciascuno col proprio numero
Gli oggetti allinterno del body possono referenziarsi a vicenda

XRefTable
E una tabella che descrive la posizione di ciascun oggetto INDIRETTO in memoria
indicando, ad esempio, quanto spazio deve occupare

Trailer
E un dizionario che indica il primo oggetto nella gerarchia dei PDF (sostanzialmente
loggetto da cui parte il grafo)
Tale oggetto indicato con /Root

http://pralab.diee.unica.it

Struttura Generale PDF


%PDF-1.4%

Header

3 0 obj <</Length 5113 /Filter/FlateDecode>>


stream
x[KsFW`C(DY3g6B
...

Keywords
Body

Dati compressi
Xref
0 135
0000000000 65535 f
0000005312 00000 n
0000005207 00000 n
...
trailer
<< /Size 135/Root 133 0 R >>
http://pralab.diee.unica.it

Xref
Table

Trailer

Ogni dizionario compreso fra


virgolette (<< >>).
Ogni oggetto indiretto inizia,
tipicamente, con la stringa:
numero_oggetto 0 obj
Quando un oggetto si riferisce
ad un altro si usa la sequenza
oggetto_riferito 0 R
14

Struttura Tipica di un Malware PDF


Un Malware in formato PDF, la maggior parte delle volte, sfrutta codice
Javascript per attaccare il reader
Tale codice viene nascosto sfruttando la struttura di un PDF
Normalmente, il codice Javascript viene inizializzato da un oggetto
contenente le keywords /Javascript e /JS
Spesso tali oggetti si riferiscono ad altri oggetti contenenti il vero codice
dellattacco
Ma ci sono anche tecniche pi complesse
Ad esempio, possono essere utilizzate keywords non relative
direttamente a Javascript, ma ad azioni che richiedono luso di codice
Esempio: /OpenAction, /Acroform

Inoltre, attraverso luso della keyword /EmbeddedFiles, files PDF


possono essere nascosti dentro altri files PDF.

http://pralab.diee.unica.it

Analisi PDF

http://pralab.diee.unica.it

Analisi PDF

Useremo lo strumento PeePDF, parte della distribuzione Kali


PeePDF esegue lanalisi statica del file
Aprite il file chiamato 1
/usr/bin/peepdf i 1
Il comando i importante perch apre una shell interattiva
Consente, quindi, di esplorare il PDF nelle sue parti
Per vedere tutti i comandi che possibile lanciare, digitate help
Il file 1 ha 14 oggetti, di cui 3 contengono streams
Ci sono anche 3 oggetti su cui presente una qualche compressione
Succede molto spesso con gli streams
I dati sono solitamente compressi

Per visualizzare il grafo di esecuzione del pdf, digitate tree

http://pralab.diee.unica.it

Analisi PDF (2)


Dal comando tree, potete vedere la gerarchia degli oggetti che sono
effettivamente eseguiti dal reader
A volte capita, infatti, che diversi oggetti siano presenti nel file senza
essere eseguiti
Questo il caso di quando modificate un file pdf e lo risalvate
Alcuni oggetti vengono sempre tenuti dentro il file
Ma lalbero viene modificato cos che questi non vengano cancellati
Questo procedimento si chiama aggiunta di versioni

Ora provate ad analizzare gli oggetti col comando object


numero_oggetto
Effettivamente non sono presenti n del codice, n keywords che
possono far pensare che vi sia qualcosa di pericoloso
Il file 1 , infatti, benigno.

http://pralab.diee.unica.it

Analisi PDF (3)

Vediamo di analizzare ora il file 2


Notate subito qualcosa di diverso
Avete, infatti, 4 oggetti sospetti!
Uno, in particolare, ha del codice Javascript!
Guardate lalbero con tree
Vi accorgerete che loggetto Javascript lultimo della gerarchia
Come se, appunto, lobiettivo del file fosse eseguire quel codice!

Date object 11
Vedete che compare un riferimento ad un altro oggetto, /JS, che si riferisce alloggetto
12

E se date object 12..


Vedete del codice malevolo! Il file effettivamente malicious

http://pralab.diee.unica.it

Tecniche di Difesa

http://pralab.diee.unica.it

Tecniche di difesa

Analisi N-Gram
(fino al 2010)

Javscript Analysis
(Basata sul contenuto)
Tools (Disponibili):
Wepawet (Cova et al., 2010)
PjScan (Laskov et al., 2011)

Analisi Strutturale
(Struttura del PDF)
Tools (Disponibili):
Slayer (Maiorca et al., 2012)
PDFRate(Smutz et al., 2012)

Questi sistemi estraggono una serie di


informazioni (features) e imparano a
distinguere files maligni da files benigni
(sfruttando tecniche di Machine Learning

http://pralab.diee.unica.it

Analisi N-Gram
Esegue unanalisi byte-byte del file
Ad esempio, conta quante occorrenze di un byte specifico sono presenti
nel file
Analisi molto ingenua
Non tiene conto, infatti, delle molteplici tecniche di offuscamento del
codice
Facilmente evadibile

http://pralab.diee.unica.it

Analisi di Contenuto
Si concentra sullanalisi di codice Javascript
Estrae delle features lessicali relative al linguaggio stesso
Ad esempio, quante volte certe funzioni potenzialmente malevoli
sono usate
O quanti + sono presenti in un codice
Tali informazioni, infatti, sono spesso associate a tecniche di
offuscamento del codice
Le performances sono buone
Ma questa analisi viene evasa da attacchi che non sono Javascript

http://pralab.diee.unica.it

Analisi Strutturale
Si concentra sulla struttura esterna del PDF
Ad esempio, conta il numero di occorrenze di determinate keywords
dentro il file e le usa come features
Il numero di queste keywords associato ad attivit non legittime
Ad esempio, un file maligno avr in generale poche keywords
Ma molto concentrate su azioni relative al codice!

Il primo prototipo di questa analisi stato sviluppato al PraLAB


Molto potente ed efficace contro qualunque tipo di attacco!
Potete scaricare il prototipo di Slayer dal sito del PraLAB
Ma

http://pralab.diee.unica.it

Evasione
Anche lanalisi strutturale
pu essere evasa!
Idea (sviluppata al PraLAB
(Maiorca et al., 2013)
iniettare del contenuto maligno
in un file riconosciuto come
benigno
in modo per da attuare solo
leggeri cambiamenti strutturali
Questa tecnica prende il nome di
Reverse Mimicry
http://pralab.diee.unica.it

Un approccio pi robusto

Combinare analisi
strutturale e di contenuto

Si utilizza un meccanismo
di analisi dei files pi
evoluto
Possono essere individuati
attacchi evasivi! (Maiorca et
al., 2015)

http://pralab.diee.unica.it

Conclusioni
I malware in formato multimediale sono spesso usati a causa di
vulnerabilit di software di terze parti
Il PDF un ottimo vettore per effettuare tali attacchi
di cui sono presenti diverse varianti!
Ed anche facile nascondere il codice di attacco sfruttando la struttura
stessa del file
Diverse tecniche di difesa sono state sviluppate a livello di ricerca
scientifica
Ma nuovi ed evoluti attacchi richiedono un approccio sempre pi
intelligente alla detection

http://pralab.diee.unica.it