Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Fuzzing de analizadores y validadores propios

5 tareas · 40 min · Principiante

El código que lee formatos ajenos es donde viven los fallos que ninguna prueba escrita a mano imagina. Conjuntos Llovizna importa cada mañana el archivo de recaudo que manda el banco para marcar las cuotas pagadas, y su equipo dejó corriendo una noche una campaña de fuzzing sobre ese lector, en el entorno de pruebas. Te entrega el lector, el arnés y la salida de la campaña.

0 de 5 · 0%

Objetivo de la sala

El código que lee formatos ajenos es donde viven los fallos que ninguna prueba escrita a mano imagina. Conjuntos Llovizna importa cada mañana el archivo de recaudo que manda el banco para marcar las cuotas pagadas, y su equipo dejó corriendo una noche una campaña de fuzzing sobre ese lector, en el entorno de pruebas. Te entrega el lector, el arnés y la salida de la campaña.

El fuzzing guiado por cobertura genera entradas, mide qué ramas del código recorre cada una y conserva las que llegan a sitios nuevos, para mutarlas otra vez. Así, en horas, encuentra combinaciones que nadie habría escrito: una línea con menos campos, un tipo de registro que no existe, un texto larguísimo. Se aplica al código propio que lee lo que viene de fuera: lectores de archivos, decodificadores, validadores de formatos y expresiones regulares.

Lo importante no es la herramienta sino el arnés, la función pequeña que recibe la entrada y llama al lector. El arnés decide qué cuenta como fallo: debe dejar pasar las excepciones que el lector documenta como rechazo normal (una línea mal formada que se informa) y dejar que todo lo demás se vea. Y puede ir más allá de los cierres inesperados con propiedades: condiciones que siempre deben cumplirse en lo que el lector devuelve, como que un abono nunca sea negativo. Sin ellas, el fuzzing solo ve lo que revienta, no lo que sale mal en silencio.

Responde para continuar

¿Qué debe hacer el arnés con la excepción que el lector usa para rechazar una línea mal formada?

Ver pista de ayuda

Una línea mal formada que se rechaza y se informa es el comportamiento correcto.

Abre el laboratorio y lee salida-campana.txt. Cada hallazgo dice dónde se detuvo la ejecución. Uno de ellos no llega nunca al lector: se detiene en el propio arnés, antes de llamar a nada de Llovizna. Compara con arnes_recaudo.py y con lo que dice formato-recaudo.txt sobre cómo llega el archivo.

Responde para continuar

¿Qué hallazgo de la campaña es un fallo del arnés y no del lector de recaudo? Escribe su identificador.

Ver pista de ayuda

Busca el hallazgo cuya línea está en arnes_recaudo.py y que no es la propiedad.

Dos hallazgos son tiempos agotados. Una expresión regular con un cuantificador dentro de otro cuantificador puede probar un número de combinaciones que crece de forma exponencial con la longitud del texto cuando al final no coincide (CWE-1333, complejidad ineficiente de una expresión regular). Una referencia de unas decenas de caracteres basta para dejar ocupado el proceso que importa el archivo de todos los conjuntos.

Responde para continuar

¿Qué función del lector se queda sin terminar con algunas entradas largas?

Ver pista de ayuda

Mira la columna donde se detuvo de los tiempos agotados y busca la expresión en recaudo.py.

La campaña guarda cada entrada que falla, y varias entradas distintas suelen llevar al mismo fallo. Agrupa los hallazgos por el lugar donde se detuvo la ejecución y el tipo de fallo, y descarta el que no es del código de Llovizna.

Responde para continuar

¿Cuántos fallos distintos del código de Llovizna dejó la campaña?

Ver pista de ayuda

Hay tres parejas que comparten lugar y tipo, un hallazgo suelto de la propiedad y uno del arnés.

FZ-04 no es un cierre inesperado: el lector devolvió un pago con valor negativo sin quejarse, y fue la propiedad del arnés la que lo marcó. Piensa en lo que habría pasado al importar ese archivo y en qué se convierte la entrada minimizada después de arreglarlo.

Responde para continuar

¿Qué se hace con FZ-04 una vez corregido el lector?

Ver pista de ayuda

Lo que la campaña encontró una vez debería vigilarse en cada cambio.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad