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>> Keywords


stream
x[KsFW`C(DY3g6B Body
...
Dati compressi

Xref
0 135 Ogni dizionario compreso fra
0000000000 65535 f Xref virgolette (<< >>).
0000005312 00000 n Table Ogni oggetto indiretto inizia,
0000005207 00000 n tipicamente, con la stringa:
... numero_oggetto 0 obj
Quando un oggetto si riferisce
ad un altro si usa la sequenza
trailer
Trailer oggetto_riferito 0 R
<< /Size 135/Root 133 0 R >>

http://pralab.diee.unica.it 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 Javscript Analysis Analisi Strutturale


(fino al 2010) (Basata sul contenuto) (Struttura del PDF)
Tools (Disponibili): Tools (Disponibili):
Wepawet (Cova et al., 2010) Slayer (Maiorca et al., 2012)
PjScan (Laskov et al., 2011) 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

Potrebbero piacerti anche