windows

¿Qué son estos atributos extendidos (EA)en los archivos de Windows 8?

Cuando ejecuto CheckDisk en un volumen de Windows 8 Consumer Preview,obtengo:

> chkdsk /v S:
The type of the file system is NTFS.
Volume label is Windows 8.

WARNING!  F parameter not specified.
Running CHKDSK in read-only mode.

CHKDSK is verifying files (stage 1 of 3)...
  91392 file records processed.
File verification completed.
  28 large file records processed.
  0 bad file records processed.
  20224 EA records processed.                 <------------------ huh??

¿Por qué hay tantos atributos extendidos en el volumen? Pensaba que ya nadie utilizaba los EA...


Edit:

Como ejemplo, el archivo \Windows\CSC\v2.0.6 tiene un atributo extendido que contiene la cadena

Ԡ 1X C8A05BC0-3FA8-49E9-8148-61EE14A67687.CSC.DATABASE P X Չ: Չ: ˌΦ]cᑡPcďŠ 4 C8A05BC0-3FA8-49E9-8148-61EE14A67687.CSC.DATABASEEX1 P X _, N0t 08 C8A05BC0-3FA8-49E9-8148-61EE14A67687.CSC.EPOCHEA 8 ͌Φ]cᑡPcďŠ }

que (gracias a una respuesta más abajo)parece estar relacionado con el almacenamiento en caché del lado del cliente de los archivos sin conexión.

Sin embargo,parece que la mayoría de los otros EAs son diferentes --por ejemplo,el archivo

\Program Files\WindowsApps  
    \Microsoft.BingFinance_1.0.1022.0_x64__8wekyb3d8bbwe\pages\ETF\js\ETF.js

y la mayoría de los otros archivos contienen (principalmente) la cadena $KERNEL.PURGE.APPXFICACHE , que no parece estar relacionada. ¿Para qué puede ser esto?


Basado en el nombre de EA "CSC.DATABASE", uno podría suponer que está relacionado con el almacenamiento en caché del lado del cliente . Eso también explicaría por qué hay tantos, ya que cada archivo almacenado en caché probablemente los tenga para identificarlos con el servidor.

Además,no creo que los EA se utilicen especialmente poco.Sé con certeza que son utilizados,por ejemplo,por IE para identificar un archivo como "descargado de la web" (lo que hace que el Explorador de Windows pregunte antes de ejecutar el archivo y esas cosas).




Los atributos extendidos SE UTILIZAN en Windows,incluso por el kernel,que los utiliza para rastrear varias restricciones de seguridad y hacerlas cumplir.

See https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/kernel-extended-attributes

En particular,el diario USN de NTFS podrá realizar un seguimiento seguro de los cambios realizados en los archivos,de modo que las instantáneas del sistema de archivos o la recuperación del sistema de archivos después de un cierre brutal inesperado (causado por la pérdida de energía,el sobrecalentamiento o el BSOD y los reinicios)sean fiables.Se trata de registros cortos asegurados que se añaden en pequeños flujos de EA (generalmente se almacenan ellos mismos dentro del registro MFT sin asignar ninguna extensión adicional,a menos que el registro MFT sea demasiado pequeño para que quepan todos los flujos,en cuyo caso se insertarán en extensiones NTFS separadas asignadas para atributos "no residentes" que no caben en el registro MFT de tamaño fijo,que es generalmente pequeño y de aproximadamente 1KB,pero en el que SIEMPRE caben algunos atributos de archivo,incluyendo los atributos básicos,y el atributo especial que contiene el mapa de extensiones asignadas para flujos que exceden la capacidad,como el flujo por defecto "$DATA" para contenidos de archivos regulares,o índices para directorios;el flujo que cabe en el registro MFT depende del tamaño del registro MFT,que puede ajustarse al formatear el volumen MFT,pero que generalmente es de 1KB,es decir,más pequeño que los "clusters" del regulador.es decir,más pequeño que los "clusters" del regulador utilizados para asignar espacio a los extents)

Algunos atributos extendidos gestionados por el kernel son:

  • "$KERNEL.PURGE.ESBCACHE": al parecer, esto lo utiliza "Branch Cache" para facilitar la implementación y las actualizaciones del sistema en hosts administrados de forma remota, lo que permite que los dominios apliquen sus propias políticas (en lugar de las políticas locales predeterminadas o las políticas definidas de forma predeterminada por Microsoft en Windows).

  • "$KERNEL.PURGE.SEC.FILEHASH": contiene un hash de archivo sólido (y el algoritmo hash utilizado) del contenido del archivo: esto permite que la recuperación del sistema de archivos detecte daños en el contenido.

  • "$KERNEL.PURGE.SEC.CODEINTEGRITY": este pequeño EA contiene las banderas de la política de integridad del código

  • "$KERNEL.SMARTLOCKER.ORIGINCLAIM": realiza un seguimiento seguro de la aplicación que creó el archivo (es decir, la ruta de su instalador o paquete MSI que contiene firmas de referencia)

  • "$CI.CATALOGHINT": contiene el nombre de un archivo *.cat seguro en los catálogos de Windows para el paquete que contiene una fuente para ese archivo. Herramientas como "SFC /SCANNOW" o "DISM /Online Cleanup-Image ScanHealth" pueden inspeccionarlos y, con la ayuda de los EA anteriores, podrá identificar de forma segura el paquete original que contiene el archivo desde el que se instaló ( si es necesario, Windows Update podrá encontrar, descargar y reinstalar una copia de estos paquetes).

  • NO CONFUNDIR los dos últimos EAs,con el "Zone.Identifier" que IE (u otros navegadores web para Windows)añaden a los archivos que se descargan de la web,o que los unarchivers añaden a los archivos que se extraen de un archivo ZIP o gabinete descargado (u otros formatos de archivo),copiándolo del "Zone-Identifier" del propio archivo/gabinete:estos no son EAs,se almacenan como "Alternate Data Streams" (ADS's)que son atributos de tipo "$DATA" (como el contenido regular del archivo,excepto que este $DATA tiene un nombre no vacío,mientras que el contenido regular del archivo tiene un nombre vacío);además,estos ADS sólo existen si se almacenan en NTFS o sistemas de archivos compatibles,y NO son comprobados por el kernel,sino por la interfaz de usuario (principalmente en el Explorador de archivos)y no siempre se conservan cuando se copian en otro lugar (e.Por ejemplo,cuando se mueven estos archivos etiquetados a un archivo ZIP).Estos ADSs son muy débiles,no son tan fuertes como los EAs u otros sistemas de firmas (como los catálogos seguros externos,o las firmas Authenticode dentro de los archivos ejecutables,o algunos formatos de medios que permiten firmas similares dentro del contenido regular del archivo;para asegurar el sistema,el kernel no necesita y utiliza estos ADSs heredados,utiliza Authenticode,y catálogos seguros de otra manera,por ejemplo en la base de datos de Drivers o en los catálogos de Windows como WinSxS).Los flujos de datos alternativos están obsoletos,pero se siguen utilizando en los navegadores web sólo para ese propósito,como una pista para los usuarios,pero no resisten las operaciones básicas que los usuarios pueden seguir haciendo,incluyendo eludir la alerta que les mostraría el Explorer (pero no siempre,ya que a menudo no se conservan).Además,los navegadores web pueden no añadir necesariamente estos ADS "Zone.identifier",si los archivos descargados utilizan un mecanismo de firma más fuerte,o si son descargados por un servicio especializado en segundo plano (como el propio Windows Update que utiliza catálogos firmados de forma segura).

Dependiendo de las herramientas y las características del sistema operativo que utilice,o con algunos controladores,puede tener otros EAs definidos.Muchas herramientas de seguridad y antimalware añaden sus propios EAs a varios archivos o directorios (ayudando también a estas herramientas a escanear los cambios de forma más eficiente).

Si utiliza la tienda de Microsoft,o las herramientas de despliegue de AppX en Windows,también habrá EAs adicionales para configurar el entorno virtual en el que se ejecutarán (por ejemplo configuraciones globales por máquina,o por dominio,o por usuario,o por "identidad" en línea,dependiendo del servicio remoto que vaya a utilizar o con el que se vaya a comunicar,copia en escritura o duplicación completa,escrituras retrasadas o sincronizadas,opciones o políticas de compartición,licencias concedidas y derechos de uso,rastreadores para opciones de suscripción/pago en servicios en línea;algunas aplicaciones también las utilizan como las cookies de seguimiento de las páginas web y almacenan identificadores personales o preferencias específicas para algunos contenidos de archivos o aplicaciones,y son capaces de sincronizarlos con los perfiles personales en línea,de modo que se pueden utilizar estas aplicaciones fuera de línea,al menos durante un período de tiempo determinado...).

Si utilizas algunos servicios en la nube (no sólo los de Microsoft),también pueden sincronizar una copia local para los archivos que más utilizas localmente,al tiempo que permiten archivar los archivos en línea o sincronizarlos con otros dispositivos).

Generalmente los EAs son muy pequeños (unos 100 bytes más o menos para la mayoría de ellos).Cualquier archivo en NTFS/ReFS (y otros sistemas de archivos compatibles)puede tener muchos EAs adjuntos para muchas aplicaciones diferentes.La forma en que estos EAs se codifican individualmente depende de la aplicación.Los EAs tienen sus propios nombres (como los archivos regulares en directorios visibles,y como los flujos ADS),excepto que estos nombres no están pensados para ser leídos por humanos;por lo que estos nombres son "técnicos" y no utilizan Unicode.Algunos prefijos de nombres de EA están reservados por Microsoft en los sistemas de archivos de Windows.

