I worm sono una categoria di virus, piuttosto diffusi in passato ma assolutamente non estinti ai giorni nostri, che sono capaci di autoreplicarsi e infettare automaticamente altri sistemi. Quindi sì, un virus può passare da un’installazione di Windows all’altra, sia all’interno della rete locale che aggredendo i dispositivi collegati alla rete Internet. Di solito i virus utilizzano vulnerabilità wormable, come tante ne sono state scoperte (e via via risolte) in passato, ma in altri casi si fa leva su configurazioni scorrette o superficiali.
Quand’è che un virus può passare da un sistema Windows all’altro
Facciamo innanzi tutto alcune doverose precisazioni. Se un malware fosse già in esecuzione su un dispositivo, questo ha di fatto il via libera per compiere operazioni di qualunque tipo. Almeno quelle consentite dai privilegi utenti con cui si trova in esecuzione.
Un virus che può utilizzare i privilegi di amministratore o i diritti SYSTEM ha una libertà d’azione molto più ampia rispetto a un componente malevolo che deve limitarsi ai privilegi di un account utente normale. Esistono però moltissime possibili “strade” che permettono di porre in essere attacchi di privilege escalation, ossia volti all’acquisizione dei diritti più elevati sui sistemi Windows.
Non è un segreto che un ampio ventaglio di malware utilizzi tecniche note e vulnerabilità conosciute per acquisire privilegi elevati ed eseguire codice arbitrario senza restrizioni.
In ogni caso se il virus ha già accesso al file system del sistema dell’utente, è un grosso problema perché può radicarsi sull’installazione di Windows in uso, su altre installazioni presenti sulla stessa macchina e, soprattutto, può tentare di muoversi lateralmente.
I movimenti laterali: cosa sono e perché sono pericolosi
Un virus che infetta un PC Windows può tentare movimenti laterali all’interno della rete per espandere la propria portata e compromettere altri sistemi. Questo approccio è una tecnica comunemente utilizzata dagli aggressori per massimizzare l’impatto di un attacco informatico.
Per infettare altre installazioni di Windows a partire da una macchina già aggredita con successo, il malware può sfruttare diverse tecniche. Ne citiamo alcune.
Accesso remoto (RDP, SMB)
I malware possono utilizzare credenziali di amministratore rubate o vulnerabilità nei protocolli Remote Desktop Protocol (RDP) e Server Message Block (SMB) per accedere a computer fisicamente collegati con la stessa rete.
RDP, in particolare, è una delle principali modalità di accesso utilizzata dai criminali informatici. Microsoft corregge con regolarità vulnerabilità presenti nelle implementazioni del protocollo RDP (altrimenti conosciuto come Desktop remoto), in tutti i suoi sistemi operativi.
Anche SMB è spesso oggetto della scoperta di nuove vulnerabilità. Citiamo ad esempio lo storico exploit EternalBlue (CVE-2017-0144) che nel 2017 ha colpito SMBv1 (la prima versione del protocollo per la condivisione delle risorse in Windows) e ha permesso l’esecuzione di codice arbitrario sui sistemi vulnerabili senza bisogno di alcuna interazione da parte degli utenti.
In generale, comunque, Microsoft sta abbandonando il supporto di SMB esortando gli utenti a passare a protocolli più sicuri come Kerberos. L’azienda di Redmond, proprio per motivi di sicurezza, ha recentemente deciso di abbandonare la storica autenticazione NTLM utilizzata da SMB (ne parliamo più avanti).
Password cracking e abuso delle credenziali
I malware possono tentare attacchi brute force o password spraying (utilizzo di password comuni) su account utente Windows per ottenere accesso a sistemi locali o remoti. Strumenti come Mimikatz estraggono le credenziali in chiaro dalla memoria, consentendo al malware di infiltrarsi facilmente in altre macchine.
Con le credenziali valide, il malware può connettersi a sistemi remoti via SMB, insediare il proprio codice dannoso o eseguire comandi.
PsExec è uno strumento legittimo del quale abbiamo parlato spesso che consente di eseguire comandi da remoto usando un account Windows. Parte integrante delle utilità Sysinternals (Microsoft), PsExec può essere abusato per eseguire comandi remoti su altre macchine della rete, ma dipende dall’accesso via SMB. Se il malware può disporre delle credenziali di un utente dotato di privilegi estesi, può utilizzare PsExec tramite SMB per eseguire comandi su altre macchine vulnerabili a loro volta connesse con la rete. Il malware può trasferire file dannosi tramite SMB (copiando un eseguibile o uno script) e poi avviarli sui sistemi remoti.
Tecniche di pass-the-hash
Un’altra tecnica utilizzata dai malware per il movimento laterale tramite SMB si chiama pass-the-hash. Invece di sottrarre le password in chiaro, i malware possono rubare gli hash delle stesse e usarli per l’autenticazione su altri sistemi nella rete, senza necessità di conoscere la password reale.
Quando un sistema Windows memorizza gli hash delle password, i malware possono impossessarsene e usarli per autenticarsi su altri dispositivi che utilizzano SMB per la condivisione di file o l’esecuzione remota. Per questo motivo, Microsoft ha deciso di accantonare progressivamente il protocollo di autenticazione NTLM (NT LAN Manager, ne parlavamo in precedenza) che è intrinsecamente esposto ad attacchi come pass-the-hash.
Abuso di strumenti amministrativi
Abbiamo citato PsExec, ma altri strumenti legittimi come PowerShell, WinRM (Windows Remote Management) e WMI (Windows Management Instrumentation) sono spesso sfruttati dai malware per eseguire comandi da remoto su altre macchine della rete. E passare così da un’installazione di Windows all’altra.
PowerShell, ad esempio, consente l’esecuzione di script e comandi remoti senza l’interazione dell’utente, ed è spesso sfruttato per il movimento laterale.
Sfruttamento di vulnerabilità
La cosiddetta exploitation di vulnerabilità di sicurezza, spesso già note almeno da qualche mese, resta comunque uno dei grimaldelli più sfruttati in assoluto dai malware progettati per passare da un’installazione di Windows all’altra.
L’utilizzo di vulnerabilità zero-day, per le quali non è ancora disponibile una patch correttiva, o addirittura di vulnerabilità sconosciute è certamente molto più raro. L’utilizzo di vulnerabilità precedentemente non note si ritrova in attacchi mirati che prendono di mira obiettivi di elevato profilo e che sono finanziati da soggetti con una disponibilità economica davvero significativa.
VM e sandbox escaping
Windows offre funzionalità per eseguire codice in ambienti isolati. Hyper-V, ad esempio, è la soluzione per virtualizzare altri sistemi operativi mentre Windows Sandbox è una funzionalità di sicurezza che permette di installare e avviare applicazioni in un’area completamente separata dal sistema ospitante.
Le vulnerabilità di VM escaping e sandbox escaping sono particolarmente severe perché consentono di provocare il caricamento di codice dannoso sul sistema host.
DLL hijacking e malware fileless
Alcuni malware si insinuano nei processi in esecuzione su macchine Windows tramite tecniche come DLL hijacking o iniezione di codice. Una volta che un processo compromesso è in esecuzione su un sistema, il malware può estendere la sua azione ad altri sistemi tramite metodi accessori.
Altri componenti dannosi operano direttamente nella memoria del computer, evitando di lasciare tracce a livello di file system. Questi attacchi possono utilizzare strumenti come PowerShell per eseguire comandi malevoli senza essere rilevati dai software antivirus. Si tratta dei cosiddetti attacchi fileless, progettati per non “fare rumore” e passare il più possibile inosservati.
Le misure di prevenzione
In generale, per proteggersi dai movimenti laterali dei virus ed evitare che passino da un’installazione di Windows all’altra è fondamentale:
- Applicare patch regolarmente per le risolvere vulnerabilità note. Non solo quelle destinate al sistema operativo ma anche quelle per gli altri software, ad esempio il browser Web, le suite per l’ufficio, i client email, le app di messaggistica, le soluzioni per la virtualizzazione/sandboxing e così via. In generale tutte le applicazioni che possono trovarsi ad elaborare dati arbitrari in input, provenienti anche da sorgenti sconosciute.
- Utilizzare un controllo rigoroso delle credenziali, con l’adozione di tecniche come l’autenticazione a più fattori (MFA).
- Assicurarsi di proteggere le risorse condivise in maniera adeguata e usare protocolli sicuri per l’autenticazione.
- Monitorare le attività sospette nelle reti e nei sistemi tramite strumenti di rilevamento delle intrusioni (IDS/IPS).
- Limitare i privilegi degli utenti e implementare politiche di “least privilege” (minimi privilegi).
- Segmentazione della rete: suddividere la rete in segmenti più piccoli può limitare la capacità degli attaccanti di muoversi senza limitazioni.
- Utilizzare tecnologie di sicurezza aggiuntive, come la virtualizzazione basata su hardware (ad esempio, Intel VT-x o AMD-V), che forniscono un ulteriore livello di protezione.
Credit immagine in apertura: iStock.com – gorodenkoff