Cambios en el sistema de archivos y en la pila de almacenamiento para restringir el acceso directo al disco y acceso de directo de volumen en Windows Vista y Windows Server 2008

INTRODUCCIÓN

Este artículo describe los cambios realizados al sistema de archivos y la pila de almacenamiento para restringir el acceso directo al disco y acceso de directo de volumen en Windows Server 2008 y Windows Vista.

Más información

Fondo

Cuando un programa abre un identificador de archivo exclusivo, el programa asume que el contenido del archivo no se puede modificar más. Sin embargo, el contenido del archivo puede modificarse si se cumplen las condiciones siguientes:
  • Otro programa abre el identificador del archivo al volumen subyacente o en el disco subyacente.
  • El programa realiza cambios en la ubicación donde reside el archivo.
Daños o inestabilidad del sistema puede producirse cuando un programa se escribe directamente en un volumen que se monta un sistema de archivos sin primero obtener acceso exclusivo al volumen. Esto es debido a que la escritura en el volumen entren en conflicto con las escrituras del sistema de archivos. Cuando se producen estos conflictos, el contenido del volumen puede quedar en un estado incoherente.

Para reducir el efecto de este problema, se realizaron cambios en el sistema de archivos y la pila de almacenamiento para restringir el acceso directo al disco o a un volumen.

Detalles del cambio para el sistema de archivos y la pila de almacenamiento

  • Un sistema de archivos puede escribir un controlador de volumen sólo si las condiciones siguientes son verdaderas:
    • Condición 1: los sectores que se están escribiendo en son sectores de arranque.

      Nota: Esta condición existe para admitir programas, como programas antivirus, programas de instalación y otros programas que tienen que actualizar el código de inicio del volumen del sistema. No se puede bloquear el volumen del sistema.
    • Condición 2: los sectores que se vayan a residir fuera del espacio del sistema de archivos.

      Nota: El área entre el final del espacio del sistema de archivos y el final del espacio del volumen no está bajo el control del sistema de archivos. Por lo tanto, no hay ninguna razón para requerir el volumen debe estar bloqueado para escribir en él.
    • Condición 3: el volumen se bloqueó implícitamente al solicitar acceso de escritura exclusivo.
    • Condición 4: el volumen ha bloqueado explícitamente solicitando una solicitud de bloqueo o a una petición de desmontaje.
    • Condición 5: la solicitud de escritura tiene una marca SL_FORCE_DIRECT_WRITE que indica que debe omitirse la condición 2.

      Nota: Existen filtros del sistema de archivo que escriben en el área de espacio libre de un volumen sin primera bloquear el volumen. Si los filtros del sistema de archivos tienen que hacerlo, los filtros del sistema de archivos pueden establecer una marcar en la solicitud de escritura que informa el sistema de archivos para permitir que la escritura se producen. Este indicador sólo puede establecerse en el modo de núcleo.
  • Los cambios en el sistema de archivos y la pila de almacenamiento no se aplican si el volumen no está montado o si el volumen no tiene ningún sistema de archivos.
  • El sistema de archivos UDF y el sistema de archivos FASTFAT limitan los cambios que se realizan en el sistema de archivos y a la pila de almacenamiento de información. Estos cambios están limitados a los medios del tipo de disco.

    Nota: La mayoría de los programas mastering CD escribiendo directamente en el volumen sin primera bloquear el volumen. Algunos programas mastering CD incluso omitir la capa del sistema de archivos. En estos casos, estos programas se escriben directamente en la capa de almacenamiento. Dado que el archivo de paginación sólo puede alojarse en unidades de disco, no hay ninguna razón para aplicar los cambios realizados al sistema de archivos y la pila de almacenamiento en unidades ópticas.
  • Los controladores de almacenamiento pueden escribir un controlador de disco si se cumplen las condiciones siguientes:
    • Condición 1: los sectores que se están escribiendo en no entran dentro de un volumen.

      Nota: Los programas utilizan los sectores que están fuera de los volúmenes para almacenar metadatos. Las tablas de partición también residen en los sectores que están fuera de los volúmenes. Como estos sectores no están bajo el control de cualquier sistema de archivos, no hay ninguna razón para bloquear el acceso a los sectores.
    • Condición 2: los sectores que se están escribiendo en caen dentro de un volumen montado que está bloqueado de forma explícita.
    • Condición 3: los sectores que se vayan a caer dentro de un volumen que no está montado o caída dentro de un volumen no tiene ningún sistema de archivos.
  • Los cambios en el sistema de archivos y la pila de almacenamiento también se aplicarán a los bloques de paridad de un volumen.
  • Se aplicarán los cambios al sistema de archivos y la pila de almacenamiento para sistemas de 32 bits y para sistemas de 64 bits.
