Esta propiedad provoca que un mismo recurso tenga varios identificadores y puede sacarse provecho para ocultar ficheros en NTFS. EL formato es conocido como Alternate Data Stream ADS.
Mejor, veamoslo con un ejemplo.
La sintaxis de un ADS es sencilla. Para crear un ADS asociado con un fichero, basta con añadir el carácter dos puntos ":" al nombre del fichero, por ejemplo:
Creamos un fichero de texto:
C:\Users\Usuario\ADS>echo "Fichero de texto" > file.txt
C:\Users\Usuario\ADS>dir
El volumen de la unidad C no tiene etiqueta.
13/12/2011 11:00 <DIR> .
13/12/2011 11:00 <DIR> ..
13/12/2011 11:00 21 file.txt
1 archivos 21 bytes
2 dirs 367.935.696.896 bytes libres
C:\Users\Usuario\ADS>type file.txt
"Fichero de texto"
Ahora utilizando la sintaxis apropiada creamos un fichero ADS:
C:\Users\Usuario\ADS>echo "Texto oculto" > file.txt:hidden
Comprobamos como, aparentemente nada ha cambiado:
C:\Users\Usuario\ADS>dir
El volumen de la unidad C no tiene etiqueta.
Directorio de C:\Users\Usuario\ADS
13/12/2011 11:00 <DIR> .
13/12/2011 11:00 <DIR> ..
13/12/2011 11:01 21 file.txt
1 archivos 21 bytes
2 dirs 367.935.696.896 bytes libres
C:\Users\Usuario\ADS>type file.txt
"Fichero de texto"
El fichero no existe con estructura como tal ....
C:\Users\Usuario\ADS>type file.txt:hidden
El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del volumen no son correctos.
... pero podemos extraer el stream por ejemplo, haciendo uso de la redirección hacia el comando more:
C:\Users\Usuario\ADS> more < file.txt:hidden
"Texto oculto"
Como vemos, hemos podido "asociar" un stream a un fichero de modo que aparentemente sólo sea visible el fichero "file.txt" pero asociado a él existe el stream oculto "file.txt:hidden" con su propio contenido. Obsérvese que el tamaño del fichero no cambia ya que realmente sigue siendo el mismo. De hecho son independientes, es sólo una forma de demostrar que añadiendo los dos puntos ":" asociamos el data stream al mismo y será invisible en un listado usual. Esta propiedad de los sistemas de ficheros NTFS contituye en cierto modo un riesgo de seguridad al permitir ocultar al usuario contenidos, permitiéndose incluso insertar de forma silenciosa archivos ejecutables.
Afinando un poco, podemos listar y encontrar ADS usando la opción /R del comando DIR en windows:
C:\Users\Usuario\ADS> help DIR
Muestra la lista de subdirectorios y archivos de un directorio.
DIR [unidad:][ruta][archivo] [/A[[:]atributos]] [/B] [/C] [/D] [/L] [/N]
[/O[:]orden]] [/P] [/Q] [/R] [/S] [/T[[:]fecha]] [/W] [/X] [/4]
...
..
/R Muestra las secuencias alternativas de datos del archivo.
..
De este modo, entonces:
C:\Users\Usuario\ADS>dir /R
El volumen de la unidad C no tiene etiqueta.
Directorio de C:\Users\Usuario\ADS
13/12/2011 11:00 <DIR> .
13/12/2011 11:00 <DIR> ..
13/12/2011 11:01 21 file.txt
13/12/2011 11:01 6.002 file.txt:hidden:$DATA
Existen varias herramientas para buscar y detectar cómodamente ficheros ADS. Por ejemplo Nirsoft, proporciona el programa AlternateDatastreamView que nos permite de forma muy sencilla escanear el disco en busca de este tipo de archivos:
Mas info: