Abbiamo trattato il debug come metodo per scoprire l'evasione utilizzata dai malware per eludere il rilevamento. Questo faceva parte TryHackMe Analisi dinamica del malware serie.

Ottieni appunti di informatica forense

Analizzare il malware è come un gioco del gatto e del topo. Gli analisti di malware continuano a ideare nuove tecniche per analizzare il malware, mentre gli autori di malware escogitano nuove tecniche per eludere il rilevamento. In questa attività verranno esaminate alcune tecniche che ostacolano i nostri sforzi per analizzare il malware utilizzando l'analisi statica o dinamica di base.

Metodi di evasione malware di Analisi statica:

  • Modifica dell'hash: Abbiamo appreso in precedenza che ogni file ha un hash univoco. Gli autori di malware sfruttano questa funzionalità modificando leggermente il proprio malware. In questo modo, l'hash del malware cambia, aggirando il meccanismo di rilevamento basato sull'hash. Gli hash possono cambiare anche se viene modificato un bit del malware (a meno che non si parli di hash a pezzi attivati dal contesto o di hash fuzzy), quindi è sufficiente aggiungere un NO istruzioni o altre modifiche simili possono sconfiggere le tecniche di rilevamento basate su hash.
  • Sconfiggere AV firme: Le firme antivirus e altri rilevamenti basati sulle firme spesso dipendono da modelli statici presenti nel malware. Gli autori di malware modificano questi modelli per cercare di eludere le firme. Questa tecnica è spesso accompagnata dall'offuscamento generale del codice malware.
  • Offuscamento delle stringhe: Alcuni autori di malware offuscano le stringhe nel malware decodificandole in fase di runtime. Quando cerchiamo stringhe nel malware, potremmo non trovare nulla di utile. Tuttavia, quando il malware viene eseguito, decodifica tali stringhe durante l'esecuzione. Gli autori di malware potrebbero offuscare stringhe importanti, come URL, C2 domini, ecc., per evitare di bruciare l'infrastruttura in base a una ricerca a stringa singola.
  • Caricamento runtime delle DLL: Poiché possiamo identificare le importazioni di malware durante l'analisi PE intestazioni, gli autori di malware utilizzano spesso LoadLibrary o LoadLibraryEx delle librerie Windows per caricare una DLL in fase di runtime. Analizzando staticamente questo malware, potremmo non vedere tutte le funzioni a cui è collegato durante l'analisi delle sue intestazioni.
  • Imballaggio e offuscamento: Il packing è molto popolare tra gli autori di malware. Imballare il malware è come impacchettare un regalo. Quando guardiamo un regalo imballato, non possiamo dire cosa potrebbe esserci al suo interno a meno che non spacchettamo l'involucro e tiriamo fuori il regalo. Allo stesso modo, i packer impacchettano il malware in un wrapper scrivendo codice che decodifica il malware in fase di esecuzione. Pertanto, quando eseguiamo l'analisi statica, potremmo non essere in grado di vedere cosa c'è all'interno del packer. Tuttavia, quando eseguiamo il malware, decomprime il codice, carica il codice dannoso vero e proprio nella memoria e quindi lo esegue.

Metodi di evasione malware di base Analisi dinamica:

  • Identificazione delle VM: Tuttavia, alcune di queste tecniche potrebbero ritorcersi contro al giorno d'oggi poiché gran parte dell'infrastruttura aziendale è ospitata VMs, uno dei metodi preferiti dagli autori di malware è stato identificare se il malware è in esecuzione all'interno di una VM. Per questo, il malware spesso controlla la presenza di chiavi di registro o driver di dispositivo associati ai più diffusi software di virtualizzazione come VMWare e Virtualbox. Allo stesso modo, risorse minime, come una singola CPU e RAM limitata, potrebbero indicare che il malware è in esecuzione all’interno di una VM. In questo scenario, il malware seguirà un percorso di esecuzione diverso, non dannoso per ingannare l'analista.
  • Attacchi temporali: Il malware tenta spesso di far scadere i sistemi di analisi automatizzati. Ad esempio, quando viene eseguito il malware, proverà a dormire per un giorno utilizzando la libreria Windows Sleep. Dopo alcuni minuti, il sistema di analisi automatizzato si spegnerà, non trovando tracce di attività dannose. I sistemi di analisi del malware più recenti possono identificare questi attacchi e provare a mitigarli riducendo il tempo di sospensione del malware. Tuttavia, il malware può identificare tali mitigazioni eseguendo controlli temporali mirati per verificare se l'ora viene manipolata. Questo può essere fatto annotando l'ora di esecuzione e confrontandola con l'ora corrente dopo l'esecuzione della chiamata di sospensione.
  • Tracce dell'attività dell'utente: Il malware tenta di identificare se sono presenti tracce dell'attività dell'utente nella macchina. Se non vengono trovate tracce o ne vengono trovate pochissime, il malware deciderà di essere eseguito all'interno di un sistema controllato e prenderà un percorso di esecuzione diverso e benigno. Tracce dell'attività dell'utente possono includere nessun movimento del mouse o della tastiera, mancanza di cronologia del browser, nessun file aperto di recente, poco tempo di attività del sistema, ecc.
  • Individuazione degli strumenti di analisi: Il malware può chiedere a Windows sistema operativo per un elenco di processi in esecuzione utilizzando Process32First, Process32Next o funzioni simili. Se nell'elenco dei processi in esecuzione vengono identificati strumenti di monitoraggio popolari, il malware può intraprendere un percorso di esecuzione benigno. Ad esempio, se ProcMon o ProcExp sono in esecuzione, il malware può identificarlo e passare ad attività benigne. Un altro modo per identificare gli strumenti di analisi è osservare i nomi delle diverse finestre aperte in un sistema. Se il malware trova Ollydbg o ProcMon in Windows aperto, può passare a un percorso di esecuzione diverso.

Risposte in camera

A volte il malware controlla il tempo prima e dopo l'esecuzione di determinate istruzioni per scoprire se viene analizzato. Che tipo di tecnica di analisi viene aggirata da questo attacco?

Qual è una tecnica popolare utilizzata dagli autori di malware per offuscare il codice malware dall'analisi statica e scartarlo in fase di runtime?

Possiamo recuperare il codice pre-compilazione di un binario compilato per scopi di debug? Scrivi Y per Sì o N per No

Quale tipo di debugger viene utilizzato per il debug dei binari compilati?

Quale debugger funziona al livello più basso tra i debugger discussi?

In quale scheda è mostrata la vista di disassemblaggio in x32dbg?

Se un processo apre un file o un processo, dove possiamo vedere le informazioni relative a quel file o processo aperto?

La VM allegata ha un crackme nella directory Desktop > crackme-arebel. In quel crackme c'è una richiamata TLS con un salto condizionale. Questo salto condizionale è stato effettuato? Scrivi Y per Sì o N per No

Qual è il valore dello Zero Flag nel suddetto salto condizionale?

Quale API la chiamata nell'esempio menzionato viene utilizzata per enumerare i processi in esecuzione?

Da quale Windows DLL viene chiamata l'API SuspendThread?

Come si chiama quando il codice assembly di un binario viene modificato in modo permanente per ottenere il percorso di esecuzione desiderato?

Videoprocedura dettagliata

Circa l'autore

Creo note sulla sicurezza informatica, note di marketing digitale e corsi online. Fornisco anche consulenza di marketing digitale, inclusi ma non limitati a SEO, annunci Google e Meta e amministrazione CRM.

Visualizza articoli