Allestire un ambiente per l'analisi del malware: requisiti di base

Con questo primo post diamo vita ad una serie di interventi finalizzati ad individuare e valutare le caratteristiche dei possibili strumenti software e delle risorse utili per allestire un ambiente dedicato all'analisi del malware.

Innanzitutto tale ambiente dovrebbe soddisfare una serie importanti requisiti, quali:
  • sicurezza: deve essere possibile effettuare una analisi statica e/o dinamica del codice maligno, senza che ciò comporti la definitiva compromissione della integrità dell'ambiente ed impedendo la propagazione del codice all'esterno di quest'ultimo.
  • affidabilità: gli strumenti da utilizzare dovrebbero essere affidabili e rendere perciò possibile una analisi esaustiva del codice maligno.
  • interoperabilità: gli strumenti da utilizzare dovrebbero essere, possibilmente, multipiattaforma permettendo il loro utilizzo in sistemi operativi differenti (Windows, Linux, ecc...).
  • costi: ove possibile gli strumenti prescelti dovrebbero essere rilasciati con licenza freeware o, meglio ancora, open source. In questo modo diventa possibile, da un lato, limitare i costi associati con l'acquisto ed il mantenimento delle licenze e, dall'altro, nel caso in cui sia necessario, apportare modifiche e personalizzazioni al codice sorgente.
Partendo dal primo punto, la sicurezza oggi si presta ad essere soddisfatta, principalmente, mediante il ricorso ai cd. software di virtualizzazione che consentono di eseguire, all'interno di un determinato sistema operativo (host), più istanze di sistemi differenti, emulando le risorse hardware tipiche di una architettura.

Anche se l'utilizzo di questi software non è completamente privo di problemi, va detto, infatti, che essi si prestano in modo particolare a questi utilizzi, in virtù di alcune loro caratteristiche funzionali come la possibilità di vincolare l'esecuzione del sistema all'interno di un ambiente di rete confinato (contenimento), nonchè la possibilità di essere facilmente ripristinati nel caso di una loro compromissione.

Infine, oltre agli strumenti di virtualizzazione citati, nell'ambiente da precostituire dovrebbero essere presenti ulteriori categorie funzionali di software di cui indichiamo, a titolo esemplificativo, le più importanti:
  • utilità: scompattatori, unpacker, decifratori, strumenti per l'identificazione di contenuti steganografici, strumenti per la creazione di hash, ecc...
  • analisi statica degli eseguibili: disassemblatori, editor esadecimali, analizzatori di stringhe, analizzatori di risorse, ecc...
  • analisi dinamica degli eseguibili: debugger, memory dumper, sandbox applicative, patcher, tools per il monitoraggio del filesystem e di altre componenti del sistema (ad es. Windows Registry), process viewer, ecc...
  • analizzatori di rete e di protocollo: sniffer, emulatori di servizi di rete, honeypot, ecc...
  • risorse internet: archivi pubblici di malware, motori di ricerca degli hash crittografici, reverse engineering, ecc...

0 commenti: