¿Por qué diablos NTFS permite ejecutables invisibles?

105

Puede ocultar cualquier archivo dentro de otro archivo simplemente escribiendo:

type sol.exe > container.txt:sol.exe

y para ejecutar el archivo oculto solo use:

start c:\hide\container.txt:sol.exe

Pero la parte loca de esto es que no aumenta el tamaño del archivo (por lo que está totalmente oculto).

Y si elimina el archivo con las cosas ocultas dentro, las cosas ocultas no se eliminan. Solo usa:

more <  container.txt:sol.exe > sol.exe

¿Por qué NTFS permite esto? Parece la mejor manera de ocultar un virus.

Kredns
fuente
1
bien, parece que mac resourceforks.
Stefano Borini
15
peor aún, cuando inicia sol.exe así, el administrador de tareas muestra el nombre del proceso como container.txt
hasen
16
Deberíamos bombardear google para que "aterrador" nos lleve a esta pregunta
hasen
44
Mientras esto haya existido, todavía es sorprendente encontrarse ocasionalmente con desarrolladores AV / otras personas que trabajan mucho con el sistema de archivos que TODAVÍA no lo conocen. No espero que el desarrollador de aplicaciones promedio lo sepa, ya que no es necesario, pero si te gustan mucho las cosas del sistema de archivos ... :-)
Brian Knoblauch
Supuestamente, también puede adjuntar un ADS a una carpeta. Puede eliminar los ADS eliminando la carpeta, pero cuando la carpeta es la raíz de su unidad, no puede eliminar su unidad C: por ejemplo, sin volver a formatear la unidad. Me parece un mecanismo para crear un virus rootkit oculto (?).
HighTechGeek

Respuestas:

98

Hay dos lados en esta pregunta. La primera es por qué existe esta característica, y la segunda es por qué la GUI (o el símbolo del sistema) no hace que sea más fácil verla y administrarla.

Existe porque es útil. Varias otras plataformas admiten múltiples flujos de datos por archivo. En la Mac, se llamaban tenedores , por ejemplo. Estoy razonablemente seguro de que existían cosas similares en el mundo del mainframe, pero hoy no puedo poner mis dedos en ningún ejemplo explícito.

En Windows moderno, se utiliza para mantener atributos adicionales para un archivo. Puede notar que el cuadro Propiedades disponible en el Explorador de Windows tiene una pestaña Resumen que en Vista simple (estoy en Windows XP, su kilometraje será diferente en los otros sabores) incluye un montón de campos útiles como Título, Asunto, Autor y etc. Esos datos se almacenan en una secuencia alternativa, en lugar de crear algún tipo de base de datos lateral para contener todo lo que se separaría del archivo con demasiada facilidad.

También se usa una secuencia alternativa para contener el marcador que dice que el archivo proviene de una fuente de red no confiable que aplica tanto Internet Explorer como Firefox en las descargas.

La pregunta difícil es por qué no hay una mejor interfaz de usuario para darse cuenta de que las transmisiones existen en absoluto, y por qué es posible poner contenido ejecutable en ellas y, peor aún, ejecutarlo más tarde. Si hay un error y un riesgo de seguridad aquí, este es el problema.

Editar:

Inspirado por un comentario a otra respuesta, aquí hay una forma de averiguar si su protección antivirus y / o antimalware tiene conocimiento de transmisiones alternativas.

Obtenga una copia del archivo de prueba EICAR . Son 68 bytes de texto ASCII que también es un ejecutable x86 válido. Aunque es completamente inofensivo, la industria antivirus ha acordado que se detecte como si fuera un virus real. Los creadores pensaron que probar el software AV con un virus real sería demasiado parecido a probar la alarma de incendio encendiendo la papelera en llamas ...

El archivo EICAR es:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Guárdelo con la extensión .COMy se ejecutará (a menos que su AV esté prestando atención) e imprima un saludo.

Sería informativo guardarlo en un flujo de datos alternativo y ejecutar un escaneo ...

RBerteig
fuente
11
Por diseño, el tamaño del archivo que se muestra solo muestra el tamaño del flujo principal de $ DATA. Esto también es lo que generalmente quieres. Tampoco incluye la longitud del nombre del archivo (que es un tipo de metadatos) en el tamaño del archivo. En cuanto a ser un riesgo de seguridad. Los ADS no son más riesgosos que cualquier archivo individual. No he oído hablar de ningún malware que se haya propagado / ocultado con éxito con esos mecanismos.
Joey
44
No puede ejecutar accidentalmente un ejecutable almacenado en un ADS de un archivo de texto. Está bien oculto, demasiado bien oculto para que un usuario común lo ejecute accidentalmente. Tendría que comprometerse primero.
R. Martinho Fernandes
77
@ashh: Martinho lo clava: la oscuridad que hace que sea difícil encontrar un ejecutable en una secuencia de este tipo también dificulta la ejecución de uno sin intentarlo activamente. Compare esto con, digamos, todo el fiasco de "extensiones de archivo ocultas", donde los archivos ejecutables podrían parecer, digamos, archivos de texto en la GUI ... y aún así ejecutarse muy fácilmente.
Shog9
3
Suponiendo que tiene un AV que al menos está prestando atención en tiempo real al archivo .COM, no podrá adjuntarlo como ADS ya que el AV le impediría acceder al archivo .COM (adjuntarlo como ADS requiere uno para acceder al archivo archivo). Sin embargo, debe poder adjuntar un archivo de texto con la cadena EICAR y nombrarlo con una extensión .COM dentro del ADS. es decir, escriba EICAR.txt> test.txt: EICAR.COM
KTC
2
Dato curioso sobre el archivo EICAR.COM: no se ejecutará en ninguna versión de Windows de 64 bits, así que supongo que este truco ya no funcionará una vez que todos estén en máquinas de 64 bits (lo que probablemente todavía sea ​​un tiempo).
Kredns
15

