analisi-del-malware:-come-funziona

Analisi del malware: come funziona

In questo articolo scopriremo le metodologie e tool più usati per analizzare il funzionamento del malware e il loro comportamento.

Analisi del malware: le definizioni

Per capire il comportamento dei malware possiamo utilizzare quattro tipi di analisi, ovvero:

  • L’analisi statica: insieme di tecniche che permettono l’analisi di un file sospetto senza metterlo in esecuzione;
  • Un’altra è definita analisi dinamica: insieme di tecniche che prevedono la messa in esecuzione in un ambiente controllato del sospetto malware al fine di analizzarne i comportamenti;
  • L’analisi automatizzata: tecnica che prevede la sottomissione del file sospetto ad un’applicazione che restituisce un responso per capire se siamo di fronte a un malware;
  • Infine l’analisi della RAM: è possibile rilevare malware in esecuzione in un sistema anche quando non si dispone di un file da analizzare oppure non si è certi che sul sistema sia presente un malware.

Analisi del malware: analisi della RAM

L’analisi della RAM viene solitamente eseguita nei casi in cui si presume la presenza di un malware in un sistema, ma non viene rilevato l’eseguibile sospetto.

Lo strumento più importante per l’analisi della memoria è Volatility. All’interno di Volatility sono presenti diversi plugin utili per il rilevamento del malware.

Alcuni plugin permettono di analizzare i processi in corso nel sistema e di individuare le loro anomalie. Alcuni, invece, possono esaminare le comunicazioni di rete del processo. Altri ancora consentono di rivelare la presenza di meccanismi di iniezione di codice e di rootkit.

Una volta identificati uno o più processi che manifestano un atteggiamento dannoso, è possibile procedere all’estrazione dalla memoria, creando un file leggibile che può essere esaminato.

Analisi automatizzata

L’analisi automatizzata si basa su siti specifici ai quali è consentito inoltrare file sospetti tramite upload e sui quali viene effettuata l’analisi. Al termine dell’analisi, viene creato un rapporto.

Il sito più popolare è VirusTotal, un servizio Web di scansione antimalware. Il file trasmesso a VirusTotal viene esaminato con vari tool antivirus e, al termine, i risultati sono mostrati sulla pagina Web.

Un altro tipo di strumento di analisi automatica presente online è quello basato su sandbox, ovvero un sistema controllato e isolato in cui il malware sospetto può essere eseguito, o il file sospetto di essere dannoso aperto, registrandone tutte le conseguenze sul sistema: si tratta quindi di un’analisi dinamica.

Molti di questi strumenti sono disponibili gratuitamente, come ad esempio Hybrid Analysis di Payload Security. Infine, Cuckoo Sandbox è uno strumento in grado di esaminare diversi tipi di file malevoli.

Analisi statica

Il primo tipo di analisi statica è rappresentato dalle stringhe presenti all’interno del file binario. Un file eseguibile può includere stringhe nel momento in cui prevede di inviare messaggi di stampa, indirizzi IP, nomi di dominio o URL a cui connettersi… Questa è un’analisi che può fornire informazioni utili sul funzionamento del malware.

Una prima possibilità per ottenere l’estrazione delle stringhe è quella di ricorrere al comando stringhe standard di Linux, che offre la possibilità di ricavare stringhe sia in formato ASCII sia in formato Unicode.

Un’opzione che si può sfruttare in Windows è PeStudio, un software gratuito. È uno strumento utile per vedere molte informazioni in un eseguibile che consente anche l’estrazione di stringhe.

Spesso gli autori di malware, per non svelare il proprio operato, mettono in atto dei meccanismi di offuscamento del binario, attraverso l’uso dei cosiddetti packer o cryptor.

Uno strumento che può essere utilizzato per misurare l’entropia di un binario è binwalk.

Una volta determinato che l’eseguibile è offuscato, il sistema più facile per analizzarlo è decomprimere o decriptare l’eseguibile utilizzando lo stesso strumento usato per offuscare il file.

File PE

Il passo seguente è l’analisi del file PE. Il formato PE (Portable Executable), utilizzato dagli eseguibili di Windows, è una struttura di dati che consente al sistema operativo Windows di eseguire correttamente il contenuto degli eseguibili.

I file di tipo PE iniziano con una intestazione che riporta informazioni relative al codice da eseguire e all’indirizzo in cui è contenuta la parte eseguibile. Le informazioni contenute nell’intestazione di un file PE sono molto importanti dal punto di vista dell’analisi del malware.

Il file PE è suddiviso in sezioni, la cui struttura è descritta nella Section Header, che si trova subito prima delle sezioni stesse. Le sezioni più comuni in un file PE sono le seguenti:

  • .text: contiene il codice eseguibile (si tratta in genere dell’unica sezione che contiene codice);
  • .rdata: contiene informazioni sull’import e l’export e può contenere anche altri dati read only;
  • .data: contiene dati globali accessibili da ogni punto del programma;
  • .rsrc: contiene le risorse usate dall’eseguibile che non sono parte dell’eseguibile, come immagini, menù o stringhe.

Per ognuna delle sezioni presenti sono disponibili le seguenti informazioni:

  • Names: il nome della sezione;
  • Virtual-Size: le dimensioni della sezione una volta caricata in memoria;
  • Virtual-Address: indirizzo relativo (rispetto all’indirizzo base dell’eseguibile) dove la sezione può essere trovata in memoria;
  • Raw-size: le dimensioni della sezione sul disco;
  • Raw-data: l’offset dove la sezione può essere trovata all’interno del file;
  • Entry-point: l’indirizzo virtuale relativo in cui il codice inizia l’esecuzione; di solito coincide con l’inizio della sezione .text.

Analisi dinamica

L’analisi dinamica viene in genere effettuata dopo l’analisi statica ed è complementare ad essa.

Per effettuare l’analisi dinamica di un malware potenziale, occorre anzitutto allestire un ambiente protetto in cui il malware potenziale può essere eseguito in modo sicuro.

Il modo più semplice è quello di creare un contesto di laboratorio costituito da macchine virtuali. Nella versione più semplice, il laboratorio può essere costituito da una macchina Windows posizionata su una rete isolata, sulla quale viene eseguito il potenziale malware, e da una macchina Linux posizionata sulla stessa rete isolata e configurata come gateway predefinito per la macchina Windows.

Gli strumenti di analisi dovranno essere presenti sul computer Windows in cui è eseguito il malware, mentre sul computer Linux è installato uno strumento di sniffing della rete. Sulla macchina Linux è installato anche uno strumento per simulare i vari servizi di rete che potrebbero essere richiamati dal malware e rispondere al posto di qualsiasi host che il malware tenta di contattare.

L’uso di macchine virtuali consente di acquisire istantanee prima dell’analisi, in modo da tornare a una situazione pulita una volta completata l’analisi.

L’analisi dinamica si basa sul monitoraggio delle interazioni del malware con il sistema, in particolare sono di solito monitorati:

  • i processi messi in esecuzione dal malware, le loro proprietà ed eventuali anomalie;
  • le interazioni del malware con il filesystem;
  • l’accesso e la modifica di chiavi e di dati sul registry;
  • il traffico di rete generato.

Tool

Possibili tool utilizzati per queste tipologie di monitoraggio sono:

Process Hacker: è uno strumento utilizzato per esaminare i processi in esecuzione sul sistema e per ispezionare gli attributi del processo.

Process Monitor: è uno strumento di monitoraggio avanzato che mostra l’interazione in tempo reale dei processi con il filesystem, il registry e alcune attività di rete.

Regshot: utile per creare una baseline del sistema prima dell’esecuzione del campione di malware e confrontarla con lo stato del sistema dopo l’esecuzione.

Infine, per il monitoraggio del traffico di rete generato come risultato dell’esecuzione del malware è possibile utilizzare Wireshark, uno sniffer di pacchetti che consente di catturare il traffico di rete. L’analisi del traffico di rete catturato è utile per capire il canale di comunicazione utilizzato dal malware e determinare gli indicatori di compromissione basati sulla rete.

Related Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.