Analogie tra l’isolamento di un virus patogeno e l’analisi di un eseguibile malevolo

Prendendo spunto dai recenti avvenimenti riguardanti la diffusione del Coronavirus di origine cinese (ma vale per ogni tipo di agente patogeno), è possibile individuare delle analogie tra l’analisi in laboratorio del virus patogeno volto al suo isolamento e sequenziamento genetico e la cosiddetta ‘malware analysis’, ramo della cybersecurity che si occupa appunto dell’analisi di un eseguibile, tipicamente un .exe o una libreria .dll, ai fini di scovare codice malevolo all’interno dell’eseguibile (o libreria) stesso.

Inoltre, codice malevolo può normalmente trovarsi anche dentro ai file Word, Excel (tipicamente le macro) o PDF.

Se già l’informatica ha da tempo mutuato dalla scienza medica il termine ‘virus’ per indicare codice malevolo e che spesso si auto-propaga da computer a computer creando l’infezione e la conseguente necessità di isolare un computer se non un intero dipartimento aziendale, nuovamente vi sono analogie tra l’analisi di un virus patogeno e un virus informatico, oggi meglio definiti come ‘malware’, categoria omni-comprensiva di ogni codice arbitrario che mira a bloccare un computer, una rete, un’azienda, oppure a rimanere nascosto per sottrarre più o meno lentamente dati personali e/o aziendali, rimanendo nelle profondità di un sistema operativo e cercando di agire il più discretamente e anonimamente possibile.

Nella forma moderna del malware, spesso questo codice è di tipo C’n’C (Command and Control), ovvero può essere gestito da remoto in quanto una volta installatosi ‘chiama’ via internet una centrale gestita dai criminali per ricevere istruzioni o più semplicemente trasferire i dati raccolti.

 

Cos’è un malware e cosa fa la malware Analysis

Innanzitutto, è bene sottolineare una cosa: gli attuali semplici anti-virus , per quanto aggiornati e delle migliori software house, non sono più sufficienti a proteggere da soli un sistema e conseguentemente una rete aziendale.

L’anti-virus si basa su un database di impronte digitali note dei file malevoli: per quanto vasto e aggiornato anche più volte al giorno possa essere questo catalogo, oggi purtroppo è facilissimo modificare questa impronta digitale (tecnicamente: un hash) per far si che non risulti presente nel database dell’anti-virus.

A livello di categoria, il malware può essere suddiviso in 5 sotto-classi: virus, worm, trojan horse, rootkit, backdoor, indipententemente dal fatto che siano gestiti da remoto o no (il Command and Control menzionato prima).

Queste 5 sotto-classi sono solo differenti implementazioni, e strategie di attacco da parte dei cyber-criminali, di software ‘malicious’ inteso a sottrarre dati e informazioni personali e/o aziendali o al blocco di un sistema.

 

Quando interviene la malware analysis

La malware analysis, in ambito aziendale, scatta immediatamente dopo un incident management, ovvero un alert da parte di un sistema volto al controllo delle operazioni aziendali, che possa anche minimamente causare il sospetto che un malware si sia infiltrato nella rete o nei sistemi aziendali.

Un tipico esempio di alert sono quelli generati da un IDS/IPS (Intrusion Detection System/Intrusion Prevention System), firewall avanzati che hanno la capacità di analizzare in tempo reale il traffico internet (o anche quello tra dipartimenti diversi di un’azienda) in entrata e in uscita.

Basandosi su delle ‘signatures’, gli IDS/IPS possono dedurre se il  traffico in entrata o in uscita è malevolo o quanto meno inusuale.

Altre categorie di software che possono generare degli alert sono i software di monitoring delle attività di un sistema operativo, creando un alert se, ad esempio, vengono copiati quantità notevoli di file da una macchina (c.d. mass-copy), generando un alert per comportamento inusuale.

In questo caso, l’alert è generato per la data-exfiltration prevention, cioè la prevenzione di esfiltrazione dati da un computer.

In questo caso il response team procede all’individuazione e all’analisi di tutti i file sospettati di provare danno.

 

Come viene fatta la malware analysis e chi la può fare

Per effettuare malware analysis, sono necessarie notevoli capacità in termini di programmazione e, conseguentemente, di analisi del codice.

In primo luogo, è necessario utilizzare una categoria software specifica chiamata IDA (Interactive Disassembler) che permette di trasformare il codice macchina di un eseguibile in linguaggio umano e dissezionare l’eseguibile in tutte le sue parti principali.

A seguito di tale trasformazione, per un malware analyst è possibile verificare cosa esattamente fa un eseguibile e se all’interno di esso vi è nascosto del codice malevolo.

A questo punto, la Malware Analysis si divide in due categorie principali: analisi statica e analisi dinamica.

Nella analisi statica, l’analisi del codice viene fatta manualmente, riga per riga, dissezionando il binario sospetto e senza eseguirlo.

Il codice macchina viene trasformato in codice assembler, più leggibile per l’analista e da qui in poi analizzato per comprendere quali azioni l’eseguibile intraprende.

Da notare che nelle moderne tecniche di creazione di malware, spesso vengono usate tecniche di offuscamento del codice, degli indirizzi ip delle centrali di controllo, o di finti errori che possono servire a indurre in errore l’IDA ma che non creano problemi nell’esecuzione del codice.

Nell’analisi dinamica il binario malevolo viene eseguito o all’interno dell’IDA stesso (c.d. sandbox, una sorta di camera di detonazione) per analizzare il suo comportamento, osservando ad esempio se cerca di replicarsi su altre macchine, se effettua scansioni di rete, se cerca di copiare files, se cerca di modificare eseguibili di sistema (quelli necessari al funzionamento del sistema operativo) oppure, sempre in ambiente isolato ed esattamente come in un laboratorio scientifico, viene copiato ed eseguito all’interno di macchine virtuali, sempre per vedere quali azioni intraprende e analizzare il suo comportamento.

La porzione di codice malevolo all’interno di un eseguibile viene chiamato ‘payload’, e payload-injection è l’azione di inserire volutamente codice malevolo all’interno di un eseguibile o libreria.

 

Conclusioni

Come detto prima, la cybersecurity oggi non può più limitarsi al semplice anti-virus in quanto sono strumenti molto limitati rispetto al grado di sofisticazione raggiunto oggi da cyber-criminali.
Oltre a dover utilizzare suite complete di protezione del sistema, per le aziende da una certa dimensione in poi e con dati importanti all’interno dei propri sistemi (e senza dimenticare le responsabilità derivanti dal GDPR) sono necessari strumenti di monitoring continuo, un team di cyber-security e una buona cultura aziendale, possibilmente effettuando corsi di basic cybersecurity per il proprio personale e management per migliorare quella che oggi viene definita la cybersecurity posture, cioè l’insieme di non solo tutti i sistemi aziendali volti alla difesa cyber, ma anche  gli atteggiamenti e i comportamenti delle persone che vi lavorano all’interno dato che, ancora nel 2020, il principale fattore di debolezza in tutta la cyber-security chain risulta ancora essere in prima posizione il fattore umano.

Stay Safe!

- Luca Fabrizio Perozzo -

richiedi informazioni

Il nostro team sarà felice di trovare la soluzione perfetta per te!