65
Analisi Statica del Malware BlackEnergy Alfredo De Santis Dipartimento di Informatica Università di Salerno [email protected] http://www.dia.unisa.it/professori/ads Maggio 2018

Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi Statica del Malware BlackEnergy

Alfredo De SantisDipartimento di InformaticaUniversità di Salerno

[email protected]

http://www.dia.unisa.it/professori/ads

Maggio 2018

Page 2: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

SommarioØDescrizione

ØVersioniØCaratteristicheØAnalisi Statica

ØFile Excel con MacroØModulo Dropper

Ø Conclusioni

Page 3: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

BlackEnergy

IdentikitNome

ØBlackEnergyAnno Nascita

Ø2007SO Attaccati

ØMicrosoft Windows®Segni Particolari

ØUsato per un attacco alsettore energetico ucraino(2015)

Descrizione – 1/4

Page 4: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

ØRegione Ivano-Frankivsk, Ucraina,Dicembre 2015ØInterruzione della fornitura elettrica per 6ore

ØDopo una lunga serie di indagini vieneindividuata la causa: un malwareØIl malware, definito BlackEnergy, ha infettato isistemi informatici della centraleØGrazie alla riuscita di un attacco di phishing

Fontehttp://www.trendmicro.com/vinfo/us/security/news/cyber-attacks/faq-blackenergy

Descrizione – 2/4

Page 5: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Descrizione – 3/4Ø Il malware BlackEnergy si è evoluto nel tempo

Ø Diventando sempre più complesso ed articolatoØ Possiamo essenzialmente identificare tre

versioni di tale malware, derivanti dalla suaevoluzioneØBlackEnergy v.1ØBlackEnergy v.2ØBlackEnergy v.3

Page 6: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Descrizione – 4/4BlackEnergy v.1

Ø Il malware creava una sorta di BotnetØ Veniva utilizzato per attacchi di tipo DDoS

Ø Principalmente nei confronti di siti web russiØ Era caratterizzato da un “bot builder”

Ø Eseguiva il software malevolo sulle macchineremote da controllare, mediante le quali poieffettuava attacchi DDoS

Page 7: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Descrizione – 4/4BlackEnergy v.2 – 1/2

Ø Versione del malware riscritta eriorganizzataØ Permetteva l’esecuzione di svariate azioni

malevoleØ Attacchi DDoSØ SpamØ FrodiØ Etc.

Ø Era caratterizzo da una struttura modulareØ Modulo InstallerØ Modulo Driver

Page 8: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Descrizione – 4/4BlackEnergy v.2 – 2/2

Ø Il modulo InstallerØ È ritenuto un oggetto legittimo da parte del Sistema

OperativoØ Consente il download e l’installazione del modulo

DriverØ Il modulo Driver

Ø È responsabile dell’esecuzione del codice malevoloall’interno della macchina infettata

Page 9: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Descrizione – 4/4BlackEnergy v.3

Ø Versione del malware ulteriormente raffinataed ottimizzata nel codice sorgente e nellecaratteristiche

Ø È costituita da tre elementi principali1. File Microsoft Excel®

Ø Contente una macro in Visual Basic for Application(VBA)

2. Modulo Dropper3. Modulo Core

Page 10: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Microsoft Excel®

Ø Questo file rappresenta il veicolo didiffusione del modulo Dropper del malwareØ Al suo interno è inclusa una macroØ La macro contiene del codice malevoloØ Viene generalmente trasmesso mediante allegati e-

mail

Page 11: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

Visual Basic for Application (VBA) Macro

Ø Una macro è uno script contenente una serie diØ ComandiØ FunzioniØ Procedure

Ø Una macro è contenuta in un modulo di Microsoft VisualBasic®Ø Può essere eseguita ogni volta che è necessarioØ È tipicamente inglobata all’interno di un file

Microsoft Office

Ø Il linguaggio di programmazione in cui è scritta unamacro è Visual Basic for Application (VBA)Ø Versione rimodellata e semplificata di Microsoft

Visual Basic (VB)

Def

inizione

di M

acro

Page 12: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Excel con Macro

Inoculazione ed esecuzione del modulo Dropper e del modulo Core

Page 13: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Excel con Macro

Macro con codice malizioso(affinché la macro venga eseguita è necessario il consenso dell’utente)

Inoculazione ed esecuzione del modulo Dropper e del modulo Core

Page 14: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Excel con Macro

Macro con codice malizioso(affinché la macro venga eseguita è necessario il consenso dell’utente)

Inoculazione ed esecuzione del modulo Dropper e del modulo Core

Page 15: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Excel con Macro

vba_macro.exe

Page 16: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Excel con Macro

vba_macro.exe

Inocula ed Esegue il file vba_macro.exe

Page 17: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Excel con Macro

vba_macro.exe

FONTCACHE.DAT rundll32.exe

Page 18: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura BlackEnergy v.3 – 1/3

File Excel con Macro

vba_macro.exe

FONTCACHE.DAT rundll32.exe

vba_macro.exeinocula i seguenti file

• FONTCACHE.DAT• rundll32.exe

Page 19: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura del modulo Dropper

Ø Si tratta del file eseguibile vba_macro.exeØ Inocula quattro file, di cui due necessari per

l’esecuzione del codice malevoloØ FONTCACHE.DAT

Ø Modulo Core del malwareØ Si tratta di una DLLØ Necessita di rundll32.exe per essere eseguito

Ø rundll32.exeØ File del Sistema Operativo Microsoft Windows®: tale

file non è alterato dal malwareØ Viene inoculato solo se non è presente o se

eventualmente è inaccessibile

Struttura BlackEnergy v.3 – 2/3

Page 20: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura del modulo Core

Ø È costituito dal file FONTCACHE.DATØ Si tratta di una DLL

Ø Per essere eseguita necessita di rundll32.exeØ Viene inoculato nel sistema infetto

Ø Tramite il modulo DropperØ Fornisce una serie di API a basso livello

Ø Utilizzate dal malware per svolgere le proprieazioni malevole

Struttura BlackEnergy v.3 – 3/3

Page 21: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Struttura del modulo Core

Ø È costituito dal file FONTCACHE.DATØ Si tratta di una DLL

Ø Per essere eseguita necessita di rundll32.exeØ Viene inoculato sul sistema infetto

Ø Tramite il modulo DropperØ Fornisce una serie di API a basso livello

Ø Utilizzate dal malware per svolgere le proprieazioni malevole

Struttura BlackEnergy v.3 – 3/3

Da notare la scelta del nome, FONTCACHE (cache dei caratteri), volta a trarre in inganno l’utente

Page 22: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø Effettuiamo ora l’analisistatica del codice malevoloØ Contenuto all’interno della

macro del file ExcelØ Le macro sono interpretate

da Visual Basic forApplication (VBA)Ø Quindi è possibile analizzare

direttamente lo scriptcontenente il codice sorgentedella macro

Analisi StaticaFile Excel con Macro

Sezione del codice sorgente della macro

Page 23: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile Excel con Macro

Ø Viene definita la variabile fnumcontenente il file number di unfile vuotoØ Il file number è restituito dalla

funzione FreeFile

Sezione del codice sorgente della macro

Page 24: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile Excel con Macro

L’operatore & effettua la concatenazione di due stringhe

Ø Viene definita la variabilefname, il cui valore è dato dallaconcatenazione di due elementiØ Path verso la cartella temporanea

di Windows, ottenuta mediante lafunzione Environ(“TMP”)

Ø Nome del file vba_macro.exe

Sezione del codice sorgente della macro

Page 25: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile Excel con Macro

Ø Viene aperto il file avente ilsuddetto path, a cui vieneassociato il suddetto filenumberØ Il file viene aperto in scrittura, in

modalità binaria

Sezione del codice sorgente della macro

Page 26: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø Vengono copiati dei byteall’interno del fileØ Da un array definito

precedentemente all’interno dellamacro

Analisi StaticaFile Excel con Macro

Sezione del codice sorgente della macro

Page 27: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile Excel con Macro

Ø Viene aperto il file avente ilsuddetto path, a cui vieneassociato il suddetto filenumberØ Il file viene aperto in scrittura, in

modalità binariaØ Vengono copiati dei byte

all’interno del fileØ Da un array definito

precedentemente all’interno dellamacro

Sezione del codice sorgente della macro

Il modulo Dropper (file vba_macro.exe) è stato inoculato nel sistema, da parte della macro del file

Excel

Page 28: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile Excel con Macro

Ø Viene eseguito il filevba_macro.exe

Sezione del codice sorgente della macro

Page 29: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile Excel con Macro

Ø Viene eseguito il filevba_macro.exe

Sezione del codice sorgente della macro

In questa fase viene eseguito il modulo Dropper, subito dopo la sua creazione nei passi

precedenti

Page 30: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Ø Da una prima analisi del file vba_macro.exe è possibilededurre alcune informazioniØ Si tratta di un Portable Executable a 32-bit (PE32)Ø Il formato PE permette a Windows di eseguire il codice senza

necessità di ulteriori librerie esterneØ Tutte le informazioni necessarie all’esecuzione sono incapsulate

all’interno dell’eseguibile stesso

