Le vulnerabilità esposte dagli Alternate Data Streams in NTFS

Senza saperlo tutti utilizziamo i file stream NTFS ogni volte che accediamo ad un file su un sistema operativo Windows moderno.
In questo articolo vedremo:

  • che cosa sono gli NTFS ADS
  • come un hacker può effettuare un exploit sfruttando gli ADS
  • quali sono le strategie per proteggersi da questa potenziale vulnerabilità

TL;DR

Gli alternate data streams permettono di nascondere qualsiasi contenuto, inclusi viruses, malwares, in qualsiasi file. Un file di testo in formato .txt da 2Kb può contenere anche 5Mb di alternate data streams e per esplora risorse di Windows occuperà sempre 2Kb.

È molto importante utilizzare dei software di sicurezza in grado di controllare eventuali codici malevoli nascosti negli ADS.

NTFS Default Data Streams e Alternate Data Streams

Un file stream è una sequenza di bytes che contiene le informazioni di un file, come le parole chiave o i dati dell'utente che l'ha creato.
Si può pensare al data stream come ad un file "nascosto" integrato in un altro file.
Ogni stream ha la sua allocazione di spazio su disco, la sua dimensione (bytes utilizzati) e i suoi locks.

Ogni file in un filesystem NTFS ha necessariamente almeno uno stream, chiamato default stream.
Il default data stream è il contenuto che ci interessa direttamente, quello a cui accediamo. Per esempio il testo di un file .txt o il codice eseguibile di un file .exe. Questa informazione è memorizzata nell'attributo $Data. Poichè questo è lo stream predefinito e il suo nome è vuoto, spesso ci si riferisce ad esso chiamandolo "unnamed data stream".

I file in un filesystem NTFS possono includere anche due o più data streams (ADSs). Gli ADS devono avere un nome. Il default data stream rimane invariato anche se si aggiungono altri data streams.

Come creare un Alternate Data Stream

Creare un alternate data stream è facilissimo: basta aggiungere un "due punti" (":") al nome del file, seguito dal nome del data stream. Poichè i due punti non sono permessi nel nome del file, non interferirà col nome del file esistente.

Si possono create quanti ADSs si vuole per un file. Per esempio potremmo creare i seguenti ADSs per un file di testo:

PippoBowie.txt:stream2
PippoBowie.txt:datisegreti

I vantaggi degli NTFS file streams

Anche se le vecchie versioni di Windows che utilizzavano i file systems FAT16 e FAT32 non supportavano i multiple datastreams, gli ADS non sono una nuova tecnologia. Essi sono stati introdotti nelle prime versioni di Windows NT contestualmente all'introduzione del file system NTFS.
Grazie agli ADS è stato possibile permettere a Windows Server di condividere i dati anche con Apple Macintosh senza perdere le proprietà dei file trasferiti.

I data streams vengono utilizzati anche per esempio per la gestione degli archivi, dai software di backup per conservare le informazioni delle revisioni, da alcuni browsers per memorizzare informazioni riguardanti la provenienza dei file scaricati.

Il lato oscuro degli ADS

Gli ADS possono essere utilizzati dagli hackers per scopi illeciti come attacchi malware. Come uno scomparto segreto in una valigia per nascondere qualcosa dalle guardi, gli ADS possono essere utilizzati per nascondere codice malevolo ed eseguire attacchi bypassando le verifiche di sicurezza di base.

Un ADS può contenere qualsiasi tipo di dato, inclusi video, audio, immagini o codice malevolo come viruses, trojans e ransomwares. Poichè gli alternate data streams sono nascosti, l'utente non riesce a rilevarli guardando il contenuto di una cartella.

Strumenti per lavorare con gli NTFS Alternate Data Streams

Ci sono vari strumenti per lavorare nativamente con gli NTFS Alternate Data Streams, tra questi annoveriamo:

  • echo e more
  • la utility per i data streams Sysinternals
  • l'opzione /R del comando dir
  • PowerShell che include 6 cmdlets per manipolare gli ADS

Echo e More

Iniziamo da echo e altri. Nell'esempio sottostante, il comando "More" è utilizzato per concatenare ":datisegreti" al file di testo chiamato PippoBowie.txt, mentre il comando "echo" è utilizzato per scrivere un messaggio segreto che non può essere visto normalmente. Si può notare inoltre che il comando "dir" non mostra lo stream NTFS segreto.

Streams

Streams è uno strumento in linea di comando sviluppato da Sysinternals. È utilizzato per mostrare tutti gli streams presenti oltre a quello default. Lo screenshot sottostante mostra che il file "PippoBowie.txt" ha un alternate stream chiamato "datisegreti" che ha una dimensione di 21 bytes. Si noti che la dimensione del file è diversa da quella del paragrafo precedente.

Dir /R

Il comando "Dir /R" è disponibile da Windows Server 2003. Come mostrato qui sotto, il file "PippoBowie.txt" appare due volte quando si usa l'opzione "/R". Mostra anche la dimesione corretta sia per lo stream default che per quello segreto.

PowerShell

È anche possibile utilizzare PowerShell per individuare gli eventuali alternate data streams in un file. Nell'esempio sottostante è stato utilizzato il comando "Get-Item" con l'opzione "Stream" e il parametro wildcard. Il risultato mostra entrami gli streams presenti nel file.

È altresì possibile utilizzare PowerShell per eliminare uno stream NTFS. Nello screenshot sottostante è stato utilizzato il comando "clear-content" per eliminare i dati associati allo stream "datisegreti". Lanciando il comando "get-items" subito dopo è possibile verificarne la corretta eliminazione.

Questa procedura svuota il data stream senza eliminarlo.

Possiamo anche eliminare completamente il data stream utilizzando il comando "remove-item". Il successivo lancio del comando "get-item" ne dimostra la corretta eliminazione.

Come difendersi dai rischi legati agli Alternate Data Streams

Un malintenzionato può sfruttare gli ADS per nascondere contenuti malevoli, inclusi ransomwares e altri malwares, all'interno della struttura gerarchica del file. Sfortunatamente "Esplora risorse" di Windows ci mostrerà soltanto le informazioni dello stream default. Di fatto un file .txt o Word di dimensione apparente di 1k può in realtà includere megabytes di dati nascosti negli alternate data streams.

Quando si impostano i sistemi di sicurezza aziendali è importante gestire la visibilità degli ADS. I software anti-virus, di analisi dati e prevenzione della diffusione e dispersione dei dati devono essere in grado di rilevare l'esistenta degli ADS e scansionare eventuali contenuti malevoli in modo da poterli rimuovere subito.
Come sempre è meglio prevenire che dover reagire ad un incidente.

autoreGianmarco Bonan  -  02/11/2024  -  Cybersecurity  -  cybersecurity / windows

Richiedi subito un'analisi gratuita da parte di un nostro tecnico commerciale al numero 015.8853347 

oppure

logo_footer

Contatti

Via San Defendente 3, 13864 Crevacuore (BI) - Italia

+39 015.8853347
info@tesseractechnologies.com

Lunedì - Venerdì: dalle 9.00 alle 12.00 e dalle 14.00 alle 17.00

Sviluppato con 💪 da Silver srl IT02583190026 - Tutti i diritti sono riservati.