Solución rápida: NTFS admite flujos de datos alternativos (ADS) — contenido secundario oculto adjunto a los archivos. Para listar los flujos: abra Terminal → dir /R en cualquier carpeta. Los flujos aparecen como nombrearchivo:nombreflujo:$DATA. Para inspeccionar: more < filename:streamname. Para eliminar un flujo: PowerShell Remove-Item -Stream streamname filename.
Los archivos NTFS pueden tener “flujos” adicionales más allá del contenido principal. El más común es el flujo Zone.Identifier que Windows usa para rastrear archivos descargados (la marca de “bloqueado”). Menos común pero más preocupante: el malware puede ocultar payloads en ADS. Inspeccionar los flujos revela qué está adjunto.
Afecta a: volúmenes NTFS de Windows 11 (y Windows 10).
Tiempo de solución: ~10 minutos.
Qué causa esto
NTFS admite múltiples flujos de datos por archivo. El flujo principal contiene el contenido normal del archivo; los flujos alternativos contienen datos adicionales invisibles para la mayoría de las aplicaciones. Windows usa un flujo (Zone.Identifier) por seguridad: etiqueta los archivos descargados con una zona numérica (0=confiable, 3=no confiable). Las aplicaciones respetan esta etiqueta (p. ej., Office muestra Vista protegida para archivos con Zona 3).
El malware a veces usa ADS para ocultar payloads dentro de archivos aparentemente inocentes. Inspeccionar los flujos es una habilidad de seguridad y forense.
Método 1: Listar flujos con dir /R
El descubrimiento más sencillo.
- Abra Terminal (no se necesitan permisos de administrador para leer).
- Navegue a la carpeta de interés:
cd C:\path\to\folder. - Ejecute:
dir /RLa salida lista cada archivo con los flujos que tenga debajo como nombrearchivo:nombreflujo:$DATA.
- Flujos comunes:
- Zone.Identifier: información de zona de descarga. Archivos marcados como “de internet.”
- encryptable: relacionado con BitLocker.
- Wof: Windows Overlay Filter (compresión).
- Flujos personalizados: específicos de la aplicación o posiblemente maliciosos.
- Leer un flujo:
more < filename:streamname. (Nota: los espacios requieren escape). - Para PowerShell:
Get-Item filename -Stream *. Lista los flujos con sus tamaños. - Para obtener el contenido del flujo:
Get-Content -Path filename -Stream streamname.
Este es el paso de diagnóstico.
Método 2: Usar la herramienta Streams de Sysinternals para una inspección profunda
Para obtener más detalle del que proporciona dir /R.
- Descargue Streams de Microsoft Sysinternals (gratis).
- Extraiga
streams64.exe(o streams.exe para 32 bits). - Ejecute como administrador:
streams64 -s C:\folder. El indicador-srecorre las subcarpetas de forma recursiva. - La salida muestra todos los flujos encontrados. Formato:
C:\folder\file.txt:Zone.Identifier:$DATA 26NombreArchivo:Flujo:$DATA seguido del tamaño en bytes.
- Para eliminar todos los flujos de un archivo:
streams64 -d filename. El indicador-delimina los flujos; el contenido principal del archivo se conserva. - Para eliminar los flujos Zone.Identifier de todos los archivos descargados:
streams64 -d -s C:\Users\me\Downloads. Desbloquea todos los archivos descargados a la vez.
La herramienta Streams es la utilidad de inspección canónica.
Método 3: Eliminar o desbloquear flujos
Para la eliminación de un flujo específico.
- Para Zone.Identifier (la marca de “archivo bloqueado”):
- Haga clic derecho en el archivo → Propiedades. Marque Desbloquear en la parte inferior. Haga clic en Aplicar.
- PowerShell:
Unblock-File -Path filename.
- Para todos los flujos de un archivo:
Remove-Item -Path filename -Stream *Elimina todos los flujos alternativos.
- Para eliminar un flujo específico:
Remove-Item -Path filename -Stream streamname - Para crear un flujo (prueba):
Set-Content -Path file.txt -Stream secret -Value "hidden content"El flujo secret ahora está adjunto a file.txt.
- Copiar un archivo a FAT32/exFAT (que no admiten flujos) elimina todos los flujos. Útil para limpiar archivos.
Este es el enfoque correcto para la gestión de flujos.
Cómo verificar que la solución funcionó
- Ejecute
dir /Ren la carpeta. Si eliminó flujos: solo aparecen las entradas del archivo principal (sin líneas Stream:$DATA). - Para la eliminación de Zone.Identifier: las Propiedades del archivo ya no muestran la casilla “Desbloquear”.
- Las aplicaciones de Office ya no muestran el banner de Vista protegida para el archivo.
Si nada de esto funciona
Si los flujos persisten o aparecen nuevos: Flujos en cuarentena del antivirus: algunos antivirus dejan datos forenses en ADS después de escanear. Los flujos pueden crearse durante los análisis del antivirus. Tolerar o deshabilitar el registro de flujos del antivirus. Para flujos relacionados con la sincronización: OneDrive, Dropbox y Box pueden usar ADS para metadatos. No los elimine — la sincronización en la nube podría romperse. Para software de copia de seguridad: las aplicaciones de copia de seguridad pueden almacenar metadatos en ADS. Eliminarlos rompe la integridad de la copia de seguridad. Para flujos misteriosos que reaparecen: algunas características de Windows (Archivos a petición, Optimización de entrega de Windows Update) gestionan ADS activamente. Consulte el Visor de eventos para ver las fuentes relacionadas. Para posible malware en ADS: Microsoft Defender sí analiza los flujos. Ejecute un análisis completo con Defender. Si sospecha: use el escáner de archivos de VirusTotal (suba el archivo a virustotal.com).
En resumen: dir /R muestra los flujos de datos alternativos. PowerShell Get-Item -Stream * para inspeccionar, Remove-Item -Stream * para limpiar. La herramienta Streams de Sysinternals para inspección y eliminación masiva.