Ritardo di Esecuzione: Delay Execution (T1678)

La tecnica T1678 - Delay Execution raggruppa tutti i metodi con cui un attaccante introduce ritardi temporali nell'esecuzione del proprio codice per eludere l'analisi automatizzata e mimetizzarsi nel rumore operativo di un sistema. L'obiettivo è duplice: da un lato superare i timeout delle sandbox, che raramente osservano un campione per più di qualche minuto; dall'altro spezzare la correlazione temporale che i motori di detection usano per legare eventi apparentemente scollegati.

MITRE colloca questa tecnica sotto la tattica TA0005 (Defense Evasion), evidenziandone il ruolo trasversale nelle fasi post-compromissione della kill chain. Le forme più comuni includono chiamate programmatiche a Sleep o NtDelayExecution, cicli di ping verso indirizzi arbitrari, task pianificati con trigger differiti, e la cosiddetta API hammering, ossia l'invocazione massiva di funzioni native per saturare gli emulatori con dati inutili.

I dati MITRE censiscono 1 gruppo APT (Mustang Panda), 2 famiglie malware (HIUPAN e TONESHELL) e 1 campagna documentata, il 3CX Supply Chain Attack, dove il payload attendeva un intervallo casuale compreso fra una e quattro settimane prima di attivarsi. Questo dato è particolarmente significativo perché mostra come il ritardo non sia più questione di secondi ma possa estendersi per settimane, rendendo inefficace qualsiasi analisi dinamica tradizionale.

Dal punto di vista offensivo, la simulazione di Delay Execution in un red team engagement serve a validare la capacità dei controlli di correlare eventi distanti nel tempo. Il pattern documentato di Mustang Panda è replicabile con una singola riga di comando:

cmd /c ping 8.8.8.8 -n 70 && "%TEMP%\payload.exe"

Il parametro -n 70 forza settanta echo request ICMP, introducendo circa settanta secondi di ritardo prima del lancio effettivo. È una tecnica banale ma efficace contro sandbox con timeout inferiore al minuto. Varianti più raffinate usano timeout /t 300 /nobreak oppure choice /t 60 /d y /n > NUL, entrambi nativi in Windows e privi di download.

Su Linux la logica equivalente si costruisce con sleep 300 o cicli come for i in $(seq 1 60); do sleep 5; done, spesso incapsulati in cron job con trigger differiti (at now + 2 hours). Su macOS, oltre a sleep in bash, è comune l'uso di AppleScript con delay 600 o di launchd con chiave StartInterval.

Per la simulazione di API hammering, un binario in C che invoca migliaia di volte GetTickCount, QueryPerformanceCounter e NtDelayExecution con intervalli sub-secondo replica il comportamento osservato in famiglie come TONESHELL. Il framework Atomic Red Team (open source) include test dedicati a T1497 e T1053 che coprono parte del comportamento di T1678; il repository su GitHub è mantenuto da Red Canary.

Per la componente sandbox-evasion, Al-Khaser (open source) e Pafish (open source) forniscono implementazioni pronte di controlli anti-analisi basati su timing, inclusa la misura della deriva fra rdtsc e GetTickCount per rilevare accelerazione temporale in ambienti virtualizzati.

Un payload realistico per emulare il pattern del 3CX Supply Chain Attack può generare in fase di installazione un timestamp casuale entro un intervallo di 7-28 giorni, salvarlo in registro sotto HKCU\Software\Classes<GUID> e schedulare un controllo periodico via schtasks /create /sc daily /tn UpdateCheck. Solo al superamento della soglia il payload prosegue. Questa catena permette di verificare se il SOC riesce a correlare l'installazione iniziale con l'attivazione avvenuta settimane dopo, tipicamente un punto debole nei processi di log retention.

Tutti i test vanno eseguiti in laboratorio isolato con snapshot pre-esecuzione e con documentazione formale delle attività autorizzate.

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.