User Account Control (UAC) è il meccanismo di protezione che Microsoft ha introdotto a partire da Windows Vista. Esso permette di informare l’utente ogniqualvolta un eseguibile o comunque un processo caricato sul sistema provi ad acquisire i diritti di amministratore. Usando tali privilegi, il codice può evidentemente accedere al contenuto delle aree di sistema più critiche e apportare modifiche.
Dal momento che Windows Vista mostrava la schermata di UAC troppo di frequente, con le versioni seguenti del sistema operativo, i tecnici Microsoft hanno deciso di autorizzare per default i componenti software presenti nella cartella di sistema %systemroot%\System32
ad acquisire automaticamente i privilegi più ampi senza la comparsa di alcun messaggio da parte di UAC.
Nell’articolo 300 eseguibili Windows vulnerabili ad attacchi DLL hijacking abbiamo visto che tale comportamento, come ha recentemente dimostrato il ricercatore Wietze Beukema, per eseguire codice arbitrario senza provocare la comparsa della schermata di UAC.
Un altro studioso, Daniel Gebert, ha spiegato che un processo potenzialmente dannoso può acquisire i privilegi più elevati semplicemente creando una cartella di sistema fasulla che “imita” quella originale. Inoltre, mentre nel caso dell’approccio seguito da Beukema la libreria DLL originale veniva in qualche modo riscritta e ricompilata aggiungendovi il codice malevolo, Gebert dimostra che è possibile eseguire un processo potenzialmente nocivo creando una cartella System32
contenente nel nome uno spazio iniziale. In molti casi il contenuto di questa seconda cartella viene trattato come se fosse quello di %systemroot\System32
autorizzando quindi l’esecuzione di file non approvati né provenienti da fonti affidabili.
Se da Esplora file non si possono creare cartelle con uno spazio iniziale, il ricercatore fa presente che vi si può riuscire molto semplicemente usando PowerShell. Ad esempio, il comando seguente provoca la creazione di una cartella di sistema con spazio iniziale: New-Item "\\?\C:\Windows \System32" -ItemType Directory
.
Un “giochetto” che può permettere a un file pericoloso avviato manualmente oppure caricato in automatico facendo leva su altre vulnerabilità, di modificare in profondità la configurazione di Windows causando danni sulla macchina e sulla rete locale senza insospettire gli utenti.