Che cos’è l’analisi malware?

[post-views]
Agosto 23, 2022 · 14 min di lettura
Che cos’è l’analisi malware?

Molti bambini rompono le cose non perché siano piccole creature malefiche, ma perché sono curiosi di sapere “come è fatto”. Alla fine, alcuni di quei bambini crescono e diventano analisti di cybersecurity. Fanno sostanzialmente lo stesso ma in un mondo adulto.

Analisi del malware è il processo di studio di un campione di malware per capire di cosa è fatto e come funziona. A volte non lo saprai mai a meno che non provi, quindi devi effettivamente eseguire il malware. E a volte, è necessario esaminare accuratamente il codice riga per riga senza attivare l’esecuzione.

Ovviamente, imparare cos’è l’analisi del malware porta molti benefici. Conoscere il nemico significa conoscere i modi per vincerlo. Significa che i ricercatori di malware aiutano i loro team SOC a sviluppare algoritmi di rilevamento più mirati, oltre a migliorare la loro risposta agli incidenti.

La parte emozionante è che il malware moderno sta diventando sempre più sofisticato. Spesso gli analisti di sicurezza devono studiare qualcosa a cui non hanno accesso. Se dieci anni fa il malware poteva essere definito da un file eseguibile, ora, un file è solo l’inizio di un viaggio. Approfondiamo un po’ di più l’analisi del malware e vediamo come farla.

Come Puoi Iniziare l’Analisi del Malware?

È semplice – puoi iniziare l’analisi del malware dopo aver ottenuto un campione di malware. Le organizzazioni che adottano un approccio di Difesa in Profondità hanno diversi strumenti e processi in atto per trovare regolarmente nuovi campioni. Alcuni analisti ti diranno che non hanno visto niente di concettualmente nuovo per anni, mentre altri ammetteranno di avere nuovi campioni di malware circa ogni mese. Dipende tutto molto dalla profondità della ricerca.

Analizzare il malware può consumare molto tempo; ecco perché molti team SOC preferiscono non andare così in profondità. Tuttavia, il tempo trascorso nella ricerca ripaga sicuramente, perché non è mai troppo tardi per migliorare la postura di sicurezza.

Quali sono i Tipi di Analisi del Malware

L’analisi del malware può essere condotta in modi diversi e con l’uso di vari strumenti. Ci sono tre tipi principali di analisi:

  • Statica
  • Dinamica
  • Ibrida

Per capire come analizzare il malware che hai a disposizione, prova innanzitutto a rispondere a qualche domanda:

  1. Come potrebbe questo malware attivare la sua esecuzione?
  2. In che modo cercherà di eludere il rilevamento?
  3. Quali parti del codice dannoso possiamo e non possiamo vedere?
  4. Quali strumenti ci aiuteranno ad analizzare tutti gli aspetti di un campione di malware dato?

Se hai un campione di file dannoso, puoi eseguire un’analisi statica. Tuttavia, se questo file è progettato solo per avviare ulteriori fasi di una catena di attacchi, l’analisi statica non mostrerà come viene eseguito il payload principale. E a volte, l’unico modo per scoprirlo è eseguire il malware in un ambiente sicuro. Quindi, vediamo come eseguire diversi tipi di analisi del malware e come possono essere utili per un analista di cybersecurity.

Analisi Dinamica del Malware

L’analisi dinamica del malware può essere eseguita sia in una sandbox automatizzata che su una macchina virtuale dove puoi testare manualmente il campione. Tieni presente che i malware sofisticati cercheranno segni di un ambiente emulato e l’analisi automatizzata del malware non è l’opzione migliore in questo caso.

Proprio come qualsiasi altro software, il malware può essere programmato per fare praticamente tutto ciò che un codice può fare. Quindi vuoi capire cosa fa il codice (come insieme di istruzioni) e qual è la logica che lo sostiene.

Ad esempio, alcuni strumenti di sicurezza iniettano le loro DLL nei processi locali. Il malware eseguirà una scansione dell’ambiente e, se trova questi file, si terminerà. Al di là di questo, gli scanner di malware cercheranno:

  • Debugger e altri strumenti usati per l’analisi interattiva (chiamate API come IsDebuggerPresent, CheckRemoteDebuggerPresent, NtQueryInformationProcess).
  • Processi, finestre, chiavi del registro, file, oggetti mutex, ecc. per l’analisi del malware.

Come suggerisce il nome, l’analisi dinamica del malware riguarda l’osservazione del malware in azione. Si vuole interagire con esso nel maggior numero di modi possibile e creare un quadro completo della sua funzionalità. Per farlo, assicurati di usare un ambiente completamente isolato; deve essere disconnesso da Internet, eseguire su una rete solo host e la VM non deve condividere alcuna cartella con l’host.

Anche se scanner di evasione debugger sono presenti in molti campioni di malware, i ricercatori di sicurezza utilizzano i debugger nell’analisi dinamica del malware. Questi strumenti sono buoni per identificare chiamate API rischiose e allocazioni di memoria. Se il malware utilizza attivamente tecniche senza file, non sarà visibile nell’analisi statica poiché funziona attraverso processi legittimi – nessuna exploit è necessaria.

Ad esempio, un codice iniettato in PowerShell alloca memoria in powershell.exe ed esegue un codice offuscato in un nuovo thread (che genera un processo fidato tramite Esecuzione di Process Hollowing):

Grafico exploit PowerShell

All’interno del debugger, sarai in grado di vedere come il codice viene eseguito attraverso tutte le istruzioni che è programmato per eseguire. Non dimenticare di controllare le stringhe in memoria e confrontarle con il codice responsabile di queste interazioni di memoria. Cerca API di iniezione, come VirtualAlloc, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, ecc. Esamina anche le transazioni NTFS per iniezioni di Process Doppelgänging .

Utilizza strumenti di occultamento del debugger per assicurarti di poter analizzare malware che elude il rilevamento. Parleremo più tardi di strumenti. Ora, vediamo come eseguire l’analisi statica del malware.

Analisi Statica del Malware

L’analisi statica del malware è il tipo di analisi che è possibile eseguire senza eseguire un codice. Questo tipo di analisi potrebbe richiedere conoscenze avanzate di linguaggi software di basso livello, istruzioni del processore e principi di gestione della memoria.

Tuttavia, anche gli analisti a livello principiante hanno i loro modi per analizzare staticamente i file. Ad esempio, un solo sguardo a un estensione del file può dirti di che tipo di file si tratta, il che ti consente di suggerire se è sospetto avere questo file nel luogo in cui l’hai trovato o meno. Successivamente, puoi cercare il suo hash o hash fuzzy in risorse di intelligence delle minacce come VirusTotal. Tuttavia, fai attenzione a fare ipotesi, perché anche se l’hash non è su VirusTotal, il file può essere comunque malevolo. Non dimenticare di analizzare altre proprietà statiche, come le informazioni dell’intestazione.

L’analisi statica può essere eseguita tramite strumenti automatici per un triage iniziale, nonché strumenti per l’analisi manuale per uno sguardo più approfondito. Gli analisti di sicurezza studiano le istruzioni del codice, le dipendenze e cosa significano.

Se apri un file eseguibile in un Blocco note, ecco cosa vedrai:

Screenshot file binario

È un codice compilato in un formato leggibile dalla macchina. I processori sanno cosa fare, ma gli esseri umani difficilmente capiscono qualcosa qui. Quindi devi eseguire questo codice attraverso un disassemblatore o decompilatore per riportarlo in un formato che puoi leggere e analizzare. Dopo averlo fatto, il codice apparirà qualcosa del genere:

Screenshot binario decompilato

Comprendere le istruzioni assembly è necessario per arrivare a conclusioni approfondite. Dai un’occhiata a questa guida rapida per rinfrescare la tua conoscenza, o approfondisci con questo manuale di riferimento di Oracle.

Puoi anche utilizzare il pacchetto Sysinternals di Microsoft per analizzare le stringhe. I suoi strumenti possono anche aiutare a identificare quale eseguibile è associato a determinate chiamate API di Windows e persino determinare IOCs. Scorri verso il basso fino all’ultima sezione di questo post sul blog per scoprire di più sugli strumenti per l’analisi del malware. E ora, parliamo dei pro e contro dell’analisi statica e dinamica del malware.

Analisi Statica vs Dinamica del Malware

Ovviamente, impiegare più di un tipo di analisi del malware sarebbe l’opzione migliore. L’analisi statica mostrerà come opera un particolare file eseguibile. Nel frattempo, una catena di attacchi standard oggi spesso include più di un eseguibile. Invece, può essere una raccolta di script e file che si attivano a vicenda. Se questo è il caso, l’analisi statica di uno dei file non sarà sufficiente per comprendere come funziona l’intero payload.

A seconda degli obiettivi e degli obiettivi del team SOC, alcune risorse possono essere spese per studiare i campioni di malware. Ed è una scelta molto individuale se optare per l’analisi statica o dinamica. Molto spesso, c’è bisogno di mantenere un equilibrio fine tra le due, che è spesso chiamato un’analisi ibrida del malware.

Analisi Ibrida

L’analisi ibrida del malware è una combinazione di analisi statica e dinamica del malware.

Quando si tratta di campioni complessi, è meglio analizzare il malware in fasi. Ad esempio, prima esegui un’analisi statica e identifichi quali chiamate API potrebbero eludere il rilevamento. Quindi, in un ambiente emulato, esegui un’analisi dinamica per vedere il campione in azione e verificare se scarica altri binari. E se ottieni questi ultimi, puoi eseguire di nuovo un’analisi statica dei loro interni.

Casi d’Uso dell’Analisi del Malware

Ogni team SOC è unico e i processi di cybersecurity potrebbero essere organizzati in modo diverso, a seconda del contesto aziendale, della scala dell’organizzazione e dei fattori di rischio. Di seguito abbiamo raccolto alcuni casi d’uso in cui l’analisi del malware è applicabile.

Rilevare Minacce

IOC e modelli comportamentali sono input comuni per vari tipi di attività di rilevamento delle minacce in software specifici (SIEM, SOAR, EDR/XDR). Ottenere dati importanti sul malware durante un’analisi aiuta a rilevare le ultime minacce.

Ricevere Avvisi

Ricevere avvisi accurati è una parte vitale di qualsiasi pipeline di cybersecurity. L’analisi del malware aiuta a ridurre il numero di falsi positivi e falsi negativi, garantendo così un livello di protezione informatica più elevato.

Cacciare le Minacce

Nuove e sofisticate varianti di malware non sono facili da catturare. È allora che la caccia alle minacce entra in gioco. Avere campioni di malware e capire come funzionano è il modo migliore per cercare altre minacce che si nascondono nella rete.

Rispondere agli Incidenti

Ovviamente, non c’è una buona postura di sicurezza informatica senza una risposta agli incidenti. Una risposta adeguata può essere creata ed eseguita quando i Security Engineers possiedono informazioni dettagliate su come appare il malware, quali sistemi colpisce e quali processi cerca di eseguire.

Quali sono le Fasi dell’Analisi del Malware?

Un lavoro analitico non è il più facile. Quello che è facile è perdersi in pile di dati o interpretare erroneamente il codice. Perché la difesa informatica abbia successo, i ricercatori dividono le loro attività in alcune fasi dell’analisi del malware.

Valutazione e Triage

La fase iniziale di un’analisi del malware può essere eseguita con l’aiuto di strumenti di automazione. Per l’analisi statica, sono richiesti alcuni passaggi di preparazione, come la decompilazione del codice. Comunque, nella prima fase dell’analisi del malware, è necessario identificare le parti del codice che richiedono attenzione particolare. Possono anche essere divise in livelli di difficoltà e priorità. Dopo che l’ambito del codice dannoso da esaminare è stato definito e prioritizzato, è tempo di passare alla fase successiva.

Interpretazione dei Dati

Successivamente, gli analisti di sicurezza devono esaminare campioni specifici di malware. Come ho menzionato prima, può essere fatto analizzando le proprietà statiche o eseguendo il malware in un ambiente sicuro e isolato. Quando l’analista di malware ottiene tutti i dati che possono essere esposti durante l’analisi statica e dinamica, cerca di interpretare ciò che vede. Possono ulteriormente testare i campioni rinominando le variabili, eseguendo il codice e facendo commenti sui modelli di esecuzione.

