CyberGlossary

Seguridad de aplicaciones

Ejecución simbólica

También conocido como: Análisis simbólico, Ejecución concolic

Definición

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.

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

  • Usar KLEE sobre una biblioteca C para generar entradas que cubran cada rama y disparen asserts.
  • Combinar angr con AFL++ para resolver restricciones que el fuzzing solo no puede.

Términos relacionados