Page 31: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Mediante IDA Pro è possibile disassemblare il file vba_macro.exe

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 32: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 33: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Gli Export caratterizzanoporzioni di codice (funzioni,

etc.) che possono essere accedute/invocate da parte

del sistema operativo

Di solito, mediante Export è possibile individuare la

funzione principale (starting point) che

caratterizza il malware

Page 34: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40 La funzione start è l’unica

visibile da parte del sistema operativo

(esportata)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 35: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

Codice assembly della funzione start

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 36: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

STACK|-----------| <-- Qui è dove punta ebp, ossia dove inizia lo stack| oggetto 0 || ... || oggetto 7 || oggetto 8 | <-- Qui è (ad esempio) dove potrebbe puntare esp| oggetto 9 || ... ||-----------|

Ø Il registro ebp (detto anche frame pointer o base pointer) è un puntatore alla base dello stack e serve per indicare l’inizio dello stack che si sta utilizzandoØ Ad es., dove iniziano i dati relativi alla procedura corrente

che si sta eseguendoØ Il registro esp (detto anche stack pointer) è un puntatore ad un

indirizzo dello stackØ Mentre ebp indica dove inizia lo stack, il registro esp

permette di scorrerlo in maniera arbitraria, per poter prelevare o inserire dati in un punto preciso della memoria

Page 37: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

1. Viene invocata la funzione push sulregistro EBP

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 38: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

1. Viene invocata la funzione push sulregistro EBP

2. Viene copiato, mediante la funzionemov, il valore del registro ESP in EBP

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 39: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

1. Viene invocata la funzione push sulregistro EBP

2. Viene copiato, mediante la funzionemov, il valore del registro ESP in EBP

3. Viene effettuato un salto noncondizionato alla label sub_4043PE(funzione jmp)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 40: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

1. Viene invocata la funzione push sulregistro EBP

2. Viene copiato, mediante la funzionemov, il valore del registro ESP in EBP

3. Viene effettuato un salto noncondizionato alla label sub_4043PE(funzione jmp)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

• Le prime due istruzioni sono essenzialmente di inizializzazione(spesso note come prolog assembly function)• Preparano lo stack ed i registri per l’utilizzo della funzione

Page 41: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Viene individuato un unico Export:

Nome Funzione: start [main entry]Indirizzo Memoria: 00402B40

1. Viene invocata la funzione push sulregistro EBP

2. Viene copiato, mediante la funzionemov, il valore del registro ESP in EBP

3. Viene effettuato un salto noncondizionato alla label sub_4043PE(funzione jmp)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

• Indica un salto alla subroutine all’indirizzo 4043FE• IDA Pro genera automaticamente dei nomi composti da

prefissi comuni (ad es., sub, etc.) concatenati con indirizzivirtuali (4043FE in questo caso)• In modo da assicurare l’unicità del nome

Page 42: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø Cosa è stato individuato finora dall’analisistatica?Ø Il file ha un unico Export, che rimanda alla

funzione startØ Dal codice assembly della funione start

(ottenuto tramite IDA Pro) è emerso cheØ È presente un salto incondizionato (istruzione 3 di

start) ad una subroutine, denominata sub_4043FE(tale nome è assegnato da IDA Pro)

Ø Passo SuccessivoØ Analisi della subroutine denominata

sub_4043FE

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 43: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaGrafo prodotto da IDA Pro, che descrive ilcomportamento, in termini di salti effettuati,della subroutine denominata sub_4043FE

Page 44: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø Durante l’analisi del grafo prodotto da IDAPro è necessario prestare particolareattenzione ai salti condizionati e/o cicliØ I salti condizionati potrebbero essere indice

dell’attivazione del codice malevoloØ Un ciclo potrebbe reiterare più volte delle porzioni

di codice malevolo

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 45: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Rappresentazione del flusso deisalti di una parte dellasubroutine SUB_4043FE

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 46: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

47 salti incondizionati

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 47: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

salto condizionato

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 48: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

salto condizionato

Richiede maggiore attenzione nell’analisi!

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 49: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø Attraverso l’analisi del grafico precedente èstato possibile individuare un saltocondizionatoØ Eseguito dalla funzione JNZ

(Jump Not Zero)Ø Effettua il salto se il valore confrontato è diverso da

zeroØ Questo salto condizionato è stato individuato dopo

47 salti non condizionati

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 50: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Focalizziamoci quindisul salto condizionato(istruzione JNZ)

Page 51: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

VerdeIDA Pro indica con una lineaverde il flusso di istruzionieseguite se la condizione delsalto è vera

Rappresentazione dei salti condizionati in IDA Pro

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 52: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

RossoIDA Pro indica con una linearossa il flusso di istruzionieseguite se la condizione èfalsa

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Rappresentazione dei salti condizionati in IDA Pro

