Evasione degli antivirus

Indice dei contenuti

    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à.

    Ultimo aggiornamento: