Sta destando scalpore la notizia secondo cui, per come è implementato il protocollo RDP in Windows, il sistema operativo Microsoft permetterebbe l’accesso a sistemi locali e remoti anche utilizzando password obsolete, ad esempio credenziali non più approvate perché ormai modificate. Ma è davvero così o si tratta nell’ennesima fake news?
Iniziamo col dire che la presunta falla di sicurezza riguarda il meccanismo di caching delle credenziali RDP, utilizzate per stabilire sessioni di Desktop remoto. È vero, infatti, che Windows memorizza una versione hashed, in locale, delle credenziali (username e password).
Nel caso dei sistemi Windows configurati con accesso tramite account Microsoft o Azure Active Directory, quindi soltanto in questi casi, le credenziali precedenti — anche se revocate a livello di cloud — possono ancora essere utilizzate per accedere, se sono state memorizzate localmente.
Microsoft conferma il comportamento, che non sarà modificato
Secondo i tecnici di Microsoft, il fatto che un utente possa ancora accedere a un sistema locale o remoto, via RDP, usando una vecchia password conservata in cache è un comportamento “atteso” ed è così “by design“.
La società di Redmond motiva il comportamento come misura per garantire l’accesso al sistema anche in assenza del controller di dominio. Secondo l’azienda, disabilitare completamente la cache delle credenziali romperebbe la compatibilità con molte applicazioni e flussi di lavoro che si affidano alla disponibilità di account offline. La priorità è garantire la continuità operativa.
Quella che il ricercatore di sicurezza Daniel Wade ha bollato come una grave anomalia in termini di sicurezza, è derubricata da Microsoft che parla di un sistema necessario per evitare problemi nello stabilire sessioni RDP. Aggiungono i portavoce di Redmond che il comportamento era già stato oggetto di segnalazioni in passato (dal 2023): tuttavia, si è deciso di non intervenire, pur avendo inizialmente valutato modifiche al codice.
Come funziona davvero il caching delle credenziali di RDP
Dopo la segnalazione pervenuta da Wade, Microsoft ha deciso di integrare il documento di supporto Windows Logon Scenarios aggiungendo il box esplicativo “Caution“:
Quando un utente esegue un accesso locale, le sue credenziali sono verificate localmente usando una copia memorizzata nella cache prima di essere autenticate tramite un provider di identità in rete. Se la verifica nella cache ha esito positivo, l’utente ottiene l’accesso al desktop anche se il dispositivo è offline. Tuttavia, se l’utente modifica la password nel cloud, il verificatore memorizzato nella cache non viene aggiornato, il che significa che può comunque accedere al computer locale utilizzando la vecchia password.
Il chiarimento riassume puntualmente il funzionamento del sistema di autenticazione via RDP.
Intanto, Microsoft chiarisce che si parla di accesso diretto a una macchina Windows, non tramite il sito web di Microsoft o accessi online.
In condizioni normali (con il PC connesso a Internet), Windows effettua un’autenticazione ibrida: verifica la password localmente, e poi contatta anche il provider esterno (Microsoft o Azure AD) per confermare l’identità e scaricare eventuali token, policy, e così via. Se le credenziali locali corrispondono a quelle inserite, l’utente accede anche senza connessione. Un approccio che serve per garantire l’usabilità offline del sistema, ad esempio per chi viaggia o lavora in mobilità.
Ecco il nodo del problema: quando un utente cambia la password online (ad esempio tramite il portale di Microsoft 365), la copia locale della vecchia password non viene sovrascritta immediatamente o addirittura non viene aggiornata affatto. Questo fintanto che non si effettua di nuovo un login online con la nuova password.
Tanto trambusto per nulla?
A ben vedere, in parte sì. Come abbiamo spiegato nel paragrafo precedente, la possibilità di usare le vecchie credenziali RDP è limitata solo al momento in cui la macchina dell’utente non può scambiare dati con i server di Microsoft e non è quindi in grado di ricevere conferma che la password risulta cambiata.
È di fatto, piaccia o meno, il comportamento standard previsto da Windows: se le credenziali locali corrispondono a quelle inserite, l’utente accede anche senza disporre di un collegamento funzionante con i server cloud.
Non appena la connessione con i sistemi cloud di Microsoft torna disponibile, la possibilità di usare vecchie credenziali è automaticamente negata.
Inoltre, non vi è alcuna possibilità di usare le vecchie credenziali hashed su altri PC e dispositivi che non hanno mai stabilito una sessione RDP con il sistema remoto.
Una possibile contromisura: intervento tramite Group Policy
Riteniamo fondamentale, tuttavia, che gli amministratori IT siano ben consapevoli del funzionamento del meccanismo di autenticazione via RDP e della possibilità che – in modalità offline – Windows permetta l’utilizzo delle vecchie credenziali conservate nella cache locale.
Per gli amministratori IT che considerassero inaccettabile il comportamento predefinito di Windows, è possibile impostare una policy GPO. Basta portarsi in Configurazione Computer, Criteri, Impostazioni di Windows, Impostazioni di sicurezza, Opzioni di sicurezza, Accesso interattivo: numero di accessi precedenti memorizzati (se il controller di dominio non è disponibile) e impostare a 0 il valore corrispondente.
Con questa configurazione, le credenziali non sono più salvate in locale e ogni login richiede l’autenticazione online con il domain controller, disattivando di fatto l’uso delle password obsolete.