Esta característica es necesaria para una función multiplataforma de Windows Server: servicios para mac.

Esto permite que un servidor de Windows que se ejecuta en NTFS comparta con Mac a través de AFP. Para que esta característica funcione, el sistema de archivos NTFS debe ser compatible con las bifurcaciones, y lo ha hecho desde el primer día.

Y antes de preguntar, ¿esta característica todavía se usa? Sí, lo tengo ejecutándose y en uso a diario en un servidor en un cliente que soporto.

El principal problema de seguridad se produce cuando las personas y las aplicaciones olvidan o no se dan cuenta de que está allí.

Sin embargo, probablemente debería haber una opción para incluir los tenedores en el tamaño total del archivo o mostrarlos en el explorador de Windows.

Bruce McLeod
fuente
2
Si va a rechazar el voto, deje un comentario sobre por qué.
Bruce McLeod
2
Esto suena como una razón completamente plausible para que la característica exista en primer lugar.
RBerteig
3
Agregar esta función simplemente para permitir el intercambio de archivos para Mac no parece una razón plausible. Compartir a través de la red no requiere que el archivo se almacene intacto en el lado del servidor. He visto varios servidores de intercambio de manzanas * nix que dividen el archivo en información de datos y recursos. Esto es transparente para el cliente. Cambiar el formato de unidad real solo para permitir AFP no parece realista. Podría ser un buen beneficio, pero no como la RAZÓN de esta característica.
Simurr
2
Sí, estoy pensando [cita requerida] si vas a afirmar que SfM es la razón principal por la que MS implementó ADSes en NTFS.
Afrazier
3
Cita encontrada: ... Las capacidades de ADS se concibieron originalmente para permitir la compatibilidad con el Sistema de archivos jerárquico de Macintosh, HFS ; donde la información del archivo a veces se bifurca en recursos separados. Se han utilizado legítimamente flujos de datos alternativos por una variedad de programas, incluido el sistema operativo nativo de Windows para almacenar información de archivos como atributos y almacenamiento temporal. fuente: windowsecurity.com/articles/Alternate_Data_Streams.html
JamesBarnett
5

Me imagino que uno de los usos principales (tal vez incluso el uso previsto) sería permitir la adición transparente de cualquier tipo de metadatos a un archivo. La razón por la que el tamaño del archivo no cambia es que, en este escenario, no desea que el archivo se vea o se comporte de manera diferente, ya que la aplicación de origen se basa en algún aspecto de la apariencia del archivo.

Podría imaginar usos interesantes en IDEs, por ejemplo, donde a veces se involucran múltiples archivos para formar una sola unidad (archivo de código / archivo de formulario, etc.), que se puede adjuntar al archivo original de esta manera para que no puedan separarse accidentalmente.

También creo que hay un comando para encontrar todos esos 'archivos adjuntos' en un árbol de directorios dado, por lo que en realidad no están completamente ocultos. También me sorprendería si los mejores escáneres de virus no son conscientes de esto y comprueban estas áreas 'ocultas', pero puede verificarlo adjuntando deliberadamente un ejecutable infectado a un archivo de texto y ver si se detecta.

jerryjvl
fuente
¿Podría publicar un enlace a dicho ejecutable para que pueda intentarlo? ;)
R. Martinho Fernandes
Le sugiero que ejecute AVG en su máquina y luego tome uno de los ejecutables de la carpeta de cuarentena para probar;)
jerryjvl
2
@martinho, desea el archivo de prueba EICAR: X5O! P% @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE! $ H + H * Simplemente pegue ese texto (exactamente 68 bytes de texto ASCII, ver eicar.org/anti_virus_test_file.htm para toda la historia) en un archivo llamado con la extensión .COM. Se ejecutará e imprimirá un mensaje. A menos que su AV esté funcionando, por supuesto. Colóquelo en una secuencia de datos alternativa y verifique allí también.
RBerteig
@RBerteig: Hola genial ... no sabía que había tal cosa.
jerryjvl
@jerryjvl, como se suele decir, es mejor que probar la alarma de incendio por la iluminación del cesto de basura en llamas ...
RBerteig
5

Aquí hay un buen artículo sobre la posible vulnerabilidad de seguridad planteada por Alternate Data Streams .

JP Alioto
fuente
66
<nitpick> Es una vulnerabilidad, no una amenaza </nitpick>. Y no es tan importante como parece. Necesitas tener credenciales para usarlo.
romandas
No hay problema. Por cierto, revisa tu ortografía. Y recuerde siempre: las amenazas explotan las vulnerabilidades. Las amenazas son personas, por lo general, pero los desastres naturales y los hechos también cuentan.
romandas
@romandas, ¿qué credenciales necesitas tener? En casa, la mayoría de los usuarios de Windows (XP en particular) se ejecutan con privilegios de administrador, ¿por qué no es tan importante como parece?
Ash
@ashh, "con un método de ocultación ... en un sistema violado". El sistema ya debe estar comprometido en primer lugar para ocultar cualquier cosa, y de manera similar para ejecutar cualquier cosa oculta como esta.
KTC
5

Buena pregunta, no estaba al tanto de ADS hasta el año pasado y he sido desarrollador de Windows durante muchos años. Puedo garantizar que no estoy solo en esto.

Con respecto a la posibilidad de verificar datos alternativos en los archivos, encontré la pequeña herramienta útil llamada Lads disponible del software Frank Heyne. Puede enumerar ADS en todos los archivos en un directorio dado, incluso en archivos cifrados (y también dentro de subdirectorios).

Ceniza
fuente