2. FEDERICO
- Introduzione (cos’è un Malware, ciclo di vita, tipologie)
- WannaCry (storia, diffusione, tipologia di attacco)
- Tecniche difensive
- Tecniche di analisi di un Malware (Analisi Statica)
DOMENICO
- Tecniche di analisi di un Malware (Analisi Dinamica)
- Strumenti e metodologie (Virtual Box, IDA Pro, etc)
RAFFAELE
- Analisi di WannaCry
- Analisi Statica di WannaCry
CARMINE
- Analisi Dinamica di WannaCry (Black e White Box)
- Conclusioni (Considerazioni personali, Sviluppi futuri)
15. ● Macchine fisiche isolate (cioè connesse solo ad una
rete locale controllata);
● Vantaggi: possibilità di poter analizzare il malware in un
ambiente reale;
● Svantaggi: una volta eseguito il malware non è
possibile ripristinare lo stato precedente alla sua
esecuzione;
16. ● Macchina virtuale;
● Una macchina virtuale o VM (Virtual Machine) è un
software che, attraverso un processo di virtualizzazione,
crea un ambiente virtuale che emula il comportamento di
una macchina fisica;
● Vantaggi: possibilità di poter ripristinare un particolare
stato del sistema operativo;
● Svantaggi: il malware potrebbe accorgersi del fatto che
viene eseguito all’interno di una macchina virtuale, e
quindi può cercare di confonderci;
17.
18. Oracle VM VirtualBox, è un software open source per l’esecuzione di
macchine virtuali:
● Disponibile per Microsoft Windows, AppleOS X/macOS e Linux;
● Permette di eseguire un malware su una macchina virtuale, al fine di
studiarne il comportamento (analisi dinamica);
● Consente la creazione di istantanee, e il loro successivo ripristino per
poter analizzare lo stato del sistema prima che un determinato evento si
sia verificato;
19. IDA Pro è un disassemblatore estremamente potente, consente di
scompattare un eseguibile (.exe) generandone il relativo codice
macchina.
● Essendo un software commerciale abbiamo utilizzato una versione
gratuita, la quale ha alcune funzionilità limitate (non è infatti da utilizzare
in ambito professionale), ma per usi didattici può andare benissimo;
● Grazie alle sue funzionalità è molto utilizzato nell’ambito della malware
analysis;
● Risulta molto utile nell’analisi statica di un malware;
20. ● E’ pensato per essere interattivo : tutte le parti del processo di
disassembling possono essere manipolate;
● E’ possibile memorizzare i progressi dell’analisi del malware:
consentendo l’inserimento di note ed etichette su funzioni, variabili etc.
Salvando tutto in un DB.
● Struttura modulare dei Plug-in: E’ possibile estendere le funzionalità di
IDA PRO mediante appositi Plug-in.
21. ● Una volta analizzato l’eseguibile, IDA genera un grafo delle istruzioni,
dove ogni blocco rappresenta un obiettivo dell'istruzione jump.
Le linee che separano ogni blocco possono essere verdi, rosse o blu:
● Linea verde : l'obiettivo esiste, e la jump e soddisfatta;
● Linea blu : non ci sono decisioni da intraprendere e la jump non è
soddisfatta (l'obiettivo non esiste);
● Linea rossa : non ci sono decisioni da prendere.
32. Libreria ADVAPI32.DLL
● RegQueryValueExA, RegCreateKeyW, RegSetValueExA, RegCloseKey,
funzioni che permettono di:
○ creare (RegCreateKeyW) e chiudere (RegCloseKey) una chiave di registro
○ ottenere il tipo e i dati di uno specifico nome associato ad una chiave di
registro aperta (RegQueryValueExA)
○ di definire il valore per una specifica chiave di registro (RegSetValueExA)
● CryptReleaseContext
○ rilascia il riferimento di un provider di servizi di crittografia ed un contenitore
di chiavi
33. Libreria KERNEL32.DLL
● CreateFileA, ReadFile, WriteFile, CopyFileA, GetFileAttributes, SetFileAttributes,
funzioni che permettono di:
○ creare o aprire un file (CreateFileA)
○ leggere escrivere su un file (ReadFile, WriteFile)
○ copiare un file (CopyFileA)
○ ottenere e modificare gli attributi di un file (GetFileAttributes, SetFileAttributes)
● CreateProcessA, GetProcessHeap, TerminateProcess
○ creare un nuovo processo (CreateProcessA)
○ terminato un processo (TerminateProcess)
○ recuperare il riferimento dell’heap di default del processo (GetProcessHeap)
34. Libreria KERNEL32.DLL
● OpenMutexA
○ apre un riferimento ad un oggetto mutex
○ i Malware usano la funzione per garantire che solo una singola istanza di esso
venga eseguita
○
● GetStartupInfoA
○ recupera una struttura contente le informazioni di come il processo corrente è
stato configurato per l’esecuzione
● GetModuleHandle
○ recupera il riferimento ad un modulo già caricato
○ viene utilizzata da un malware per modificare il codice di un modulo già caricato o
per iniettare il codice in una buona posizione
35. Libreria MSVCRT.DLL
● fopen, fclose, fread, fwrite, funzioni che
○ aprono e chiudono un file (fopen, fclose)
○ leggono e scrivono su un file (fread, fwrite)
● strcmp, strcat
○ confronta due stringhe (strcmp)
○ concatena due stringhe (strcat)
● malloc, realloc, calloc permettono di
○ allocare un blocco di memoria (calloc, malloc)
○ ridimensionare un blocco di memoria (realloc)
● memset, memcmp, free
○ inizializza un blocco di memoria (memset)
○ compare i primi byte di due blocchi di memoria (memcmp)
○ libera una zona di memoria (free)
Queste funzioni probabilmente
vengono usate per criptare i file
e per fare controlli sulla
memoria disponibile