Page 53: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

BluIDA Pro indica con una linea blu quando ilsalto è eseguito all’unica istruzione possibile(istruzione assembly JMP)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Rappresentazione dei salti condizionati in IDA Pro

Page 54: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø Proseguendo con l’analisi delflusso della subroutinesub_4043FE è possibile rilevareun ulteriore elemento diinteresseØ Qualora la condizione del

precedente salto risulti essere vera,si può notare un possibile ciclo

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 55: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø In tale porzione di codice è possibileindividuare la condizione di uscita checaratterizza il cicloØ Istruzione JB (Salta Se Minore)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 56: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø In tale porzione di codice è possibileindividuare la condizione di uscita checaratterizza il cicloØ Istruzione JB (Salta Se Minore)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 57: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø In tale porzione di codice è possibileindividuare la condizione di uscita checaratterizza il cicloØ Istruzione JB (Salta Se Minore)

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Page 58: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Ø Dall’analisi statica di vba_macro.exe èpossibile ottenere ulteriori utili informazioni

Ø Infatti, vba_macro.exe prima di inocularefile reperisceØ Il path della cartella di sistema APPDATAØ Il path della cartella di sistema System32

Page 59: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Analisi StaticaFile vba_macro.exe (modulo Dropper)

Ø Per localizzare il path della cartella APPDATA, vba_macro.exeutilizza l’identificativo CSIDL di tale cartella, il quale ha valoreesadecimale 1C (come indicato dal suffisso h)Ø CSIDL (Constant Special item ID List) è un insieme di valori che

fornisce, in modo indipendente dal sistema, il path delle cartelle perusi speciali

Porzione di codice assembly relativa a vba_macro.exe in cui viene reperita la cartella APPDATA

Page 60: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø Dopo aver individuato le porzioni di codiceassembly su cui focalizzare l’attenzioneØ Anche grazie all’ausilio degli strumenti grafici

forniti da IDA ProØ Risulta necessaria un’analisi più approfondita

Ø Può essere molto dispendiosa in termini di tempoØ È necessaria un’ottima conoscenza del linguaggio

assembly

Analisi StaticaOsservazioni

Page 61: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

1. Il primo passo per l’analisi statica del malwareBlackEnergy v.3 è stato l’individuazione dei vari modulidi cui esso si compone

2. L’analisi è stata effettuata esclusivamente sulØ File Microsoft Excel con MacroØ Modulo Dropper (eseguibile vba_macro.exe)

3. Mediante l’analisi statica del codice malevolo contenutonella macro del File Excel si è scoperto che l’esecuzionedi tale macro permetteØ L’inoculazione del modulo DropperØ L’esecuzione del modulo Dropper

Analisi StaticaConclusioni - 1/3

Page 62: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

4. È stato effettuato il disassembling del filevba_macro.exeØ Mediante il software IDA Pro

5. Sono stati individuati gli Export di taleeseguibileØ Nel caso specifico, è stato individuato un unico

Export, corrispondente alla funzione start

Analisi StaticaConclusioni - 2/3

Page 63: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

6. Mediante l’analisi dell’assembly della funzionestartØ È stato possibile individuare un salto incondizionato

ad una subroutine, chiamata sub_4043FE da IDAPro

7. Da un’analisi della rappresentazione graficaprodotta da IDA Pro, relativa ai salti dellasburoutine sub_4043FE, è stato possibileindividuare due elementi su cui focalizzarel’attenzione ed approfondire l’analisiØ Un salto condizionatoØ Un ciclo

Analisi StaticaConclusioni - 3/3

Page 64: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Ø L’analisi statica potrà essere ulteriormenteapprofondita in almeno due direzioni

1. Focalizzando l’attenzione sulle parti individuateØ Analizzando nel dettaglio il codice assemblyØ Cercando di reperire quante più informazioni possibili

riguardo al comportamento del malware2. Verificando se vi sono altre porzioni di codice da

analizzare approfonditamenteØ Ad es., cicli, salti condizionati, etc.

Analisi StaticaSviluppi Futuri

Page 65: Analisi Statica del Malware BlackEnergyads/.../2018/...BlackEnergy.pdf · BlackEnergy v.3 – 1/3 Visual Basic for Application (VBA) Macro Ø Una macro è uno script contenente una

Bibliografia/SitografiaØ https://www.f-

secure.com/documents/996508/1030745/blackenergy_whitepaper.pdf

Ø https://www.sentinelone.com/wp-content/uploads/2016/01/BlackEnergy3_WP_012716_1c.pdf

Ø https://msdn.microsoft.com/en-us/library/windows/desktop/bb762494(v=vs.85).aspx