Integridad del flujo de control
¿Qué es Integridad del flujo de control?
Integridad del flujo de controlLa integridad de flujo de control (CFI) restringe las llamadas indirectas y los retornos del programa a un conjunto precomputado de destinos legitimos, bloqueando ROP y JOP.
CFI fue formalizada por Abadi, Budiu, Erlingsson y Ligatti en 2005. El compilador construye el grafo de flujo de control, asigna a cada llamada indirecta un conjunto de destinos validos e instrumenta verificaciones en tiempo de ejecucion. Implementaciones practicas incluyen LLVM CFI (basada en IDs por tipo), Microsoft Control Flow Guard, kCFI del kernel Linux y variantes asistidas por hardware como Intel CET-IBT y Arm BTI para ramas indirectas, mas shadow stacks para retornos. CFI neutraliza ROP/JOP porque la cadena de gadgets viola los conjuntos de aristas validas. Las principales limitaciones son las clases de equivalencia amplias en C/C++ y las interfaces incompatibles.
● Ejemplos
- 01
Microsoft Control Flow Guard bloquea una llamada indirecta via vtable corrupta en Edge.
- 02
El kernel Linux 6.x con kCFI detiene una cadena ROP en un driver vulnerable.
● Preguntas frecuentes
¿Qué es Integridad del flujo de control?
La integridad de flujo de control (CFI) restringe las llamadas indirectas y los retornos del programa a un conjunto precomputado de destinos legitimos, bloqueando ROP y JOP. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa Integridad del flujo de control?
La integridad de flujo de control (CFI) restringe las llamadas indirectas y los retornos del programa a un conjunto precomputado de destinos legitimos, bloqueando ROP y JOP.
¿Cómo defenderse de Integridad del flujo de control?
Las defensas contra Integridad del flujo de control combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Integridad del flujo de control?
Nombres alternativos comunes: CFI, Control Flow Guard, kCFI.