L’evasione degli antivirus (AV evasion) è l’insieme delle tecniche con cui gli attaccanti cercano di far passare codice malevolo attraverso i controlli di sicurezza senza essere rilevati. È una disciplina in continua evoluzione: i vendor di sicurezza aggiornano le loro firme e i loro modelli di rilevamento, e gli attaccanti sviluppano nuove tecniche per aggirarli. Comprendere queste tecniche è essenziale sia per chi sviluppa malware in contesti di ricerca e penetration testing, sia per chi difende, per capire i limiti degli strumenti di sicurezza.
Rilevamento basato su firma vs. comportamento
I sistemi di rilevamento moderni operano su più livelli:
Analisi statica: esaminano il file senza eseguirlo — hash, sequenze di byte, stringhe, sezioni PE, import table, entropia. È il livello più veloce ma anche il più aggirabile.
Analisi dinamica / sandbox: eseguono il campione in un ambiente controllato e osservano il comportamento a runtime — connessioni di rete, file creati, processi lanciati, modifiche al registro.
Analisi comportamentale in-memory (EDR): monitorano l’esecuzione in tempo reale sul sistema reale, non in sandbox. Più difficile da aggirare perché opera sul sistema target con telemetria continua.
Le tecniche di evasione si rivolgono a uno o più di questi livelli.
Evasione dell’analisi statica
Modifica dell’hash: la tecnica più banale. Aggiungere un byte al file o modificare metadati non funzionali cambia l’hash MD5/SHA-256 — invalida le firme basate su hash esatti.
Encoding e packing: cifrare o comprimere il payload rende irriconoscibili le sequenze di byte. Vedi obfuscation per dettagli.
Firma con certificato valido: firmare il binario con un certificato code signing rubato o acquistato da un’identità fittizia. Molti AV abbassano la priorità di scansione per binari firmati da certificati validi. Tecnica documentata in campagne APT.
Manipolazione del PE header: modificare campi non utilizzati o inserire dati fasulli nell’header del file PE che confondono i parser degli AV, causando errori nell’analisi e potenzialmente bypassando il controllo.
Steganografia: nascondere il payload in file immagine o audio apparentemente innocui. Il loader legittimo estrae ed esegue il payload dalla risorsa steganografata — l’immagine supera i controlli AV perché non è un eseguibile.
Evasione della sandbox
Sleep evasion: dormire per un tempo lungo (es. 10 minuti) prima di agire. Le sandbox hanno timeout di analisi — se il malware non fa nulla di interessante entro il timeout, viene classificato come benigno. Contromisura: le sandbox moderne accelerano il tempo di sistema (NtDelayExecution patching) o analizzano i pattern di sleep come indicatori.
Human interaction checks: verificare la presenza di interazione umana reale — movimenti del mouse, click recenti, finestre in primo piano, applicazioni installate. Sandbox automatizzate sono ambienti minimi privi di queste caratteristiche.
VM fingerprinting: rilevare artefatti delle VM di analisi — processi tipici di VMware/VirtualBox, chiavi di registro, dimensioni del disco (spesso molto piccole nelle sandbox), numero di CPU, quantità di RAM. Se rilevato, terminare senza rivelare il comportamento.
Environmental keying: il payload si decifra solo se il nome del dominio AD, l’hostname o il nome utente corrispondono al target previsto. In sandbox generica, la chiave non si calcola correttamente e il payload non viene eseguito.
Evasione degli EDR
I sistemi EDR sono significativamente più difficili da aggirare perché operano a livello kernel con visibilità comportamentale. Le tecniche avanzate includono:
BYOVD (Bring Your Own Vulnerable Driver): caricare un driver kernel legittimo ma con vulnerabilità nota, sfruttarla per ottenere esecuzione a livello kernel, e usarla per disabilitare o accecare l’agente EDR. Richiede disabilitare o aggirare il Driver Signature Enforcement.
Direct syscalls / Hell’s Gate: bypassare le funzioni NTDLL hookkate dall’EDR chiamando direttamente le syscall del kernel tramite codice assembly, evitando il codice di intercettazione iniettato in userspace.
Indirect syscalls / Halos’s Gate: variante che usa indirizzi di syscall estratti dinamicamente per aggirare il rilevamento dei direct syscall noti.
Prospettiva difensiva
Nessuna soluzione singola è sufficiente. La difesa in profondità richiede la sovrapposizione di più livelli: firma statica (per malware noto), sandbox (per rilevamento comportamentale a basso costo), EDR (per minacce avanzate), SIEM (per correlazione). La consapevolezza delle tecniche di evasione guida la corretta configurazione di questi strumenti e le aspettative realistiche sulle loro capacità.