Ejecución simbólica
¿Qué es Ejecución simbólica?
Ejecución simbólicaTécnica de análisis de programas que ejecuta el código con entradas simbólicas en vez de valores concretos, construyendo restricciones de ruta resueltas por un solver SMT para encontrar bugs.
Un motor de ejecución simbólica trata las entradas del programa como variables matemáticas y explora rutas de ejecución bifurcándose en cada condicional. Cada ruta acumula restricciones en lógica de primer orden; un solver SMT como Z3 comprueba su satisfacibilidad y, si la encuentra, produce una entrada concreta que conduce al programa por ese camino. Esto la hace muy potente para demostrar la alcanzabilidad de condiciones de bug (overflow, división por cero, taint que llega a un sink), pero sufre de explosión de rutas y restricciones complejas. Herramientas como KLEE, angr y Manticore se usan para asistir a fuzzers, descubrir vulnerabilidades profundas y verificar propiedades de seguridad en binarios.
● Ejemplos
- 01
Usar KLEE sobre una biblioteca C para generar entradas que cubran cada rama y disparen asserts.
- 02
Combinar angr con AFL++ para resolver restricciones que el fuzzing solo no puede.
● Preguntas frecuentes
¿Qué es Ejecución simbólica?
Técnica de análisis de programas que ejecuta el código con entradas simbólicas en vez de valores concretos, construyendo restricciones de ruta resueltas por un solver SMT para encontrar bugs. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa Ejecución simbólica?
Técnica de análisis de programas que ejecuta el código con entradas simbólicas en vez de valores concretos, construyendo restricciones de ruta resueltas por un solver SMT para encontrar bugs.
¿Cómo defenderse de Ejecución simbólica?
Las defensas contra Ejecución simbólica combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Ejecución simbólica?
Nombres alternativos comunes: Análisis simbólico, Ejecución concolic.