Seguridad de aplicaciones
Fuzzing por mutación
También conocido como: Fuzzing mutacional, Fuzzing basado en muestras
Definición
Estrategia de fuzzing que crea nuevas entradas de prueba mutando aleatoriamente muestras válidas existentes: invirtiendo bits, insertando bytes o combinando archivos.
Ejemplos
- AFL++ mutando archivos PNG válidos para descubrir desbordamientos de heap en libpng.
- libFuzzer mutando peticiones HTTP válidas para hacer crashear un parser HTTP propio.
Términos relacionados
Fuzz testing
Técnica de pruebas automatizadas que bombardea un programa con grandes cantidades de entrada malformada, aleatoria o inesperada para descubrir caídas, corrupción de memoria y vulnerabilidades.
Fuzzing guiado por cobertura
Técnica de fuzzing que instrumenta el objetivo para medir cobertura de código y evoluciona entradas que exploran caminos nuevos, mejorando enormemente la eficacia.
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.
Desbordamiento de búfer
Fallo de seguridad de memoria en el que un programa escribe más allá del final de un búfer asignado, corrompiendo memoria adyacente y a menudo permitiendo ejecución de código.
Uso después de liberar
Fallo de memoria en el que un programa sigue usando memoria ya liberada, lo que suele permitir controlar el estado de objetos y secuestrar la ejecución.
Secure Coding
Secure Coding — definition coming soon.