Symbolic Execution
La ejecución simbólica ejecuta un programa con variables simbólicas en lugar de valores concretos, analiza todos los caminos factibles y genera automáticamente entradas que activan cada uno.
Propósito
Analizar con precisión el comportamiento del programa, generando automáticamente pruebas de alta cobertura y entradas que disparan vulnerabilidades.
Mecanismo
Las variables se representan simbólicamente; las condiciones de camino se acumulan como restricciones. En las bifurcaciones divide los caminos y comprueba la factibilidad con un solver SMT. La explosión de caminos es el principal cuello de botella. KLEE y angr realizan ejecución simbólica de C/binarios.
Casos de uso
- Generación de pruebas
- Análisis de vulnerabilidades
- Cobertura de caminos