IT | AV Tampering (PT1)
Serie tecnica su AV Tampering: come funzionano gli antivirus moderni e come i malware cercano di eluderli o disattivarli.
⚠️ Disclaimer: Sono uno studente appassionato di cybersecurity e non un esperto del settore. Questo articolo è frutto dei miei studi personali: è molto probabile che contenga imprecisioni o errori tecnici. Vi prego di essere clementi e di considerare questo testo come un percorso di apprendimento condiviso. Ogni correzione o feedback costruttivo è ben accetto.
Indice
Introduzione
Nel campo della sicurezza informatica, il termine AV Tampering indica l’insieme di tecniche utilizzate da malware e virus per manipolare, aggirare o disabilitare i software antivirus.
L’obiettivo dell’attaccante è duplice:
- Evadere il rilevamento, nascondendo la propria presenza
- Impedire la neutralizzazione, disabilitando o indebolendo i meccanismi di difesa
Gli attori malevoli sanno bene che gli antivirus moderni (AV) e gli Endpoint Detection and Response (EDR) non si basano più solo su firme statiche, ma integrano:
- Analisi comportamentale
- Monitoraggio in tempo reale
- Componenti kernel
- Motori di scansione in memoria
Per questo motivo, le tecniche di attacco si sono evolute di pari passo.
Cos'è l’AV Tampering
In contesti avanzati come:
- APT (Advanced Persistent Threat)
- Ransomware moderni
- Attacchi post-exploitation
l’AV tampering rappresenta una fase fondamentale della kill chain.
Nel framework MITRE ATT&CK, queste tecniche rientrano nella tattica:
Impair Defenses – T1562
Ovvero l’insieme di azioni mirate a offuscare, disabilitare o aggirare i controlli di sicurezza presenti sul sistema bersaglio.
In questo articolo analizziamo prima come funzionano gli antivirus, così da capire perché e come i malware riescono a ingannarli.
Come funziona un antivirus moderno
Per comprendere le tecniche di evasione è essenziale conoscere i meccanismi di rilevamento usati dagli AV/EDR attuali.
Di seguito una panoramica dei principali componenti.
Per avere una vista d'insieme, ecco un diagramma che sintetizza i principali blocchi e il flusso di analisi degli AV moderni.

Firme e hash
Gli antivirus mantengono enormi database di firme di malware noti.
Una firma può essere:
- Un hash crittografico (es. SHA-256)
- Una porzione caratteristica del file
Flusso semplificato:
- Il file viene analizzato
- Viene calcolato l’hash
- L’hash viene confrontato con il database
- Se coincide → file bloccato
Limiti principali:
- Basta modificare un solo byte per cambiare completamente l’hash
- Inefficace contro malware nuovi o custom
Ecco un diagramma semplice del processo hash/firma (corretto per evitare errori di parsing):

Scansione statica e string matching
Oltre agli hash, gli AV effettuano analisi statica del file:
- Ricerca di stringhe sospette
- Pattern binari noti
- Regole YARA
Esempio classico:
"mimikatz"
La presenza di stringhe note può attivare un alert.
Contromisura dei malware:
- Offuscamento delle stringhe
- Cifratura dei dati
- Ricostruzione a runtime
Analisi euristica e comportamentale
Poiché le firme non bastano, gli AV moderni usano behavioural detection.
Approccio:
- Esecuzione del file in sandbox
- Emulazione del comportamento
- Analisi delle chiamate API
Sequenze tipicamente sospette:
OpenProcess VirtualAllocEx WriteProcessMemory CreateRemoteThread
Questa catena è fortemente associata alla process injection.
Diagramma della catena di injection tipica:

La sandbox e l'emulazione permettono di osservare queste sequenze e assegnare punteggi di rischio.
Hooking e monitoraggio delle API
Molti EDR installano hook in user-mode su API critiche.
Esempio:
- Hook su
NtOpenProcessinntdll.dll - Il controllo passa prima dal codice EDR
- Solo dopo viene invocata la syscall reale
Ecco un esempio reale: osservando i moduli caricati in memoria da un debugger, possiamo vedere le DLL dell'antivirus (in questo caso Bitdefender) iniettate forzatamente nel processo target:

Questo consente:
- Monitoraggio in tempo reale
- Blocco immediato di comportamenti sospetti
Ma introduce anche superfici di attacco, sfruttabili per:
- Unhooking
- Syscall dirette
- Bypass user-mode
Flusso semplificato di hooking / bypass:

Driver kernel e scansione on-access
A livello kernel, gli antivirus utilizzano:
- File System Minifilter Driver
- Callback su processi, thread e registry
Ogni operazione di I/O può essere intercettata:
- Creazione file
- Apertura
- Modifica
Questo è il cuore della on-access scanning.
Molti EDR combinano:
- Driver kernel
- Servizi userland
- Monitoraggio in RAM
AMSI – Antimalware Scan Interface
AMSI è un’interfaccia standard di Windows.
Viene usata da:
- PowerShell
- Office (macro)
- Script engine vari
Funzionamento:
AmsiScanString() AmsiScanBuffer()
Se l’AV restituisce:
AMSI_RESULT_DETECTED
l’esecuzione viene bloccata.
Di seguito uno sequence diagram che illustra il flusso tra applicazione, AMSI e provider (antivirus):

Contromisure comunemente viste nei malware per bypassare AMSI includono patching di funzioni AMSI in memoria, hooking di driver o tecniche di offuscamento/runtime decryption per aggirare il controllo.
Ispezione della Import Address Table (IAT)
Durante l’analisi statica, gli AV controllano anche:
- Le API importate dall’eseguibile
Import sospetti:
OpenProcess VirtualAllocEx WriteProcessMemory CreateRemoteThread
La loro presenza nella IAT aumenta drasticamente il punteggio di rischio.
Tecnica di evasione comune:
- Risoluzione dinamica delle API con:
LoadLibrary() GetProcAddress()
In questo modo il PE Header appare più "pulito".
Diagramma che mostra la differenza tra import statico e risoluzione dinamica:

Per passare dalla teoria alla pratica, ho creato un piccolo repository di supporto dove potete vedere la differenza tra un import statico e uno dinamico.
Nel repo troverete due esempi in C:
-
01_Basic_Payload: Un programma standard che chiama
MessageBox(visibile nella IAT). -
02_IAT_Hiding: Lo stesso programma, ma riscritto usando
LoadLibraryeGetProcAddressper nascondere l'importazione.
In questa prima parte abbiamo visto:
- Come funzionano gli antivirus moderni
- Quali meccanismi usano per rilevare malware
- Dove nascono i punti deboli sfruttati dagli attaccanti
Nel prossimo articolo entreremo nel vivo dell’AV Tampering analizzando:
- Offuscamento
- Process injection
- API unhooking
- Bypass AMSI / ETW
- Abuso di driver vulnerabili
Parte 2 in arrivo