La Malware analysis è un processo vitale nella cyber security che comporta la dissezione e la comprensione
del software dannoso.
L'obiettivo primario è determinare come opera il malware, a quale sistema mira e che
tipo di danno può infliggere.
Studiando da vicino i campioni di malware, gli esperti di cyber security ottengono preziose intuizioni sulla
struttura, la funzionalità e la sua origine.
Questa conoscenza permette loro di costruire meccanismi di difesa più forti, creare signatures di rilevamento
e rispondere più efficacemente agli incidenti.
Nell'odierno panorama delle minacce, dove i cyber attacks stanno diventando più sofisticati, la malware
analysis è cruciale per rimanere un passo avanti agli attaccanti.
Ci sono diversi tipi di malware analysis, ognuno offre una prospettiva unica su come
funziona il malware.
La Static analysis per esempio comporta l'ispezione del codice del malware senza eseguirlo.
Questo approccio aiuta a identificare comandi nascosti, URL incorporati, routine di cifratura e funzioni
sospette, tutto senza il rischio di eseguire codice potenzialmente dannoso.
Quindi apriamo il malware senza eseguirlo, questa è la Static analysis.
Gli esperti usano spesso strumenti come disassemblers e decompilers per fare reverse engineering dei
binaries, rendendo facile scoprire come è programmato il malware.
La Dynamic e la Behavioral analysis adottano un approccio più pratico.
La Dynamic analysis comporta l'esecuzione del malware in un ambiente sicuro e isolato, solitamente
una sandbox o virtual machine, per osservare il suo comportamento in tempo reale.
Questo permette agli analisti di vedere come il malware interagisce con i file di sistema, le risorse di rete
e altro software.
La Behavioral analysis completa ciò concentrandosi sull'impatto che il malware ha durante l'esecuzione.
Rallenta il sistema?
Modifica o cancella file?
Si connette a server sconosciuti?
Esaminando tali azioni, gli analisti possono comprendere meglio la minaccia.
Sviluppare strategie per rilevare e neutralizzare comportamenti simili in futuro.
Il malware si presenta in molte forme, è creato con un obiettivo unico, che sia rubare
dati, interrompere le normali operazioni, danneggiare i sistemi o ottenere accesso non autorizzato.
Riconoscere questi diversi tipi di malware è essenziale per i professionisti della cybersecurity
e gli utenti, poiché permette una identificazione più rapida e una risposta più efficace.
Comprendendo come si comporta ogni categoria, le organizzazioni possono implementare misure di sicurezza
mirate e proteggere meglio i loro asset digitali.
Iniziamo con i virus.
Questi sono tra le forme più antiche di malware e tipicamente si attaccano a programmi
o file legittimi.
Quando un utente esegue inconsapevolmente il file infetto, il virus diventa attivo, si replica e
si diffonde ad altri file o sistemi.
Il danno causato dai virus può variare da file corrotti o perdita di dati fino al completo
fallimento del sistema.
È importante notare che i virus spesso richiedono l'interazione dell'utente, come cliccare su un link dannoso o
aprire un allegato email per iniziare il ciclo distruttivo.
Poi abbiamo i worms.
A differenza dei virus, i worms possono propagarsi da soli senza alcuna interazione dell'utente.
Sfruttano vulnerabilità nei sistemi operativi o nel software per diffondersi attraverso le reti
spesso ad alta velocità.
Questo può portare a gravi conseguenze, come rallentamenti della rete, condizioni di denial of service
e infezioni di massa, attraverso i dispositivi in breve tempo.
I Trojan horses, d'altra parte, si mascherano da software o file legittimi
per ingannare gli utenti e farsi installare.
Una volta dentro il sistema, aprono la porta agli attaccanti per rubare informazioni sensibili,
manipolare le impostazioni di sistema o persino prendere il pieno controllo remoto.
Infine, il ransomware è uno dei tipi più dannosi finanziariamente e più diffusi
negli ultimi anni.
Cifra i file dell'utente o i file di sistema e blocca il loro sistema richiedendo un pagamento di riscatto,
solitamente in Bitcoin, in cambio del ripristino dell'accesso.
Questi attacchi possono paralizzare individui, aziende e persino infrastrutture critiche, cifrando
i dati confidenziali, i dati importanti dei sistemi, rendendo il ransomware la minaccia più
temuta nel panorama della cybersecurity oggi.
Oltre ai tipi più comuni, ci sono diverse altre forme pericolose che operano
più segretamente ma possono essere altrettanto dannose.
Queste includono spyware, adware, rootkits, bots e key loggers, i quali pongono seri
rischi agli utenti e alle organizzazioni rubando i dati, dirottando i sistemi o agendo come
punti di ingresso per ulteriori compromissioni.
Lo Spyware è una forma particolarmente invasiva di malware che monitora segretamente l'attività dell'utente
senza che lui lo sappia.
Una volta installato, può tracciare tutto, dalle battiture dei tasti alla cronologia di navigazione, catturando
informazioni personali come password, dettagli bancari e credenziali di login.
Questi dati vengono spesso trasmessi ai criminali informatici per lo sfruttamento o la vendita sul
dark web.
L'Adware, sebbene talvolta classificato come meno grave, può comunque rappresentare una minaccia significativa.
La sua funzione principale è bombardare gli utenti con pubblicità indesiderate, pop-ups, banner
e reindirizzamenti.
Tuttavia, l'adware traccia frequentemente il comportamento dell'utente per servire annunci mirati e può aprire la porta
a minacce più maligne per entrare nel sistema.
Ancora più pericolosi sono i rootkits.
Questi sono pezzi furtivi di malware progettati per ottenere e mantenere l'accesso privilegiato a
un sistema mentre nascondono la loro presenza.
I rootkits possono disabilitare gli strumenti di sicurezza e creare backdoors, rendendoli incredibilmente
difficili da rilevare e rimuovere.
Infine, abbiamo bots e key loggers.
Un bot è un dispositivo infetto e controllato remotamente da un attaccante.
Quando collegato con altri sistemi compromessi, diventa parte di una botnet, che può
essere usata per operazioni su larga scala come campagne spam o attacchi distributed denial-of-service
DDoS.
Nel frattempo, i key loggers operano silenziosamente in background, registrando ogni battitura
digitata su una macchina infetta.
Questo permette agli attaccanti di raccogliere dati sensibili come password, numeri di carte di credito
e comunicazioni confidenziali.
Comprendere queste forme di malware è essenziale per costruire forti strategie difensive
e mantenere l'integrità del sistema.
La Malware analysis è un processo complesso e tecnico che richiede l'uso di strumenti
specializzati.
Questi strumenti giocano un ruolo critico nell'aiutare gli analisti a comprendere la struttura, il comportamento
e l'impatto del software dannoso.
Che l'obiettivo sia fare reverse engineering del codice o osservare come il malware si comporta in un
ambiente controllato, avere gli strumenti giusti rende il processo più efficiente e
accurato.
Diamo un'occhiata ad alcuni degli strumenti più ampiamente usati ed efficaci nel campo.
Uno degli strumenti leader nella malware analysis oggi è Ghidra.
Sviluppato dalla National Security Agency, la NSA, Ghidra è un potente strumento open-source
di reverse engineering progettato per analizzare codice compilato.
Supporta una vasta gamma di architetture e formati eseguibili, rendendolo adatto
per analizzare diversi tipi di malware.
Con funzionalità come disassembly, decompilation e debugging integrato,
Ghidra permette agli analisti di lavorare all'interno di un'interfaccia intuitiva mentre eseguono sia static
che dynamic analysis.
Le sue funzionalità collaborative e l'estendibilità lo rendono anche un favorito tra i ricercatori
di sicurezza.
Un altro strumento ampiamente rispettato si chiama IDA Pro, o IDA Free, è un
disassembler e debugger commerciale spesso considerato il gold standard nel reverse engineering.
IDA trasforma codice macchina complesso in assembly leggibile dall'uomo, dando agli analisti
profonda visibilità su come funziona il malware.
Include anche capacità di debugging che permettono ai ricercatori di interagire con e monitorare
il malware in tempo reale.
Per la Static analysis di malware Windows specificamente, PE Studio è una soluzione di riferimento.
Questo strumento esamina i Portable Executables, ecco perché PE nel nome, senza eseguirli.
Quindi è una Static analysis che offre intuizioni su elementi sospetti come nomi di
sections, imported functions, dependencies e risorse incorporate.
PE Studio è specialmente utile per segnalare rapidamente bandiere rosse e identificare
comportamenti potenzialmente dannosi all'interno dei binaries Windows.
Vediamo alcuni altri strumenti.
Cuckoo Sandbox è un potente sistema automatizzato di malware analysis che permette ai ricercatori
di eseguire file sospetti all'interno di un ambiente isolato sicuro.
Questo strumento fornisce profonde intuizioni sul comportamento del software potenzialmente dannoso
monitorando e riportando l'attività del file system, le comunicazioni di rete e le system
calls.
È specialmente efficace per la Dynamic analysis, permettendo agli analisti di capire come il malware
appena scoperto o sconosciuto opera in tempo reale.
Abbiamo visto Ghidra, usando Ghidra per decompilare il codice, scoprire una funzione nascosta che
stabilisce una connessione a un server remoto e lancia una command line interface, per
esempio.
IDA, abbiamo visto che è anche per ispezionare attentamente il codice, l'analista
identifica gli algoritmi che sono stati usati e le funzioni.
PE Studio, rapidamente è molto buono per analizzare file eseguibili e tornando a
Cuckoo Sandbox, considerate una situazione per esempio dove un analista di sicurezza riceve
avvisi su allegati email dannosi, impiegano Cuckoo, diciamo Cuckoo
Sandbox per eseguire in sicurezza.
Quindi si tratta di esecuzione, esegue effettivamente il payload dannoso in un ambiente sicuro
e monitora i file nell'ambiente virtuale.
I risultati rivelano che gli allegati tentano di scaricare componenti dannosi
multipli, incluso un key logger e uno strumento di accesso remoto.
Armato di questa intelligence, il team mette rapidamente in quarantena le macchine
colpite e implementa una patch mirata per salvaguardare la rete da
minacce simili.
Un altro strumento importante si chiama VirusTotal per la Static analysis, quindi di nuovo
cercheremo di scoprire la maggior parte del comportamento, il comportamento dannoso che ha il file,
insieme ad altre informazioni.
È uno strumento, è uno strumento componente web, è facile caricare e fare upload dei
binaries e vedere se è dannoso, quindi è un ottimo punto di partenza.
Tuttavia, se vuoi fare più Static analysis, devi fare il
decompile e andare con IDA o PE Studio per scoprire più informazioni.
La Static analysis nel complesso è una tecnica fondamentale nella malware analysis che permette
di esaminare la struttura interna e le caratteristiche di un file
senza il rischio di eseguirlo, quindi questa è la differenza tra Static
analysis e Dynamic analysis.
Il codice del malware, i pattern comportamentali, l'impatto potenziale, tutti questi
possono essere visti nella Static analysis, tuttavia nella Dynamic analysis
l'esecuzione verrà fatta e possiamo identificare meglio e più sicuramente
cosa sta succedendo in background.
Una delle pratiche più comuni di Static analysis è verificare i valori
hash del file come md5 o sha256, quindi VirusTotal o altri
antivirus, prima vedono il valore hash del malware e se questo
valore hash è simile a qualsiasi cosa nelle librerie o nel database sia stato in
passato, allora classificano che questo è un virus.
Queste impronte crittografiche servono come identificatori unici per i file e
sono specialmente utili quando si controlla se un file è già stato catalogato
su un database malware. Per esempio, usando un semplice comando
come sha256sum e poi il file o md5sum e il file nel terminale Linux
puoi generare un valore hash di questo file.
Questo può essere poi incrociato con repository di malware normali per
determinare se il file è stato riconosciuto
signature dannosa. Questa tecnica di comparazione hash non solo velocizza
il triage iniziale ma aiuta anche a garantire coerenza attraverso le
investigazioni. Se viene trovata una corrispondenza l'analista può accedere rapidamente a
report di analisi precedenti, guide di rimediazione o indicators of compromise,
tutti insieme automaticamente perché è stato registrato in passato.
Anche se non viene trovata corrispondenza il valore hash serve comunque come un affidabile
punto di riferimento per il tracciamento futuro. Come primo passo nella Static analysis
generare e controllare gli hash pone le basi per una investigazione
più profonda a livello di codice usando strumenti come PE Studio,
Ghidra o IDA.
Un'altra tecnica essenziale di Static analysis comporta l'ispezione delle strings
dentro il binario usando il comando strings.
Questo strumento estrae tutto il testo ASCII
e Unicode stampabile trovato all'interno di un campione malware
offrendo un modo non intrusivo per raccogliere indizi sul suo funzionamento interno.
L'output rivela spesso URL hard-coded, indirizzi IP, comandi
sospetti, comandi di errore, messaggi di errore o persino
credenziali incorporate, informazioni che possono suggerire
lo scopo del malware o indicare la sua infrastruttura di command and control.
Quindi più informazioni su come questo malware interagisce con altri
sistemi o funzioni. Per esempio, eseguendo strings, il comando
strings e poi il campione malware o un file binario,
un analista potrebbe scoprire voci come www, maliciousdomain.com,
bitcoinaddress.com o qualsiasi cosa,
credenziali admin password, connettersi al server come una funzione
che si connette a un server o infiltra o imposta una finestra aperta
che suggerisce tentativi di accesso non autorizzato o comunicazione remota.
Quindi strings leggibili, testo ASCII possono presentare molte informazioni
sul binario. Ugualmente importante è l'analisi dei
file headers che fornisce una visione più profonda nella struttura dell'eseguibile
e comportamento per malware Windows. Strumenti come PE Studio
offrono un'interfaccia intuitiva per esaminare il portable execution
format, evidenziando anomalie in sections, imports,
exports e altri attributi critici. C'è un altro strumento chiamato
Dependency Walker con cui puoi recuperare effettivamente le
dependencies del malware del binario
con altre funzioni e così via. Su sistemi Unix o Linux, utility come
objdump, object dump possono essere usate anche per estrarre e rivedere informazioni header
come l'entry point del programma,
layout delle sections e binaries linkati. Questi dettagli non solo aiutano a
identificare la piattaforma target del malware e le
capacità ma servono anche come indicatori di
tecniche di obfuscation o patching usate per eludere
per eludere il rilevamento. Per iniziare ad analizzare un eseguibile sospetto
apriamo il file in PE Studio. Questo strumento fornisce una rapida panoramica della
struttura del file includendo i suoi nomi delle sections, le imported libraries
e altri metadati chiave. Per esempio, imports tipici
potrebbero includere kernel32.dll o user32.dll e sections comuni come
.text, .data e .rdata offrono intuizioni su dove codice e dati
risiedono all'interno del binario. Per binaries Linux, simili
informazioni possono essere recuperate usando il comando object dump,
eseguendo objdump minus x e poi il file,
rivela gli headers binari e le proprietà strutturali,
offrendo una visione comparabile su come il file è costruito a un livello inferiore.
Poi passiamo al disassembling del codice usando strumenti come Ghidra o IDA.
Il Disassembly è un passo critico nel comprendere come il software del
malware si comporta in quanto traduce il codice macchina grezzo in
istruzioni assembly leggibili dall'uomo. Questo permette agli analisti di tracciare
il flusso di esecuzione, esaminare la logica delle funzioni e rilevare comportamenti dannosi incorporati
nel codice. Con Ghidra apriamo semplicemente il campione
malware e lo strumento disassembla automaticamente il binario,
presentando le istruzioni assembly accanto a
un'interfaccia user-friendly per la navigazione e
annotazione. Similarmente, in IDA, caricare l'eseguibile
avvia un'analisi approfondita che produce un flusso di disassembly interattivo,
evidenziando funzioni, strutture di controllo e riferimenti al codice
del binario. Un tipico output disassemblato
potrebbe includere istruzioni come
MOV EAX, EBX, seguite da una CALL in un sistema esadecimale
o decimale, mostrando come i dati vengono spostati e quali funzioni sono invocate.
Indizi che possono aiutare i reverse engineers a comprendere
l'intento e le capacità del malware.
Per iniziare ad analizzare un campione malware lo apriamo in PE Studio come alternativa.
Una volta caricato il file lo strumento presenta immediatamente
una vista dettagliata dei metadati degli eseguibili.
Questo include elementi strutturali come nomi delle sections, imported libraries
e indicatori di potenziali comportamenti dannosi come se il file è
packed o usa API functions sospette.
Prestate particolare attenzione a imports insoliti, specialmente librerie
di networking. Questo può suggerire che il malware è progettato per comunicare con
un altro server remoto, un segno distintivo di un'attività di command and control.
Oltre all'analisi strutturale possiamo estrarre contenuto leggibile dall'uomo
dal malware usando l'utility strings come abbiamo spiegato.
Questo strumento scansiona il binario per testo ASCII o Unicode
che può includere hardcoded URLs, indirizzi IP, credenziali o messaggi
di errore. Queste strings spesso forniscono indizi critici
sul comportamento, l'infrastruttura o lo scopo del malware.
Il comando è semplice, esegui strings e poi il binario
e poi per esempio l'output potrebbe rivelare qualcosa come
un URL o una password uguale a qualcosa, numeri di telefono,
portafogli bitcoin o qualsiasi cosa. Tali scoperte possono
portare a identificare un server di command and control o
comprendere come il malware tenta di autenticarsi o propagarsi.
Insieme tutti questi strumenti come PE Studio, strings
e gli altri offrono un primo sguardo rapido ed efficace
dentro un binario sconosciuto, ponendo le basi per
una Static o Dynamic analysis più profonda. La Dynamic analysis è un passo essenziale
nel processo di investigazione malware, fornendo intuizioni in tempo reale su come
si comporta un file speciale quando eseguito. A differenza della Static analysis che
ispeziona un file senza eseguirlo, la Dynamic analysis permette agli analisti di
osservare il comportamento del malware mentre interagisce con il sistema operativo,
il file system, la rete e altre risorse di sistema.
Questo tipo di analisi può scoprire azioni nascoste
come tentativi di alterare file di sistema,
avviare comunicazioni di rete o persino stabilire fattori per il controllo remoto,
aiutando gli investigatori a comprendere la piena portata della minaccia.
Impostare un ambiente di controllo completo per la Dynamic analysis è cruciale per
garantire che il malware non causi alcun danno al sistema primario
o si diffonda agli altri dispositivi. Uno dei modi più efficaci per
compiere questo è usare una virtual machine, una VM.
Una VM fornisce un ambiente isolato in cui il malware può essere eseguito in sicurezza,
permettendo agli analisti di osservare il suo comportamento
senza rischiare l'integrità della macchina host.
VirtualBox o VMware sono piattaforme comunemente usate per creare VM.
In Linux c'è KVM e permettono ai ricercatori di creare un ambiente sandbox
con un sistema operativo specificato che rispecchia da vicino
la macchina target. Facendo così i ricercatori possono eseguire il malware
in un setting controllato simulando l'ambiente dove è probabile che avvenga l'attacco,
per esempio un sistema Windows 7, Windows 10 o Windows 11.
Per garantire che il malware rimanga contenuto e che non si diffonda alle
altre macchine o sistemi è importante configurare
le impostazioni di rete della VM per l'isolamento, per non
averla come bridge mode. Inoltre è meglio avere l'ultima versione
di VirtualBox giusto in caso perché ci sono
vulnerabilità nelle versioni più vecchie e l'isolamento potrebbe rompersi.
Questo può essere ottenuto impostando la VM con l'adattatore host only
o configurazione internal network sulle interfacce di rete
che connette la VM dall'internet esterno pur permettendo
interazione tra la virtual machine e l'host.
Questo setup impedisce al malware di comunicare con server esterni
o la macchina locale o esfiltrare dati sensibili pur permettendo
al malware di eseguirsi e performare le sue azioni intese all'interno
dell'ambiente isolato. Questo garantisce che gli analisti possano osservare
la piena estensione del comportamento del malware incluse le richieste
di rete. Potrebbero usare anche Wireshark per
investigare le richieste di rete che il malware fa in altri sistemi.
Modifiche ai file di sistema e altre potenziali azioni dannose
tutto mantenendo il sistema reale sicuro da compromissione.
Oltre a impostare l'ambiente VM isolato è cruciale
impiegare strumenti di monitoraggio per tracciare l'attività del malware
come abbiamo detto Wireshark. Strumenti come Wireshark possono essere usati per catturare il
traffico di rete mentre Process Explorer o Procmon
di Sysinternals possono fornire visibilità nei processi e nell'attività del file system
iniziata dal malware. Questi strumenti permettono
agli analisti di identificare Indicators of Compromise
o come li chiamiamo IOCs che sono molto importanti
per la threat intelligence come connessioni di rete inaspettate
o modifiche ai file sospette dando loro una comprensione più profonda delle
capacità e obiettivi del malware. Combinando
la Dynamic analysis con un setup isolato sicuro
i professionisti della cybersecurity possono identificare la gamma completa del
comportamento del malware e sviluppare appropriate counter measures o
analizzare o trovare qualsiasi kill chain del malware
o kill switch per disabilitare il malware se è possibile.
Quindi nella Dynamic analysis una volta che il campione malware è eseguito all'interno di una
virtual machine è critico monitorare i cambiamenti di sistema per comprendere
l'impatto del malware sull'ambiente.
Questi cambiamenti possono includere modifiche al file system
come la creazione o cancellazione di file, registry edits come aggiunta o
alterazione di chiavi e valori e cambiamenti più ampi alla system configuration che
potrebbero indicare persistence o privilege escalation.
Per catturare questa attività in tempo reale possiamo usare Procmon
abbreviazione per Process Monitor. Questo
potente strumento di Sysinternals ci permette di tracciare system events di basso livello
inclusi accesso ai file, registry modifications
e le process operations tutti i quali sono essenziali per analizzare il
comportamento del malware. Per eseguire Procmon e loggare questi eventi
su un file possiamo usare il comando Procmon
-BackingFile e poi il file di log. Mentre il malware gira Procmon cattura uno
stream live delle attività di sistema per esempio sotto l'attività del file system
potremmo vedere indicatori come CreateFile
e un path name, WriteFile e un path name.
Questo significa che questo binario crea un file o scrive un
file e così via. Per i cambiamenti di registry potresti
osservare un RegSetValue e poi il
path name del valore di registry. Questi tipi di voci suggeriscono che il malware non sta
solo scrivendo nuovi file ma anche tentando di stabilire
persistence modificando le startup registry keys.
Puoi vedere che sta cambiando il valore di registry su Microsoft Windows
CurrentVersion slash Run dove quando metti slash Run è come
eseguire automaticamente all'avvio quando windows parte.
Identificare tale comportamento aiuta gli analisti a comprendere il ciclo di vita completo del
malware incluso come si incorpora all'interno del sistema.
Nella Dynamic analysis osservando il comportamento di rete del malware
gli analisti possono rilevare comunicazioni dannose
scoprire gli obiettivi del malware e raccogliere prove per aiutare a fermare
ulteriori attacchi. Wireshark è uno degli strumenti più ampiamente usati
per questo compito. Permette agli analisti di sicurezza di catturare e
ispezionare il traffico di rete in tempo reale. Impostando Wireshark all'interno di una
virtual machine che è isolata dall'host e dalle reti esterne
gli analisti possono tracciare tutte le interazioni di rete iniziate dal malware
senza il rischio di diffondersi in altri sistemi.
Una volta che Wireshark è in esecuzione gli analisti iniziano a catturare la sessione sulla VM
l'interfaccia di rete virtuale isolandola da internet.
Lo strumento cattura tutti i pacchetti inviati e ricevuti dalla VM
inclusa qualsiasi richiesta dannosa a server esterni.
Per esempio se il malware prova a scaricare payloads addizionali
o caricare dati rubati queste richieste HTTP o altri protocolli di rete
appariranno nei log di cattura di Wireshark. I dati catturati potrebbero mostrare
cose come GET malicious payload o metodi POST post upload data
indicando che il malware sta recuperando codice addizionale
o inviando informazioni rubate. Analizzando il traffico di rete catturato
gli analisti possono identificare pattern che è molto importante inclusi i
domini, gli indirizzi IP a cui il malware si sta
connettendo e i protocolli di comunicazione che sono stati usati dal malware.
Questi indicatori possono essere usati per bloccare future connessioni al command and
control server usando un firewall per esempio
prevenire ulteriore data exfiltration e assistere nell'identificazione
di altri sistemi compromessi. Questo monitoraggio di rete è essenziale e molto
importante per ottenere una comprensione completa
del comportamento di rete del malware durante l'esecuzione
e per aiutare a prevenire future infezioni.
Quindi come possiamo vedere la Dynamic malware analysis è un processo
cruciale che permette agli analisti di osservare il comportamento di un file sospetto in
tempo reale. Cuckoo Sandbox fornisce un ambiente controllato e
isolato come un modo automatizzato per fare la dynamic
analysis per eseguire in sicurezza campioni di
malware garantendo che possano essere studiati senza causare danno al
sistema. Per iniziare devi prima
impostare un Cuckoo Sandbox questo comporta installare Cuckoo sulla tua
macchina o un'altra macchina o una VM e configurarlo all'interno di un
ambiente virtuale come VirtualBox o VMware.
Il malware verrebbe eseguito dentro la VM che è un sistema isolato che
imita il sistema operativo target. Questa VM è connessa a Cuckoo permettendo
allo strumento di monitorare il comportamento e le azioni del malware durante l'esecuzione.
Successivamente il campione malware viene caricato nell'interfaccia di Cuckoo.
Cuckoo poi prende uno snapshot dell'ambiente della VM
fornendo un punto di partenza pulito per l'analisi.
Una volta che il malware inizia l'esecuzione Cuckoo Sandbox monitora continuamente una
varietà di azioni chiave per tracciare il comportamento del malware
proprio come fai manualmente usando Wireshark. La prima area di monitoraggio
sono i cambiamenti al file system. Cuckoo traccia qualsiasi nuovo file, modifiche o
cancellazioni che il malware tenta. Questo può indicare se il malware sta provando
a installare componenti addizionali o cancellare file di sistema importanti.
Per malware basato su Windows Cuckoo traccia anche i cambiamenti di registry.
Cerca qualsiasi nuova voce di registry o modifiche fatte dal malware.
Questi cambiamenti sono spesso fatti per garantire che il malware
persista e venga caricato attraverso i riavvii o sia in grado per esempio di lanciarsi
automaticamente quando il sistema parte. Può essere anche per
disabilitare il firewall o disabilitare il defender cambiando il valore di registry
per esempio. Un altro aspetto chiave del monitoraggio è
l'attività dei processi. Cuckoo Sandbox tiene d'occhio i
processi in esecuzione come Procmon nella VM controllando per qualsiasi nuovo processo
iniziato dal malware. Questa potrebbe essere un'indicazione che il malware
sta tentando di eseguire codice dannoso addizionale o compiere azioni nocive.
Forse l'aspetto più critico della Dynamic analysis
è l'attività di rete che abbiamo menzionato prima. Cuckoo monitora qualsiasi
connessione in uscita che il malware tenta di
stabilire, specialmente server di command and control.
Questo può rivelare se il malware sta provando a comunicare
con server remoti, esfiltrare dati o scaricare
payloads dannosi addizionali. Una volta che il malware ha finito di eseguirsi
Cuckoo genera un report dettagliato. Questo report include tutte le attività
tracciate fornendo agli analisti preziose intuizioni sul comportamento del
malware e aiutandoli a sviluppare difese o
comprendere meglio il malware per prevenire futuri attacchi.
Quando si esegue un campionamento malware in Cuckoo Sandbox uno degli aspetti più
intuitivi dell'analisi è l'abilità di osservare
cambiamenti al file system e attività di rete in un ambiente isolato
controllato. Cuckoo agisce come una sandbox
automatizzata che monitora il comportamento del malware in
tempo reale permettendo agli analisti di comprendere la sua piena portata senza
compromettere il sistema. Il componente chiave di questa
behavioral analysis è identificare come il malware interagisce con il
file system. Cuckoo fornisce log dettagliati su file appena
creati, modificati o cancellati. Per esempio, quando il malware viene eseguito
potrebbe creare nuovi file come configuration files,
dropped payloads o file di log temporanei.
Questi nuovi file possono servire scopi diversi alcuni forse necessari per
mantenere persistence mentre altri potrebbero contenere dati
rubati o istruzioni di comando. Oltre alla creazione di file, il malware
spesso modifica file di sistema esistenti. Questo può includere rimpiazzare o alterare
eseguibili legittimi con versioni dannose, una tattica comune
usata per dirottare funzionalità di sistema. Per esempio, Cuckoo potrebbe riportare che l'eseguibile
principale di sistema come cmd.exe
è stato alterato un'indicazione che il malware sta tentando di sovvertire
o ottenere controllo di utility integrate di Windows come la command line.
Modifiche come queste sono forti indicators of compromise
e possono suggerire un tentativo di scalare privilegi o eludere
il rilevamento. Il terzo comportamento comune è la cancellazione di file.
Il malware può cancellare specifici file di sistema o di log per nascondere questa attività,
rimuovere prove o disabilitare software di sicurezza.
Questa tattica aiuta a garantire la sua attività,
rimuovere prove o disabilitare il software.
Queste azioni dannose rimangono non rilevate per quanto possibile.
Tracciare tali cancellazioni attraverso il sistema di reporting della sandbox
può essere vitale per la ricostruzione forense e se questi
log e file sono cancellati la timeline dell'infezione potrebbe essere persa.
Ecco un esempio semplificato da un report Cuckoo.
Sta creando file quindi il malware sta creando un file.exe dannoso
e quando malicious payload.dll, naturalmente questi
sono solo esempi. I file normali avranno un nome generico come
chrome.exe o firefox.exe o qualsiasi cosa ma è normale.
Ha modificato il file cmd sospettato di essere stato
dirottato. Analizzando i cambiamenti gli analisti di sicurezza possono mappare il
comportamento del malware. Gli indicators of compromise
in questo caso sono il comportamento che abbiamo visto prima.
In combinazione con l'analisi del file system la sandbox traccia le comunicazioni
di rete e fornisce tutti i dettagli agli
analisti. Monitorare le network requests fornisce ulteriore prova delle
capacità intese del malware ed è importante
combinare ogni dato insieme ed estrarre gli indicators of compromise.
Quindi YARA è un potente strumento usato per identificare e rilevare malware
creando regole personalizzate che si concentrano su pattern specifici.
Questi pattern possono includere file signatures, byte sequences o
regular expressions che rendono YARA uno
strumento indispensabile nell'analizzare file sospetti
e condurre un approfondito threat hunting. È particolarmente prezioso per
ricercatori e responders impegnati in investigazioni malware in tempo
reale poiché permette identificazioni precise ed efficaci
di file dannosi. Una delle strategie chiave di YARA risiede nella
signature-based detection dove le regole sono create basandosi su
firme malware ben note intendendo byte sequences
o strings che puntano alla presenza di contenuto dannoso.
Questi pattern possono essere simbolizzati come una particolare sequenza di bytes
trovata in un pezzo di malware o una combinazione più complessa di pattern.
Usando queste regole gli analisti possono identificare rapidamente malware che corrisponde
a specifiche firme note, aiutando nel rilevamento rapido.
Oltre alle sue capacità di signature-based detection YARA offre
notevole flessibilità. Gli utenti possono personalizzare le loro regole
sfruttando logical operators, regular expressions e specifiche
condizioni. Questo permette agli analisti di creare regole
che possono rilevare anche le minacce più complesse e in evoluzione
come malware polimorfico che altera il suo codice per evitare il rilevamento.
La flessibilità di YARA garantisce che possa adattarsi
a minacce nuove ed emergenti rendendolo uno strumento di riferimento per i professionisti della sicurezza.
Un altro vantaggio significativo di YARA è il suo supporto cross-platform.
Lo strumento può essere usato su Linux, Windows o Mac OS
rendendolo versatile per team di sicurezza che lavorano attraverso diversi sistemi
operativi. Che tu stia analizzando eseguibili basati su Windows,
file PDF, documenti, campioni malware Linux o
investigando traffico di rete su un sistema Mac OS
YARA fornisce una soluzione consistente ed efficiente per rilevare minacce
indipendentemente dall'ambiente e dal tipo di file. YARA è anche altamente efficiente in
termini di identificazione malware. Può scansionare una varietà di fonti dati
incluso qualsiasi file, memory dumps, network traffic
per identificare pattern dannosi. Questa versatilità garantisce che possa essere
usato in vari stadi di un attacco per rilevare malware
prima, durante o dopo l'esecuzione, fornendo uno strumento essenziale per monitorare
e mitigare minacce attraverso una vasta gamma di vettori d'attacco.
Una tipica regola YARA consiste di diversi componenti.
Il rule name serve come un identificatore unico per ogni regola
rendendolo facile da referenziare e applicare. Le meta informazioni forniscono
contesto addizionale come una descrizione, autore
e la data di creazione che aiuta con la gestione delle regole.
La sezione string è dove gli analisti definiscono i pattern specifici che
la regola cercherà in un file secondo la stringa.
Questi pattern potrebbero essere byte sequences anche
insieme a stringhe di testo o regular expressions che possono indicare
attività dannosa. Infine la sezione condition
definisce la logica che determina quando la regola deve essere attivata.
Può specificare che certi pattern devono apparire insieme
o che stringhe specifiche devono essere trovate in un file
affinché la regola corrisponda, quindi avendo multipli logical controls
e configurazioni per identificare
il malware.
YARA è uno strumento altamente efficace per il rilevamento malware automatizzato specialmente
quando si tratta di un grande volume di file. Questo è cruciale durante l'incident
response dove il tempo è essenziale e l'ispezione
manuale sarebbe impraticabile. Creando regole personalizzate su misura per
minacce specifiche, le regole YARA permettono ai team di sicurezza
di automatizzare la scansione di directory di set di file, snellendo l'
identificazione di file dannosi. Questa capacità aiuta a localizzare rapidamente
file sospetti o artefatti che potrebbero indicare un'infezione
malware, rendendo le regole YARA uno strumento inestimabile
nei sistemi di rilevamento minacce in tempo reale. Oltre alla scansione basata su
file, YARA è anche uno strumento chiave nella memory forensics.
Il malware spesso risiede nella memoria piuttosto che nel file system
rendendolo più difficile da rilevare usando metodi tradizionali.
YARA può scansionare memory dumps per identificare codice dannoso,
che gira in memoria volatile, permettendo agli analisti di rilevare minacce che potrebbero
non apparire sul disco rigido. La memory forensics è particolarmente
importante in casi di malware avanzato che impiega tecniche come
attacchi file-less dove nessun file viene rilasciato sul disco.
Sfruttando le regole YARA, gli analisti possono scoprire minacce nascoste nella memoria del sistema
fornendo un livello addizionale di rilevamento e mitigazione.
Un altro potente uso di YARA è nell'eseguire controlli di integrità dei file.
Questo è specialmente utile in ambienti dove i file possono essere
alterati o rimpiazzati da malware per nascondere la sua presenza o mantenere
persistence sul sistema. YARA può essere usato per comparare file contro
pattern dannosi noti garantendo che i file non siano stati modificati
in modi contro l'infezione. Questo fornirebbe
i valori di infezione. Questo può aiutare a rilevare cambiamenti non autorizzati a
file di sistema, file di configurazione o eseguibili
per identificare sistemi compromessi. Eseguendo continuamente
regole YARA in background, i team di sicurezza possono mantenere una difesa proattiva
contro malware che prova furtivamente
ad alterare o rimpiazzare file legittimi. In questa regola YARA, la sezione meta fornisce
metadati essenziali sulla regola. Questo include una descrizione che spiega
lo scopo della regola, per esempio rileva malware
basato su pattern noto, aiutando chiunque revisioni la regola a capire rapidamente
la sua funzione. Il campo autore ci dice chi ha creato
la regola. In questo caso, analista di sicurezza è un nome
specifico, per esempio, e la data indica dove la regola è stata creata,
la data di creazione della regola. Queste meta informazioni sono vitali
per mantenere regole organizzate e ben documentate in qualsiasi sistema di rilevamento
malware. Passando alla sezione string, questa è dove i pattern effettivi
che saranno cercati nei file sono
definiti. Ci sono due pattern in questa regola,
malicious string, una variabile che ha come valore la stringa di testo malware.
In nocase, questo pattern cerca la stringa malware
in qualsiasi caso, che sia maiuscolo o minuscolo dovuto al modificatore
nocase. Quindi nocase fornisce questa modifica. Questo garantisce che anche se
l'autore del malware cambia il caso della parola malware,
la regola lo rileverà comunque perché è maiuscolo o minuscolo.
Suspicious bytes, questo include una linea stringa di bytes.
Qui definiamo una sequenza di byte che rappresenta una firma nota
o parte caratteristica del codice del malware. La sequenza
E8000000 potrebbe rappresentare un'istruzione di parte del codice del malware.
La sequenza E800 potrebbe rappresentare un'istruzione del malware,
che è qualcosa che può essere identificato come tipico di questo
tipo di malware. Naturalmente, questo può anche identificare altro software che si relaziona
e ha il codice specifico pure. Infine, nella sezione condition,
la regola specifica la logica per quando il pattern dovrebbe attivare una corrispondenza.
In questo caso, la regola si attiverà se uno qualsiasi
dei pattern definiti viene trovato. Cercherà la malicious string
OR con la condizione OR il suspicious byte
nel file scansionato. Naturalmente, questa logica potrebbe essere
il controllo logico AND o una combinazione di essi.
Se un pattern viene rilevato, è un segnale che il file potrebbe essere dannoso
e giustifica ulteriori indagini.
Nello step due, scansionare file con YARA ci permette di cercare attivamente
pattern specifici definiti nelle nostre regole YARA personalizzate.
Questo step è essenziale per automatizzare il processo di rilevamento malware.
Una volta che hai scritto una regola YARA, puoi usarla per scansionare file per qualsiasi corrispondenza.
Il primo metodo comporta la scansione di un singolo file. Per fare questo, useresti un
comando YARA, che è il comando dello strumento,
suspicious_malware, che è il file che vogliamo scansionare,
rule.yar, suspicious_file.exe. In questo comando,
suspicious_malware rappresenta il nome della regola che abbiamo creato
e rule.yar è il file della regola che contiene i pattern che stiamo cercando,
come stringhe specifiche o sequenze di byte. Il suspicious_file.exe è il file che
stiamo controllando per quei pattern. Quando esegui questo comando, YARA analizzerà
il file e restituirà un output se uno dei pattern nella regola viene trovato.
Per esempio, se il file corrisponde a uno dei
pattern definiti, l'output potrebbe apparire così.
Questo significa che il file contiene un pattern come la parola
malware o la sequenza di suspicious byte attivando la regola YARA.
Per scansioni di casi più grandi, dove abbiamo bisogno di controllare file multipli,
puoi usare l'opzione -r per scansionare un'intera
directory ricorsivamente. Quindi -r significa ricorsivamente.
Questo sarebbe fatto con il comando YARA -r,
suspicious_malware, rule.yar e poi il percorso della directory che vogliamo scansionare.
Il -r istruisce YARA a cercare non solo per una specifica
directory ma anche qualsiasi tipo di directory all'interno della directory.
Se YARA trova una corrispondenza per uno qualsiasi dei file all'interno della directory,
mostrerà di nuovo il nome della regola e il percorso del file corrispondente.
Naturalmente, possiamo caricare regole YARA multiple insieme in file multipli
e ogni combinazione sarà fornita separatamente.
YARA offre funzionalità avanzate che migliorano significativamente le sue capacità di rilevamento
malware, rendendolo un potente strumento per analisi più
raffinate. Una delle funzionalità è l'abilità
di usare regular expressions, regex, che fornisce un pattern matching flessibile e potente.
Usando regular expressions,
gli analisti possono definire pattern complessi che vanno oltre le semplici corrispondenze di stringhe.
Per esempio, puoi creare una regola che corrisponde a qualsiasi stringa che inizia con
malware, la parola malware, seguita da una o più cifre, indipendentemente dal caso.
Questa abilità di usare regex permette una ricerca più dinamica
e ampia, che è specialmente utile quando i campioni malware possono variare in
convenzioni di denominazione o altre caratteristiche ma seguono comunque
un pattern riconoscibile. Un'altra funzionalità avanzata in YARA
è l'uso di operatori logici per combinare condizioni multiple in una singola
regola. Questo dà agli analisti la flessibilità di creare
regole altamente specifiche. Per esempio, puoi creare una regola
che si attiva solo se sia la stringa suspicious che la stringa
malware vengono trovate nello stesso file. Combinando condizioni con operatori
logici come condizioni logiche AND o OR o NOT,
puoi affinare le tue ricerche per minimizzare i falsi positivi e aumentare
la precisione di rilevamento. Questo rende YARA più versatile e
permette agli analisti di raffinare le loro strategie di rilevamento malware.
Infine, YARA ti permette di definire le regole basate
su proprietà del file come la dimensione o i metadati.
Per esempio, puoi creare una regola che controlla se la dimensione del file
è maggiore di un megabyte, che potrebbe essere utile per rilevare malware
che è packed con grandi file o è tipicamente più grande dei normali
file applicazione. Inoltre, puoi creare
regole basate su altre proprietà come la data di creazione o
data di modifica. Queste regole basate su proprietà del tipo di file migliorano
l'utilità di YARA permettendo agli analisti di mirare certi tipi di
file o caratteristiche che sono comunemente viste con specifici
tipi di malware e lasciare stare gli altri file.