Comprensión de la tabla de mitigación de seguridad de Windows SMM (WSMT)

La tabla de mitigación de seguridad (WSMT) de Windows SMM es una tabla ACPI definida por Microsoft que permite al firmware del sistema confirmar al sistema operativo que se han implementado ciertos procedimientos recomendados de seguridad en el software del Modo de administración del sistema (SMM). La definición de tabla WSMT se describe en la especificación de tabla de mitigaciones de seguridad (WMST) de Windows SMM.

Información previa

WSMT se definió para admitir mejor las características de seguridad basadas en virtualización de Windows. Consulte Seguridad basada en virtualización (VBS) para obtener más información sobre VBS. Dado que SMM funciona sin el conocimiento o el control del sistema operativo, SMM representa una superficie de ataque significativa que podría aprovechar el código malintencionado para poner en peligro o eludir las protecciones del sistema operativo habilitadas a través de VBS. La entrega de una plataforma VBS sólida y segura requiere un examen cuidadoso y las actualizaciones probables del código SMM por parte del OEM para eliminar las vulnerabilidades comunes que se pueden aprovechar. WSMT contiene marcas que el firmware puede establecer para indicar al sistema operativo cuál de estos procedimientos recomendados de seguridad específicos se han implementado.

Implicaciones del WSMT en la compatibilidad con Windows VBS

El campo Marcas de protección WSMT indica la presencia de estas mitigaciones de seguridad de SMM específicas en el firmware de los sistemas. Las versiones compatibles del sistema operativo Windows leen las marcas de protección WSMT al principio durante la inicialización, antes del inicio del hipervisor y VBS, y pueden optar por habilitar, deshabilitar o desajustar determinadas características de seguridad en función de la presencia de estas marcas de protección de SMM.

Notas de implementación

La implementación adecuada de las mitigaciones de seguridad representadas por las marcas de protección de WSMT FIXED_COMM_BUFFERS y COMM_BUFFER_NESTED_PTR_PROTECTION requerirá que el proveedor de firmware evalúe cuidadosamente y posiblemente vuelva a diseñar los controladores de interrupción de administración del sistema (SMI). Todos los controladores SMI deben estar restringidos a solo el acceso (lectura o escritura) a las regiones de memoria permitidas que contienen MMIO y memoria asignada por EFI. No es suficiente comprobar que los punteros de SMM no hacen referencia a la memoria completamente fuera de SMM. En su lugar, todos los punteros SMM deben validarse para que estén dentro de estas regiones de memoria segura. Esto evita que SMM se aproveche en un ataque "adjunto confuso", que luego se podría aprovechar para poner en peligro las características de Windows VBS. Las marcas de protección mencionadas anteriormente solo hacen referencia a las comprobaciones de validación de entrada y de puntero y no requieren actualmente la aplicación a través de protecciones de página SMM. Por ejemplo, SMM no debe leer ni escribir en la memoria descrita por el firmware como EfiConventionalMemory porque puede contener secretos o hacer que el software se comporte de forma impredecible.

Validación de las protecciones WSMT

Dado que SMM es opaco para el sistema operativo, no es posible producir una prueba que se ejecute en Windows para comprobar que las protecciones indicadas en la especificación WSMT se implementan realmente en SMM. Desde el sistema operativo, la única comprobación posible es buscar la presencia de WSMT y comprobar el estado de todas las marcas de protección definidas.

Por lo tanto, es responsabilidad del OEM examinar cuidadosamente el código SMM de cada sistema y asegurarse de que el firmware cumple con las instrucciones descritas en la especificación WSMT y en este artículo. No se debe establecer ninguna marca de protección en "true" hasta que el OEM haya confirmado que las mitigaciones correspondientes a cada valor de marca de protección se han implementado correctamente. Si no se cumple esto como procedimiento recomendado, la plataforma será vulnerable a poner en peligro y negará la eficacia de varias protecciones del sistema operativo y las características de seguridad de Windows que dependen de VBS para mantener límites de seguridad sólidos.

Versiones compatibles de Windows

La compatibilidad con WSMT se incluye en las siguientes versiones de Windows:

  • Windows Server Technical Preview 2016
  • Windows 10, versión 1607
  • Windows 10, versión 1703
  • Windows 10, versión 1709