CET-IBT
CET-IBT es el seguimiento de bifurcaciones indirectas, una protección del flujo de control que comprueba los destinos de las llamadas y saltos indirectos rastreados. Es independiente de las pilas de sombras CET.
Lo que necesita saber
CET-IBT es el seguimiento de bifurcaciones indirectas, una protección del flujo de control que comprueba los destinos de las llamadas y saltos indirectos rastreados. Es independiente de las pilas de sombras CET.
Cómo funciona
Cuando el seguimiento está habilitado para el entorno de ejecución aplicable, una transferencia indirecta debe alcanzar una instrucción de destino ENDBR adecuada según las reglas de la arquitectura. El mecanismo utiliza el estado de seguimiento arquitectónico y genera una excepción de protección de control cuando se infringe el contrato. La instrumentación del compilador y del binario forma parte del despliegue.
Dónde resulta útil
Un compilador puede marcar ubicaciones válidas de entrada indirecta en una biblioteca. El SO y el entorno de ejecución deben aplicar la habilitación y la política compatibles al código que se ejecuta. Ver bytes ENDBR en un desensamblado no prueba, por sí mismo, que el sistema aplique IBT activamente en ese momento.
Cómo comprobar la compatibilidad y la habilitación
El bit 20 de CPUID.07H.00H:EDX enumera la capacidad IBT. Compruebe la compatibilidad de usuario/supervisor y la política de binarios del SO por separado. Diagnostique la compatibilidad mediante la guía oficial del compilador y del SO en lugar de eliminar instrucciones de destino de un binario.
La capacidad, la habilitación y la aplicación obligatoria deben comprobarse por separado. Un procesador puede admitir una protección mientras que el sistema operativo, la aplicación o la directiva de la máquina virtual no la activan. El campo de compatibilidad de una base de datos no es una atestación de un sistema en ejecución.
Lo que la función no establece
IBT no comprueba los retornos ordinarios de funciones como lo hacen las pilas de sombras. No es una garantía de integridad total del flujo de control ni de seguridad de la aplicación, y la compatibilidad con pilas de sombras no determina la compatibilidad con IBT.
Compatibilidad y rendimiento en la práctica
Mantenga actualizados el sistema operativo, el firmware y el entorno de ejecución afectado. Si una protección pone de manifiesto un problema de compatibilidad, utilice primero los diagnósticos del proveedor y las actualizaciones compatibles. Un interruptor de protección general puede afectar a aplicaciones no relacionadas y debe seguir una directiva explícita de despliegue y recuperación.
Lista de comprobación práctica para la verificación
- Registre el modelo exacto de procesador o plataforma, así como las versiones de la aplicación, el sistema operativo y el entorno de ejecución involucrados. Conserve la redacción del error o requisito real.
- Consulte la referencia del fabricante para ese modelo exacto y, a continuación, inspeccione la capacidad efectiva y el estado habilitado en el entorno donde se ejecuta el programa.
- Compare cada requisito del binario o backend seleccionado. Una función con nombre similar, un alias o una etiqueta de tecnología general no son suficientes.
- Confirme que la aplicación haya seleccionado la implementación prevista. Utilice sus diagnósticos documentados y una alternativa compatible cuando no se cumplan los requisitos.
- Realice un cambio admitido a la vez y repita la misma carga de trabajo. Mantenga disponibles la configuración original y la vía de recuperación.
Si la función aparece listada pero el software no puede usarla
Comience con el componente exacto que falla. Una base de datos de hardware describe la capacidad registrada; el sistema operativo o el hipervisor pueden exponer un entorno efectivo diferente. Un error de instrucción no válida también requiere investigar la instrucción que generó el fallo y la compilación del binario en sí, ya que la corrupción o una instrucción no compatible no relacionada pueden producir un síntoma similar.
Instale la versión de la aplicación, controlador o entorno de ejecución compatible con la plataforma exacta, y utilice la compilación de referencia o de contingencia documentada por el fabricante si es necesario. Una actualización de software no puede crear una instrucción de la que el procesador carece. Los cambios de firmware y directivas de seguridad deben seguir el procedimiento del fabricante del sistema y un plan de recuperación, en lugar de una fórmula de optimización genérica.
Fuentes y alcance de esta explicación
Intel 64 and IA-32 Architectures Software Developer's Manual · Kernel de Linux: pila de sombras de Control-flow Enforcement Technology
Estas referencias establecen el comportamiento arquitectónico y los requisitos de software. No verifican de forma independiente cada valor de función en la página de un modelo de hardware vinculado. Para conocer la compatibilidad de un modelo, consulte las pruebas del fabricante en dicha página y compruebe la configuración efectiva del sistema. Este artículo no proporciona una prueba de rendimiento, certificación ni fecha de revisión independiente.
Fuentes y verificación
Titularidad editorial: Feex. No se registra ninguna fecha de revisión independiente. Cómo investigamos.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Los volúmenes 1 y 2 describen las familias de instrucciones designadas y CPUID; el volumen 3 describe el estado, la paginación, VMX y los controles de protección. La documentación de la arquitectura no establece la compatibilidad con un modelo en particular.
- Kernel de Linux: pila de sombras de Control-flow Enforcement Technology · Distingue entre compatibilidad de hardware, marcadores binarios, habilitación del cargador y protección activa por hilo. Describe IBT y las pilas de sombras como funcionalidades independientes.
¿Fue útil este artículo?
Un sí o un no es suficiente. Elija un motivo si lo desea o agregue una breve nota.
Gracias. Eso nos ayuda a mejorar esta página.