Además de las diversas APIs WriteFile, hay solicitudes de control de dispositivo IO que pueden utilizarse para emitir escrituras a un volumen o en un disco. Los cambios en el sistema de archivos y la pila de almacenamiento también se aplicarán a las solicitudes de control de E/S de dispositivo. Las solicitudes de control de dispositivo IO incluyen los comandos siguientes:
  • IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES
  • IOCTL_SCSI_PASS_THROUGH
  • IOCTL_SCSI_PASS_THROUGH_DIRECT
  • SCSIOP_WRITE6
  • SCSIOP_WRITE
  • SCSIOP_WRITE_VERIFY
  • SCSIOP_WRITE_SAME
  • SCSIOP_WRITE_LONG

  • SCSIOP_XDWRITE
  • SCSIOP_XPWRITE
  • SCSIOP_XDWRITE_READ
  • SCSIOP_WRITE12
  • SCSIOP_WRITE_VERIFY12
  • SCSIOP_WRITE16
  • SCSIOP_WRITE_VERIFY16
  • SCSIOP_WRITE_SAME16
  • SCSIOP_WRITE_LONG16
  • SCSIOP_WRITE_XDWRITE_EXTENDED16
  • SCSIOP_WRITE_COPY
  • SCSIOP_WRITE_COPY_COMPARE
Se produce un error en el siguiente grupo de comandos porque están obsoletos:
  • IOCTL_ATA_PASS_THROUGH
  • IOCTL_ATA_PASS_THROUGH_DIRECT
  • IDE_COMMAND_WRITE
  • IDE_COMMAND_WRITE_DMA
  • IDE_COMMAND_WRITE_DMA_QUEUED
  • IDE_COMMAND_WRITE_MULTIPLE
  • IDE_COMMAND_WRITE_EXT
  • IDE_COMMAND_WRITE_DMA_EXT
  • IDE_COMMAND_WRITE_DMA_FUA_EXT
  • IDE_COMMAND_WRITE_DMA_QUEUED_EXT
  • IDE_COMMAND_WRITE_DMA_QUEUED_FUA_EXT
  • IDE_COMMAND_WRITE_MULTIPLE_EXT
  • IDE_COMMAND_WRITE_MULTIPLE_FUA_EXT
Para los comandos SCSI, no se filtran los comandos de escritura de 32 bytes porque hay sólo 16 bytes en el BDC. La xdwrite extendida, la copia y los comandos de comparación de copia erróneos.



Para los comandos ATA, el bit LBA se consulta para determinar si se ha especificado el desplazamiento en formato CHS o en formato LBA. Porque el sistema no puede obtener la geometría real, todas las solicitudes que se envían en formato CHS erróneos. No, esto debería ser un problema porque todos los discos actuales esperan que el desplazamiento es en formato LBA.

Factores atenuantes y problemas de compatibilidad del programa

Los cambios en el sistema de archivos y la pila de almacenamiento pueden hacer que algunos programas falle. Estos programas no porque utilizan el acceso directo al disco o al volumen.

El efecto sobre la compatibilidad de los programas será mínimo por las siguientes razones:
  • Programas de copia de seguridad deben desmontar el volumen antes de que se escriben en el volumen. De lo contrario, las escrituras de programa entra en conflicto con las escrituras del sistema de archivos. Dichos conflictos se producirá en daños o inestabilidad del sistema.
  • Programas de partición de destino tablas de partición que residen en los sectores que están fuera de las regiones de volumen. Sistemas de archivos no controlan dichos sectores. Como está habilitado el acceso a estos sectores, no afecta a los programas de creación de particiones.
  • Recuperación de programas se realizará probablemente en volúmenes que no puede montar el sistema de archivos. Como está habilitado el acceso a volúmenes sin procesar, tales programas de recuperación no se ven afectados.
  • Programas de cifrado a nivel de bloque tienen generalmente un controlador de filtro que reside en la pila de disco que está debajo del controlador del Administrador de partición. El controlador de filtro filtros de entrada salida (IO) que emite el controlador del Administrador de partición. Por lo tanto, los cambios en el sistema de archivos y la pila de almacenamiento no afectan a los programas de cifrado a nivel de bloque. Si el controlador de filtro que reside en la pila de volumen, el controlador de filtro será bajo los sistemas de archivos. Por lo tanto, los cambios en el sistema de archivos y la pila de almacenamiento no afectan a los programas de cifrado a nivel de bloque.
  • Programas de creación de originales de CD no se ven afectados porque el sistema de archivos UDF y el sistema de archivos FAT32 no realiza comprobaciones cuando se monta el sistema de archivos en unidades ópticas. Sin embargo, los programas mastering CD pueden verse afectados en la situación siguiente:
    • Un programa bloquea el archivo.
    • El programa consulta las extensiones del archivo.
    • El programa utiliza un identificador de volumen para escribir directamente en las extensiones del archivo.
    Sin embargo, no recomendamos este escenario porque esta situación puede hacer que los metadatos del archivo estén sincronizados. Una vez sincronizados los metadatos de archivos, los archivos pueden dañarse.
Propiedades

Id. de artículo: 942448 - Última revisión: 14 ene. 2017 - Revisión: 1

Comentarios