El seguimiento de bifurcaciones indirectas ( IBT ), también conocido como identificación de destino de bifurcación ( BTI ), es un mecanismo de integridad del flujo de control implementado en algunos procesadores Intel x86-64 y ARM-64 . El IBT está diseñado para proteger contra vulnerabilidades de seguridad informática que utilizan instrucciones de bifurcación indirecta para acceder al código de forma no deseada, como en la programación orientada a retorno .
Crea instrucciones especiales de "destino de salto" que no tienen otra función que marcar una ubicación como un destino de salto indirecto válido , y el procesador puede entrar en un modo en el que generará una excepción si se realiza un salto indirecto a una ubicación sin una instrucción de destino de salto.
Implementaciones
En los procesadores Intel, la técnica se conoce como Seguimiento Indirecto de Ramas (IBT), donde las instrucciones de "finalización de rama" endbr32 y endbr64 actúan como instrucciones de destino de rama para los modos de 32 y 64 bits, respectivamente. [ 1 ] [ 2 ] IBT forma parte de la Tecnología de Aplicación de Flujo de Control de Intel, lanzada por primera vez en la generación de procesadores Tiger Lake . [ 3 ]
La tecnología similar en los procesadores ARM-64 se llama Identificación de Destino de Rama (BTI), y la instrucción, también llamada BTI , tiene tres variantes que hacen que compruebe solo saltos, o llamadas a funciones, o ambas. [ 4 ] [ 5 ]
Referencias
- ↑ Corbet, Jonathan (31 de marzo de 2022). "Seguimiento de ramas indirectas para CPU Intel" . lwn.net . Consultado el 14 de julio de 2023 .
- ↑ "Seguimiento de ramas indirectas - 006 - ID:655258 | Procesadores Intel® Core™ de 12.ª generación" . edc.intel.com . Consultado el 23 de febrero de 2024 .
- ↑ "Intel incorpora la novedosa tecnología CET a las CPU móviles Tiger Lake" . ZDNET . Consultado el 23 de febrero de 2024 .
- ↑ "Documentación – Desarrollador de Arm" . developer.arm.com . Diciembre de 2021. Consultado el 14 de julio de 2023 .
- ↑ "Documentación – Desarrollador de Arm" . developer.arm.com . Consultado el 23 de febrero de 2024 .
- Seguridad informática
- Integridad del flujo de control
- Esbozos de seguridad informática