Compartir a través de


Pruebas de exploración de vulnerabilidades mediante datos aleatorios de retraso de sincronización de kernel

Nota:

Esta comprobación está en desuso a partir de la compilación 19042 y posteriores de Windows 10

La opción de retraso de sincronización del kernel aleatoriza las programaciones de subprocesos para ayudar a detectar errores de simultaneidad en los controladores.

Cautela Esta opción no está pensada para su uso cuando se comprueban todos los controladores (o una colección grande de) en un equipo. Esta opción solo se debe usar cuando se realizan pruebas dirigidas de controladores individuales o sus controladores de filtro asociados. El uso de esta opción en un gran número de controladores al mismo tiempo podría provocar resultados imprevisibles y podría forzar fallos en componentes no relacionados con los controladores que está probando.

Nota Esta opción está disponible a partir de Windows 8.1.

Cuando se selecciona la opción, Driver Verifier inserta retrasos aleatorios en varios puntos de los subprocesos. Al igual que la opción Fuzzing de Retardo de Power Framework, la opción Fuzzing de Retardo de Sincronización del Kernel utiliza un algoritmo que ayuda a mejorar las posibilidades de encontrar errores en los controladores. El fuzzing del retraso de sincronización del kernel mejora las pruebas de esfuerzo tradicionales, donde el programa de prueba se ejecuta durante días o incluso semanas con la esperanza de detectar problemas que pueden producirse en la ejecución simultánea.

Activación de esta opción

Puede activar la característica de fuzzing del retraso de sincronización del kernel para uno o varios controladores mediante el Administrador de Verificación de Controladores o la línea de comandos Verifier.exe. Para obtener más información, consulte Seleccionar opciones del comprobador de controladores. Debe reiniciar el equipo para activar o desactivar la opción Power Framework Delay Fuzzing.

Nota La opción de difusión de retrasos de sincronización del kernel incrementa la probabilidad de que las condiciones de carrera aparezcan durante el tiempo de ejecución al insertar retrasos aleatorios en varias llamadas a funciones de la API del kernel. Para que estos retrasos sean más eficaces, puede habilitar esta opción con otras opciones del Verificador de Controladores. Debido a los retrasos que se pueden introducir, puede esperar que el equipo tenga una respuesta más lenta.

  • En la línea de comandos

    En la línea de comandos, el retraso de sincronización del kernel se representa mediante el comprobador /flags 0x00800000 (bit 23). Para activar el Delay Fuzzing de Power Framework, use un valor de indicador de 0x00800000 o agregue 0x00800000 al valor de indicador. Por ejemplo:

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

  • Uso del Administrador del Verificador de Controladores

    1. Inicie el Administrador del comprobador de controladores. Escriba Comprobador en una ventana del símbolo del sistema.
    2. Seleccione Crear configuración personalizada (para desarrolladores de código) y, a continuación, haga clic en Siguiente.
    3. Seleccione Seleccionar configuración individual en una lista completa.
    4. Seleccione (marcar) fuzzing de retraso de sincronización del kernel.
    5. Reinicia el ordenador.

¿Por qué realizar fuzzing con el retraso de sincronización del kernel?

La mayoría de las rutinas de controlador son reentrantes y simultáneas. Los errores relacionados con la simultaneidad son notoriamente difíciles de encontrar. Los errores pueden incluir interbloqueos y condiciones de competencia, causados por problemas de sincronización y desajustes temporales entre subprocesos. Las pruebas de esfuerzo son la técnica de prueba tradicional para encontrar estos errores, pero puede ser lento y costoso, y los resultados no siempre son reproducibles. La opción de inserción de retrasos aleatorios en la sincronización del kernel aumenta la probabilidad de que las condiciones críticas de carrera aparezcan en tiempo de ejecución al introducir retrasos aleatorios en varias llamadas a funciones de la API del kernel. Por ejemplo, si una condición de competencia da como resultado que un controlador acceda a IRP después de que se haya cancelado, la opción de retraso de sincronización del kernel para fuzzing incrementa las posibilidades de que ocurra esta condición de competencia de tal manera que el Verificador de controladores detectará el error durante las pruebas. La opción de retardo de sincronización del kernel mejora la potencia y efectividad del Verificador de Controladores.