Magic Quadrant™ per la gestione degli accessi privilegiati 2025: Netwrix riconosciuta per il quarto anno consecutivo. Scarica il report.

Piattaforma
Centro risorseBlog
Perché gli NTFS Alternate Data Streams rappresentano una vulnerabilità di sicurezza

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.

Image

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.

Image

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.

Image

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.

Image

È 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.

Image

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.

Image

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

Asset Not Found

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.