Nelle fasi di un attacco, ottenere l’accesso iniziale a un sistema target è spesso un processo complesso e laborioso. Per questo motivo, è essenziale per gli attaccanti implementare tecniche di persistenza che consentano loro di mantenere il controllo del sistema compromesso senza dover ripetere l’infezione.
Un attaccante esperto cerca sempre di garantire la propria presenza sul sistema compromesso, prolungando il controllo per il maggior tempo possibile e assicurandosi, se possibile, un punto d’ingresso persistente all’interno della rete aziendale.
In questo articolo esploreremo le principali strategie utilizzate dagli attaccanti per ottenere persistenza, con un focus particolare sui sistemi operativi Windows.
Cartella di Avvio
La cartella di avvio di Windows è una directory speciale: qualsiasi programma collocato al suo interno si avvia automaticamente all’accensione del PC. Questa funzione è utile per eseguire automaticamente software essenziali senza richiedere l’avvio manuale.
Esistono due cartelle di avvio su ogni computer:
- Cartella di avvio per l’utente corrente: si trova in
C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup e contiene i programmi che si avviano solo per l’utente specifico.
- Cartella di avvio per tutti gli utenti: situata in
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup, consente l’avvio di programmi per tutti gli utenti del sistema.
Gli attaccanti possono sfruttare queste cartelle copiando file dannosi al loro interno o scaricando payload aggiuntivi, garantendosi così l’avvio automatico del malware a ogni accensione del sistema per mantenere la persistenza.
Manipolazione delle Chiavi di Registro Run e RunOnce
Nel registro di Windows, le chiavi Run e RunOnce vengono utilizzate per eseguire automaticamente programmi all’avvio del sistema operativo. Tuttavia, esistono differenze importanti nel loro funzionamento.
Chiave Run
- Posizione nel registro di sistema: la chiave Run si trova in due percorsi principali:
- Per tutti gli utenti: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- Per l’utente corrente: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- Funzionalità: i programmi elencati nella chiave Run vengono eseguiti automaticamente ad ogni avvio di Windows.
- Scopo: questa chiave è ideale per impostare programmi o servizi che devono essere attivi a ogni avvio del computer, come antivirus, applicazioni di sincronizzazione cloud o altre utility che devono rimanere in esecuzione costante.
Chiave RunOnce
- Posizione nel registro di sistema: anche la chiave RunOnce si trova in due posizioni simili:
- Per tutti gli utenti: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- Per l’utente corrente: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
- Funzionalità: i programmi elencati nella chiave RunOnce vengono eseguiti una sola volta al successivo avvio di Windows e, successivamente, vengono rimossi automaticamente dal registro.
- Scopo: questa chiave è utile per operazioni di setup o script di configurazione che devono essere eseguiti solo una volta. Ad esempio, un aggiornamento che richiede un riavvio del sistema può utilizzare questa chiave per completare la procedura al riavvio successivo.
| Caratteristica | Chiave Run | Chiave RunOnce |
| Frequenza di esecuzione | Ad ogni avvio del sistema | Solo una volta al successivo avvio |
| Rimozione dal registro | No (i valori rimangono) | Sì (i valori vengono rimossi dopo l’esecuzione) |
| Uso tipico | Programmi da eseguire sempre all’avvio | Script o programmi da eseguire una sola volta |
I malware possono impostare un valore in una di queste posizioni del registro per far eseguire il codice malevolo a ogni accesso dell’utente.
Task Scheduling
Il task scheduling è una funzionalità integrata nei sistemi operativi, come Windows, che permette di pianificare l’esecuzione automatica di programmi, script o comandi a intervalli specifici o in risposta a determinati eventi. Questa funzione è particolarmente utile per le attività di manutenzione, come aggiornamenti, backup e scansioni antivirus, e su Windows è gestita principalmente attraverso il Task Scheduler (Utilità di Pianificazione).
Tuttavia, gli attaccanti possono sfruttare il Task Scheduler di Windows per eseguire codice malevolo tramite task pianificati, mantenendo così la persistenza del loro malware nel sistema. Ad esempio, il gruppo di cybercriminali APT3 ottiene persistenza generando il seguente task pianificato:Per esempio, un downloader APT3 crea persistenza generando il seguente Task pianificato:
schtasks /create /tn “mysc” /tr C:\Users\Public\test.exe /sc ONLOGON /ru “System”
Questo comando crea un task che esegue un file dannoso ogni volta che un utente effettua il logon, utilizzando i privilegi di sistema. Se desideri approfondire il tema e scoprire come occultare un task malevolo, puoi consultare il seguente link all’articolo di approfondimento.
Opzioni di Esecuzione File Immagine (IFEO)
Le Image File Execution Options (IFEO) sono una funzionalità di Windows progettata principalmente per sviluppatori e amministratori di sistema che necessitano di strumenti per il debug delle applicazioni. Le IFEO permettono di configurare comportamenti specifici per l’esecuzione di determinate applicazioni, consentendo, ad esempio, di avviare un’applicazione direttamente in modalità di debug.
Questa funzionalità è configurabile nel registro di sistema di Windows, nella seguente chiave:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ <Subkey>
All’interno di questa chiave, è possibile creare sottochiavi con il nome esatto dell’eseguibile da monitorare o modificare (ad esempio, notepad.exe). In queste sottochiavi, è possibile aggiungere vari parametri per personalizzare il comportamento dell’applicazione. Alcuni parametri chiave includono:
Debugger: uno dei valori più comuni, consente di specificare un percorso a un programma (di solito un debugger) che verrà eseguito al posto dell’applicazione originale.
GlobalFlag e StackTraceDatabase: opzioni che abilitano funzionalità avanzate di debug e raccolta dati, utili per analizzare errori delle applicazioni e migliorarne le prestazioni.
Le IFEO sono utilizzate prevalentemente da sviluppatori e amministratori di sistema per collegare un’applicazione a un debugger specifico, come WinDbg o Visual Studio, con lo scopo di analizzare e risolvere eventuali problemi del software.
Tuttavia, un attaccante può abusare della chiave di registro IFEO per eseguire un malware al posto di un debugger legittimo. Ad esempio, potrebbe configurare un keylogger per registrare le sequenze di tasti dell’utente e inviarle a un server Command & Control ogni volta che viene avviato un programma di gestione password, come “KeePass”. Per evitare sospetti, l’attaccante potrebbe programmare il malware in modo da eseguire anche il software originale, passato come argomento, facendo sembrare il tutto come un normale avvio del programma atteso dall’utente.

Abuso delle Associazioni File Predefinite
Un’associazione di file è una relazione che collega un tipo di file a un’applicazione specifica, impostando quale programma si apre automaticamente quando si fa doppio clic su quel tipo di file. Ad esempio, un file di testo con estensione .txt può essere associato a Blocco note, in modo che venga aperto con questa applicazione per impostazione predefinita.
Gli attaccanti possono sfruttare le associazioni di file per ottenere persistenza sul sistema, modificando l’applicazione predefinita associata a un tipo di file in modo da eseguire il proprio malware. Ad esempio, un attaccante potrebbe cambiare l’associazione per i file .txt, configurando il sistema affinché, invece di aprirli con Blocco note, lanci un programma che stabilisce una Reverse Shell collegata a un server di comando e controllo (C2). In questo modo, ogni volta che l’utente tenta di aprire un file .txt, viene avviata una connessione remota per consentire all’attaccante di controllare il sistema.
Per evitare sospetti, il malware potrebbe successivamente aprire il file .txt con Blocco note, facendo apparire il tutto come un normale avvio del programma previsto dall’utente.

La chiave di registro usata per configurare queste associazioni si trova in:
HKEY_CLASSES_ROOT\[nome file]\shell\open\command

Modificandone il contenuto, un attaccante può ridefinire l’applicazione predefinita, rendendo l’apertura di file comuni un metodo per avviare codice malevolo in modo silente.
Abuso degli screensaver
Gli attaccanti possono ottenere persistenza sfruttando l’inattività dell’utente per eseguire codice dannoso. Gli screensaver, infatti, sono programmi che si avviano automaticamente dopo un periodo configurabile di inattività. Le impostazioni dello screensaver, che un attaccante può manipolare per mantenere l’accesso persistente, si trovano nella seguente chiave di registro:
HKCU\Control Panel\Desktop\

Ad esempio, un attaccante potrebbe modificare queste impostazioni per avviare un programma di crypto mining ogni volta che il computer rimane inattivo per due minuti. In questo modo, l’attaccante sfrutta le risorse del sistema per minare criptovalute in modo nascosto durante i periodi di inattività. Appena l’utente riprende l’uso del computer, il crypto miner, mascherato da screensaver, si interrompe automaticamente, rendendo difficile il rilevamento senza un monitoraggio specifico dei processi attivi.

Prevenzione della Persistenza del Malware
I malware possono impiegare numerose tecniche di persistenza per mantenere l’accesso al sistema compromesso. Per prevenire questi tentativi, è fondamentale adottare misure di sicurezza che includano il blocco dell’esecuzione di programmi non autorizzati, l’impostazione di restrizioni sui privilegi degli utenti e la protezione dei file di configurazione critici.
Individuare e rimuovere i metodi di persistenza utilizzati durante un incidente di sicurezza è uno degli obiettivi principali nella gestione dell’evento. Eliminare completamente la presenza dell’attaccante dall’ambiente compromesso è essenziale per garantire il successo del recupero e il ripristino della sicurezza del sistema.






