Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Quando un avversario riesce a sfruttare una vulnerabilità non nel software generico, ma proprio nel software di sicurezza — antivirus, EDR, servizi di integrità del sistema operativo — il risultato è tra i più insidiosi: le difese si spengono dall'interno. La tecnica Exploitation for Defense Evasion descrive esattamente questo scenario: l'attaccante individua un difetto in un programma, servizio o nel kernel stesso e lo usa per eseguire codice controllato, con l'obiettivo specifico di aggirare o disabilitare i meccanismi di protezione.
Questa tecnica si colloca nella fase TA0005 – Defense Evasion, il momento della kill chain in cui l'attaccante, già presente nell'ambiente, lavora per rendersi invisibile. Non si tratta quindi di ottenere l'accesso iniziale né di elevare i privilegi in senso stretto, ma di rimuovere gli occhi e le orecchie del difensore. Il bersaglio può essere un antivirus locale, un agente EDR, un servizio di audit come auditd, oppure — in contesti cloud — le guardrail di sicurezza IaaS e le boundary di logging SaaS.
I dati disponibili associano questa tecnica a 2 gruppi APT noti, con 4 mitigazioni raccomandate e strategie di detection che coprono Windows, Linux, macOS, IaaS e SaaS. L'assenza di software dedicato nel catalogo conferma la natura opportunistica della tecnica: gli exploit cambiano, ma il pattern resta lo stesso.
L'obiettivo in laboratorio è simulare lo scenario in cui un processo di sicurezza viene compromesso, terminato o reso cieco tramite exploitation. Non serve un vero zero-day: bastano CVE note e ambienti vulnerabili controllati per riprodurre la catena.
Scenario 1 — Crash controllato di un processo EDR su Windows. In un lab Windows con Sysmon installato, il primo passo è identificare i processi difensivi attivi. Il comando PowerShell classico è:
Get-Process | Where-Object {$_.Path -like "C:\Program Files*"} | Select-Object Name, Id, Path
Questo restituisce i processi in esecuzione dalle directory tipiche degli agent di sicurezza. Per simulare un crash anomalo di un servizio difensivo senza exploit reale, si può usare il tool Process Hacker (open source) per iniettare un thread o terminare forzatamente il processo, monitorando gli eventi generati. In Sysmon, la terminazione del processo genera un evento con EventCode 5 (Process Terminated), mentre il caricamento di moduli non firmati nei processi difensivi produce EventCode 7 (Image Loaded).
Scenario 2 — Exploit di NX-OS in ambiente simulato. Il caso di Velvet Ant con CVE-2024-20399 su switch Cisco è particolarmente istruttivo. L'attaccante, già autenticato sulla CLI NX-OS, sfruttava la vulnerabilità per fuggire dalla shell ristretta e raggiungere il sistema operativo sottostante. In laboratorio, si può ricreare uno scenario analogo con GNS3 (open source) o EVE-NG (freemium), emulando device Cisco con firmware vulnerabile in rete isolata. L'esercizio consiste nell'autenticarsi via SSH, tentare l'escape dalla CLI e verificare se i log del device registrano l'operazione anomala.
Scenario 3 — Disabilitazione di auditd su Linux. Su una VM Linux con auditd configurato, si può testare cosa accade quando il daemon di audit viene terminato in modo anomalo:
kill -9 $(pidof auditd)
Questo simula l'effetto di un exploit che colpisce il daemon di auditing. Lo scenario successivo prevede di verificare la comparsa di gap nei log con ausearch -m DAEMON_END e correlare l'assenza di telemetria con le azioni eseguite nel frattempo.
Scenario 4 — Bypass delle protezioni macOS. Su macOS, Gatekeeper e XProtect possono essere oggetto di test con il framework Atomic Red Team (open source), che include test specifici per verificare l'esecuzione di binari non firmati e la risposta dei daemon di sicurezza Apple. Il comando per elencare i test disponibili:
Invoke-AtomicTest T1211 -ShowDetailsBrief
Se non esistono atomics specifici per questa tecnica, si può comunque simulare la terminazione di un agente EDR di terze parti e monitorare i log unificati di macOS con log show --predicate 'subsystem == "com.apple.securityd"' --last 1h.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo