Universit
di Cagliari, Italia
Dipartimento di
Ingegneria Elettrica
ed Elettronica
Sommario
Introduzione
Struttura dei PDF
Struttura generale
Struttura di un malware
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
http://pralab.diee.unica.it
PDF
Acronimo di Portable Document Format
E il formato pi utilizzato per la lettura di documenti
Ma non solo!
Adobe Reader
Foxit
XPdf
Anteprima
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
Shellcode
(X86)
Actionscript
http://pralab.diee.unica.it
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
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
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
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
Header
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
http://pralab.diee.unica.it
Analisi PDF
http://pralab.diee.unica.it
Analisi PDF
http://pralab.diee.unica.it
http://pralab.diee.unica.it
Date object 11
Vedete che compare un riferimento ad un altro oggetto, /JS, che si riferisce alloggetto
12
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)
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!
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