Compartir a través de


Comprobación de la integridad del código

La integridad de memoria es una característica de seguridad basada en virtualización (VBS) disponible en Windows 10, Windows 11 y Windows Server 2016 y versiones posteriores. La integridad de la memoria y VBS mejoran el modelo de amenazas de Windows y proporcionan protecciones más sólidas contra malware que intentan aprovechar el kernel de Windows. VBS usa el hipervisor de Windows para crear un entorno virtual aislado que se convierte en la raíz de confianza del sistema operativo que supone que el kernel se puede poner en peligro. La integridad de la memoria es un componente crítico que protege y protege Windows mediante la ejecución de la integridad de código del modo kernel dentro del entorno virtual aislado de VBS. La integridad de la memoria también restringe las asignaciones de memoria del kernel que podrían usarse para poner en peligro el sistema, lo que garantiza que las páginas de memoria del kernel solo se realicen ejecutables después de pasar comprobaciones de integridad de código dentro del entorno de tiempo de ejecución seguro y las páginas ejecutables nunca se puedan escribir.

Nota

La integridad de la memoria se conoce a veces como integridad de código protegida por hipervisor (HVCI) o hipervisor que se aplicaba a la integridad de código y se publicó originalmente como parte de Device Guard. Device Guard ya no se usa excepto para localizar la integridad de memoria y la configuración de VBS en directiva de grupo o en el Registro de Windows.

Las comprobaciones de integridad de código garantizan la compatibilidad con los requisitos de uso de memoria del kernel de la integridad de memoria y detecta las siguientes infracciones:

Código de error Problema de integridad de código
0x2000:
  • 2 - La dirección en el código del controlador donde se detectó el error.
  • 3 - Tipo de grupo.
  • 4 - Etiqueta de grupo (si se proporciona).

El autor de la llamada especificó un tipo de grupo ejecutable. (Se esperaba: NonPagedPoolNx)
0x2001:
  • 2 - La dirección en el código del controlador donde se detectó el error.
  • 3 - Protección de páginas (WIN32_PROTECTION_MASK).
El autor de la llamada especificó una protección de página ejecutable. (Se esperaba: bits PAGE_EXECUTE* borrados)
0x2002:
  • 2 - La dirección en el código del controlador donde se detectó el error.
  • 3 - Prioridad de página (MM_PAGE_PRIORITY lógicamente OR con MdlMapping*).
El llamador especificó una asignación MDL ejecutable. (Se esperaba: MdlMappingNoExecute).
0x2003:
  • 2- El nombre del archivo de imagen (cadena Unicode).
  • 3 - La dirección del encabezado de sección.
  • 4 : nombre de sección (cadena codificada con UTF-8).
La imagen contiene una sección ejecutable y grabable.
0x2004:
  • 2- El nombre del archivo de imagen (cadena Unicode).
  • 3 - La dirección del encabezado de sección.
  • 4 : nombre de sección (cadena codificada con UTF-8).
La imagen contiene una sección que no está alineada con páginas.
0x2005:
  • 2- El nombre del archivo de imagen (cadena Unicode).
  • 3 - Directorio IAT.
  • 4 : nombre de sección (cadena codificada con UTF-8).
La imagen contiene una IAT ubicada en una sección ejecutable.

Activación de esta opción:

Puede activar la comprobación de integridad de código para uno o varios controladores mediante el Administrador de comprobadores de controladores o la línea de comandos Verifier.exe. Para obtener más información, consulte Selección de las opciones del comprobador de controladores. Debe reiniciar el equipo para activar o desactivar la opción de comprobación de integridad de código.

  • En la línea de comandos

    En la línea de comandos, la comprobación de integridad de código se representa mediante 0x02000000 (bit 25). Por ejemplo:

    verifier /flags 0x02000000 /driver MyDriver.sys

    La característica estará activa después del siguiente arranque.

  • Uso del Administrador de comprobadores de controladores

  1. Inicie el Administrador de comprobadores de controladores. Escriba Comprobador en una ventana del símbolo del sistema.
  2. Seleccione Crear configuración personalizada (para desarrolladores de código) y haga clic en Siguiente.
  3. Comprobación de integridad de código Select(check).
  4. Reinicie el equipo.

Implementar código compatible con la integridad de memoria