El hecho de que estos EAs residan o no en la MFT (de los sistemas de archivos NTFS o ReFS)depende de cuántos estén presentes para un archivo determinado.Si no caben en el registro de la MFT,NTFS asignará algunos extents para ubicarlos en otro lugar del volumen.La lista de EAs definida para un archivo es uno de sus flujos,al igual que los atributos estándar,o los atributos de seguridad (ACLs)o el contenido regular,o flujos adicionales (como el flujo que rastrea que un archivo fue descargado de la red y puede ser inseguro,puede rastrear su dominio web o IP de origen,y si ese dominio fue accedido con un protocolo seguro como HTTPS:esto permite que Windows muestre ventanas emergentes de autorización para el usuario,o que pida permiso de elevación al usuario;los archivos ZIP/CAB tienen ese flujo,añadido por los navegadores web y los descargadores seguros;y las herramientas de extracción de zip también propagarán ese stram en cada archivo extraído si puede ser ejecutable o tener efectos secundarios,incluyendo archivos HTML,fuentes,Javascripts,archivos multimedia,o documentos de oficina,que serán abiertos por defecto en modo seguro por las aplicaciones que los utilicen y que alertarán al usuario de que algunos componentes incrustados como scripts o fuentes pueden ser inseguros)Es cierto que algunos EAs fueron diseñados para proporcionar compatibilidad con OS/2 o MacOS (sólo estos EAs están obsoletos),pero todavía hay otros sistemas añadidos y que los utilizan.Y los nuevos sistemas de seguridad (incluso en el propio Windows en su kernel o en sus servicios y características)añaden constantemente otros nuevos.

Los EA son una característica clave de NTFS (y ReFS).También existen en otros sistemas de archivos que no son de Windows (incluyendo Ext4 en Linux);para algunos sistemas de archivos que no tienen soporte nativo para ellos,pueden ser almacenados en un subdirectorio separado o en archivos con nombres especiales.Los EAs normalmente no se muestran en el contenido de los directorios (para los sistemas de archivos que los implementan)y no cuentan en el tamaño de los archivos regulares,por lo que pueden ser añadidos/eliminados fácilmente sin alterar el contenido regular;también permiten que diferentes aplicaciones,servicios o sistemas operativos interoperen con los mismos archivos asociando de forma segura sus propios metadatos.Por lo tanto,son extensiones seguras de los sistemas de archivos existentes (la mayoría de las veces las aplicaciones no tienen que preocuparse por ellos,el sistema operativo o sus servicios los gestionarán,la mayoría de las veces por razones de seguridad e inspección)

Los EAs definitivamente no están en desuso.De hecho,hoy en día se utilizan con mucha más frecuencia,y tienen muchas variantes creadas por las muchas soluciones de seguridad desarrolladas (si te fijas en Windows 11,utiliza más de ellos;si usas los servicios de Azure,o te unes a un dominio de AD,habrá EAs adicionales,si usas varias herramientas de seguridad,no sólo las de Microsoft,añadirán las suyas propias,algunas aplicaciones también las usan para almacenar rastreadores de derechos DRM en tus medios comprados,junto con las claves de descifrado si son necesarias,además de contadores firmados de forma segura de los dispositivos en los que fueron autorizados,necesitas entrar en los servicios para actualizar estas firmas o eliminar un dispositivo y sus autorizaciones;Los EAs tienen un montón de usos posibles,no sólo para la seguridad,sino también para optimizar el rendimiento mediante la inclusión de pistas de procesamiento y trazas o estadísticas específicas para un uso determinado;también pueden ser utilizados para el seguimiento de las copias de seguridad y las réplicas/espejos,mejor que el único bit de legado "ARCHIVE";los EAs tienen sus propios nombres distintivos y están creando una especie de sistema de archivos "paralelo",excepto que son generalmente opcionales y sólo los archivos o directorios apropiados que los necesiten obtendrán esos EAs).El interés de colocar los EAs en el núcleo de la estructura NTFS/ReFS es que su colocación es ideal en lugar de utilizar un almacén separado en otro lugar de los volúmenes (esto sería más lento,especialmente cuando se trabaja con sistemas de archivos de red o discos duros y matrices de discos,debido al tiempo de acceso:Los EAs pueden ser recuperados muy rápidamente al mismo tiempo que se cargan los atributos básicos de los archivos;y son más fáciles de añadir/eliminar dinámicamente)