Perché gli NTFS Alternate Data Streams rappresentano una vulnerabilità di sicurezza
Dec 16, 2022
Potresti non essere familiare con i flussi di file NTFS, ma li utilizzi ogni giorno quando accedi ai file su qualsiasi sistema Windows moderno. Questo post del blog spiega questa funzionalità di NTFS ADS, mostra come gli hacker possono sfruttare la funzionalità dei flussi di file negli attacchi informatici e offre strategie per difendere la tua organizzazione.
Contenuti correlati selezionati:
Flussi di dati predefiniti e flussi di dati alternativi
Un flusso di file è una sequenza di byte che contiene dati riguardanti un file, come parole chiave o l'identità dell'utente che ha creato il file. Pensate a un flusso di dati come a un file all'interno di un file — un file nascosto che risiede all'interno di uno legittimo. Ogni flusso ha la propria allocazione di spazio su disco, la propria dimensione effettiva (byte in uso) e i propri blocchi di file.
Ogni file nella tua struttura di file NTFS ha almeno un flusso, il suo flusso predefinito. Il default data stream è il contenuto del file normale e visibile — per esempio, il testo in un file .txt o il codice eseguibile in un file .exe. Queste informazioni sono memorizzate nell'attributo $Data. Poiché il nome di questo attributo predefinito è vuoto (impostato su “”), il default data stream è spesso anche chiamato “unnamed data stream”.
I file possono anche contenere uno o più alternate data streams (ADSs). Un ADS deve essere nominato. Notare che il flusso di dati predefinito rimane invariato con l'aggiunta di flussi di dati alternativi.
Come creare Alternate Data Streams
È abbastanza facile creare flussi di dati alternativi per un file: basta aggiungere due punti (“:”) al nome del file o al percorso, seguito dal nome del flusso. Poiché i due punti sono un carattere riservato non consentito in un nome di file, non entra in conflitto con i nomi di file esistenti.
È possibile aggiungere più ADS a un file. Ad esempio, ecco come possiamo creare due flussi di dati alternativi per un file di testo:
Myfile.txt:stream2
Myfile.txt:secretstuff
Vantaggi dei flussi di file NTFS
Anche se i vecchi sistemi di file Windows come FAT16 e FAT32 non supportano più flussi di dati, ADS non è una tecnologia nuova; è presente in tutte le versioni del file system NTFS di Microsoft sin da Windows NT.
Fin dall'inizio, l'utilizzo di più flussi di dati ha contribuito a rendere un server Windows in grado di fungere anche da file server per i computer Apple Macintosh. I file Mac utilizzano due flussi per file — uno per i dati e uno per le informazioni sulle risorse. Con NTFS che supporta più flussi, un utente Mac poteva copiare file su un server Windows e poi di nuovo su un Mac senza perdere il flusso delle risorse. In altre parole, l'ADS era in grado di fornire compatibilità per entrambi i sistemi e le loro applicazioni.
Ci sono anche motivi legittimi per utilizzare flussi di dati alternativi all'interno di Windows. Ad esempio, alcuni software di gestione archivi e backup utilizzano ADS per memorizzare informazioni sulle revisioni dei file, e molti browser web aggiungono un flusso ai file scaricati da internet che include informazioni di sicurezza sulla provenienza del file.
Il lato sinistro di ADS
Sebbene ADS abbia molti scopi legittimi, gli hacker possono abusarne per scopi malevoli come attacchi malware. Come uno scomparto segreto all'interno di una valigia usato da un contrabbandiere per nascondere merce di contrabbando da un ispettore, ADS può essere utilizzato dagli attori delle minacce per nascondere codice malevolo ed eseguire attacchi futuri mentre si sottrae al rilevamento della sicurezza di base. Un ADS può memorizzare qualsiasi tipo di file, inclusi audio, video, immagini o codice malevolo come virus, trojan e ransomware. E poiché i flussi di dati alternativi sono nascosti, gli utenti non possono rilevarli utilizzando comandi di elenco directory.
Strumenti per lavorare con gli NTFS Streams
Ci sono alcuni strumenti nativi che puoi utilizzare per ottenere maggiore visibilità in ADS. Questi includono:
- Echo e Altro
- L'utilità Sysinternals Streams
- L'opzione /R del comando Dir.
- PowerShell 3.0, che include sei cmdlet per manipolare direttamente i contenuti per ADS
Echo e Altro
Iniziamo utilizzando Echo e More. Nell'esempio sottostante, il comando Echo viene usato per aggiungere “:secret” a un file di testo chiamato test.txt, e il comando More viene usato per scrivere un messaggio segreto che non può essere visualizzato di default. Notate che anche il comando Dir non rileva il flusso segreto NTFS.
Flussi
Streams è uno strumento da riga di comando disponibile da Sysinternals. Viene utilizzato per mostrare quali file in una cartella utilizzano stream oltre gli stream di dati predefiniti. Lo screenshot qui sotto mostra che il file test.txt ha uno stream alternativo denominato “secret” che ha una dimensione di 86 byte. Da notare che questo è molto più dei 26 byte mostrati dal comando Dir nell'esempio precedente.
Dir /R
L'opzione Dir /R è disponibile da Windows Server 2003. Come mostrato di seguito, il nostro file 'test.txt' appare due volte quando si utilizza l'opzione Dir /R. Mostra anche la dimensione corretta del file sia per il flusso di file predefinito che per quello segreto.
PowerShell
È possibile utilizzare anche PowerShell per identificare gli stream di dati alternativi in un file. Nell'esempio sottostante, abbiamo usato il comando Get-Item con l'opzione Stream e il parametro jolly. L'output mostra entrambi gli stream per il nostro file; la freccia evidenzia la visualizzazione dello stream alternativo.
È possibile utilizzare anche PowerShell per cancellare uno stream NTFS. Nello screenshot qui sotto, abbiamo usato il comando clear-content per eliminare i dati associati allo stream dei dati segreti. Eseguendo subito dopo il comando get-item si conferma che i dati nello stream sono stati cancellati, poiché la dimensione del file è ora zero.
Possiamo fare ancora meglio e cancellare completamente lo stream utilizzando il comando remove-item, come mostrato di seguito. Il comando get-item conferma che lo stream è stato eliminato.
Come difendersi dalla minaccia ADS
Gli avversari possono e sfruttano gli ADS per nascondere contenuti dannosi, inclusi ransomware e altri malware, nella vostra struttura gerarchica di file. Sfortunatamente, Windows File Explorer, il comando Dir e strumenti correlati forniscono informazioni solo sul flusso di dati predefinito di un file. La verità è che un semplice file .txt o un documento Word che segnala 1k di dati potrebbe in realtà contenere megabyte di dati nascosti o codice eseguibile in un ADS.
Di conseguenza, quando si elabora la propria strategia di gestione della sicurezza, è necessario migliorare la visibilità negli ADS. In particolare, prendere in considerazione l'investimento in prodotti antivirus, strumenti di scoperta dei dati e rilevatori di esfiltrazione dei dati che possono rilevare l'esistenza di flussi di dati alternativi e scansionare alla ricerca di contenuti non autorizzati in modo da poterli rimuovere proattivamente. Dopo tutto, la prevenzione degli incidenti è sempre meglio della risposta agli incidenti.
Migliori pratiche per la gestione dei permessi NTFS
Scopri di piùCondividi su
Scopri di più
Informazioni sull'autore
Joe Dibley
Ricercatore di sicurezza
Ricercatore di sicurezza presso Netwrix e membro del Netwrix Security Research Team. Joe è un esperto in Active Directory, Windows e una vasta gamma di piattaforme software aziendali e tecnologie, Joe ricerca nuovi rischi per la sicurezza, tecniche di attacco complesse e relative mitigazioni e rilevamenti.
Scopri di più su questo argomento
Leggi sulla Privacy dei Dati per Stato: Diversi Approcci alla Protezione della Privacy
Cos'è la gestione dei documenti elettronici?
Espressioni regolari per principianti: Come iniziare a scoprire dati sensibili
Condivisione esterna in SharePoint: Consigli per un'implementazione oculata
Fiducie in Active Directory