Windows 11 nasconde una protezione segreta contro i link NTFS: cos’è RedirectionGuard

Windows 11 introduce RedirectionGuard, una nuova misura di sicurezza che impedisce ai processi di seguire giunzioni non affidabili nel filesystem, prevenendo così attacchi basati su filesystem redirection.

Con l’evolversi costante delle tecniche di attacco informatico, Microsoft prova a non limitarsi a rispondere alle singole vulnerabilità note, ma anticipa intere classi di minacce. Tra queste, una delle più insidiose è rappresentata dagli attacchi di filesystem redirection, spesso usati per ottenere privilegi utente più estesi. Per contrastare questo rischio, Windows 11 introduce RedirectionGuard, una soluzione innovativa che mira a bloccare un importante vettore d’attacco.

Il problema della filesystem redirection e le giunzioni insicure

Il fenomeno della filesystem redirection si manifesta quando un processo dotato di diritti elevati (tipicamente un servizio di sistema) esegue operazioni su un percorso file che può essere dirottato in modo non intenzionale o malevolo.

Consideriamo un esempio pratico: un servizio con privilegi SYSTEM scrive temporaneamente dati in una cartella C:\MyService e, al termine, elimina tutto il contenuto. Se un utente sprovvisto di privilegi elevati sostituisce C:\MyService con una giunzione (junction) che punta a C:\Windows\System32, il servizio, non accorgendosi del “reindirizzamento”, cancellerà file di sistema critici, compromettendo la stabilità di Windows.

Come funziona RedirectionGuard

RedirectionGuard è una soluzione implementata da Microsoft in Windows 11, e descritta solo di recente, che si attiva a livello di processo, impedendo di seguire giunzioni non affidabili. La misura di difesa scatta in automatico se e solo se il processo ha esplicitamente optato per questa mitigazione tramite API. Inoltre, blocca l’efficacia delle giunzioni create da account non amministrativi.

Windows 11, come spiega Microsoft, memorizza il livello di privilegio del creatore/modificatore di una giunzione in un flusso dati alternativo protetto, usato da RedirectionGuard per valutare la fiducia di ogni singola junction.

RedirectionGuard colma una lacuna storica nella sicurezza di Windows: la fiducia cieca nei percorsi file, che può essere manipolata in modo silenzioso dai malware.

È già attivo in Windows 11?

Sì e no. RedirectionGuard è integrato nel sistema operativo ma, come indicato in precedenza, non è attivato automaticamente per tutti i processi. Microsoft ha già abilitato RedirectionGuard su alcuni servizi di sistema critici, come i seguenti:

  • User Profile Service
  • AppX Deployment Service
  • Installer Service

Questi servizi hanno infatti subìto vulnerabilità documentate in passato (CVE), legate proprio ad abusi nelle attività di reindirizzamento con le giunzioni.

È possibile attivarlo per altri programmi?

La funzionalità di protezione RedirectionGuard può essere abilitata dagli sviluppatori, utilizzando codice che invoca l’API SetProcessMitigationPolicy. Gli amministratori di sistema possono invece procedere avvalendosi dei criteri di sicurezza (policy di gruppo oppure o Windows Defender Exploit Guard).

Si può eventualmente utilizzare PowerShell e il modulo NtObjectManager per visualizzare i processi in esecuzione ed eventuali mitigazioni attive, inclusa RedirectionGuard se presente:

Install-Module NtObjectManager -Scope CurrentUser
Get-NtProcessMitigations

Il file system NTFS supporta diverse forme di collegamenti tra file e cartelle.

L’hard link, ad esempio, è un alias alternativo per lo stesso file fisico nel file system. Più hard link condividono lo stesso ID nella Master File Table (MFT). È utile per avere più percorsi che puntano allo stesso contenuto file, senza duplicarlo, e quando si vuole garantire che il file sopravviva anche se un percorso viene eliminato.

Un link simbolico (symlink) è un file speciale che contiene un percorso target: quando il sistema accede al link, lo reindirizza in tempo reale al file o alla cartella di destinazione. Si possono così creare alias flessibili a file o directory, anche su dischi o reti diversi.

Ancora, una giunzionejunction – di cui abbiamo parlato in questo articolo – agisce da collegamento soltanto rispetto alle cartelle. È utilissima, ad esempio, per spostare fisicamente una directory altrove, mantenendo la compatibilità con software legacy nonché per ristrutturare un sistema senza rompere i percorsi (ad esempio al fine di migrare le cartelle di profilo).

In un altro articolo abbiamo visto come spostare programmi da C: a D: o ad altre unità proprio usando le giunzioni (comando mklink).

Ti consigliamo anche

Link copiato negli appunti