Reverse Engineering

Questa è la parte più impegnativa, specialmente se c’è un campione crittografato e non è chiaro cosa faccia e perché. Inoltre, il codice potrebbe avere più dipendenze che non sono altrettanto ovvie. Cercare di fare reverse-engineering del malware è un compito avanzato. Tuttavia, è fondamentale per un approccio di Difesa in Profondità.

Conclusioni e Azioni Ulteriori

Quando i risultati dell’analisi sono formulati, è tempo di documentarli e prendere ulteriori azioni. L’analista redige un rapporto sul malware dove descrivono un campione di malware, le fasi di analisi effettuate e le conclusioni. Possono anche fornire alcune raccomandazioni di rimedio.

Quali sono gli Strumenti per l’Analisi del Malware?

C’è una vasta gamma di strumenti per l’analisi del malware che i Security Engineers utilizzano quotidianamente. Cominciamo con gli strumenti di analisi statica:

  • PeStudio è ampiamente utilizzato dai team CERT in tutto il mondo per catturare artefatti di file dannosi.
  • PEiD riconosce facilmente malware confezionato e crittografato e fornisce dettagli su di cosa è fatto.
  • BinText è un estrattore di testo che può trovare stringhe Ascii, Unicode e di Risorsa in un file.
  • MD5deep calcolerà gli hash malevoli. Usato come analizzatore di malware, questo pacchetto software eseguirà molti file attraverso vari digesti crittografici.
  • Dependency walker scansionerà i moduli Windows a 32-bit o 64-bit e creerà un albero delle dipendenze.
  • IDA Pro disassemblerà il codice binario in un codice sorgente. Offre anche una capacità di debugging multipiattaforma che può gestire applicazioni remote.

Quando si tratta di analizzare il malware nei sandbox, potresti aver già provato Cuckoo, ma consiglio di controllare ANY.RUN and Joe Sandbox Cloud. Entrambi hanno il mapping MITRE ATT&CK®, usano regole e offrono una visione molto dettagliata dei comportamenti.

Ovviamente, Wireshark non ha bisogno di presentazioni in quanto è ancora uno degli strumenti più utilizzati per l’analisi delle reti in tempo reale. INetSim simula realisticamente i servizi internet in un ambiente di laboratorio (i campioni sono altamente improbabili che riconoscano la simulazione). Poi, c’è la suite Microsoft Sysinternals che ho già menzionato sopra. Troverai lì un’intera gamma di strumenti per l’analisi dinamica del malware. ScyllaHide è un altro strumento interessante che ti permetterà di nascondere un debugger dal malware che vuoi eseguire. E se ti senti di fare un serio progetto di reverse-engineering, dai un’occhiata a Ghidra – una suite di strumenti sviluppata dalla Direzione della Ricerca della NSA.

Imparare a fare l’analisi del malware potrebbe sembrare noioso all’inizio, ma resta paziente e scava più a fondo per trovare veri tesori. Una volta che ti sentirai a tuo agio con i dati a basso livello, sarai in grado di vedere ciò che non così tante persone vedrebbero. Quindi, invece di pensare che gli ingegneri del malware siano le persone più intelligenti del mondo, sarai in grado di dimostrare che anche il malware più avanzato non fa magie – è solo un altro pezzo di software che può essere scomposto e neutralizzato.

Infine, per un rilevamento delle minacce rapido ed efficiente e caccia alle minacce, abbonati a SOC Prime Detection as Code Platform – qui troverai migliaia di regole basate su Sigma per individuare gli ultimi attacchi informatici. E se sei pronto a condividere la tua esperienza e monetizzare la tua conoscenza, unisciti alla nostra iniziativa di crowdsourcing globale, Threat Bounty, che aiuta a rendere il mondo cibernetico un posto più sicuro.

Questo articolo è stato utile?

Metti mi piace e condividilo con i tuoi colleghi.
Unisciti alla piattaforma Detection as Code di SOC Prime per migliorare la visibilità sulle minacce più rilevanti per il tuo business. Per aiutarti a iniziare e ottenere valore immediato, prenota ora un incontro con gli esperti di SOC Prime.

Articoli correlati