PeAR: A Static Binary Rewriting Framework for Binary-Only Fuzzing
El artículo presenta PeAR, un marco de reescritura de binarios estáticos que demuestra que la instrumentación estática es una alternativa práctica y efectiva a la instrumentación dinámica para el fuzzing de solo binarios, logrando una alta compatibilidad con el objetivo, ganancias significativas de rendimiento mediante el modo persistente y una cobertura comparable a los métodos basados en compiladores.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que eres un guardia de seguridad intentando encontrar trampas ocultas en un edificio misterioso y cerrado (una pieza de software). No puedes ver los planos (el código fuente), por lo que tienes que adivinar dónde podrían estar las trampas lanzando miles de objetos diferentes contra las puertas y las paredes para ver qué se rompe. Este proceso se llama fuzzing.
Para saber si has encontrado un nuevo lugar para probar, necesitas una forma de rastrear qué partes del edificio ya has visitado. Normalmente, el arquitecto del edificio (el compilador) instala pequeños sensores (instrumentación) para contar tus pasos. Pero como no tienes los planos, tienes que instalar estos sensores tú mismo después de que el edificio ya esté construido.
Hay dos formas principales de hacerlo:
- El método "En Vivo" (Dinámico): Contratas a un equipo de trabajadores para que se queden dentro del edificio mientras lanzas objetos. Ellos observan todo y lo anotan. Es muy preciso, pero los trabajadores son lentos y estorban, lo que hace que todo el proceso sea mucho más lento.
- El método "Pre-Juego" (Estático): Te infiltras antes de que el edificio abra, modificas las paredes para incluir tus sensores y luego lo cierras con llave. Esto es mucho más rápido porque los sensores pasan a formar parte del propio edificio. Sin embargo, es arriesgado. Si adivinas mal la estructura de la pared, podrías romper el edificio o perderte las trampas por completo.
Durante mucho tiempo, la gente pensó que el método "En Vivo" era la única opción segura porque el método "Pre-Juego" se consideraba demasiado torpe y propenso a errores.
Entra PeAR: El Maestro Renovador
Los autores de este artículo construyeron una nueva herramienta llamada PeAR. Piensa en PeAR como un equipo de renovación altamente capacitado que puede infiltrarse en un edificio terminado, mapear las paredes con precisión e instalar sensores de alta tecnología sin romper nada.
Querían demostrar que el método "Pre-Juego" ya no es solo una apuesta arriesgada, sino que puede ser tan bueno como el método "En Vivo", pero mucho más rápido.
¿Qué hace especial a PeAR?
La mayoría de los equipos de renovación anteriores (herramientas antiguas) solo podían instalar sensores básicos. No podían manejar los trucos sofisticados que los guardias de seguridad modernos usan para trabajar más rápido. PeAR, sin embargo, está construido sobre un nuevo y fiable sistema de creación de mapas (llamado GTIRB) que le permite realizar tres trucos avanzados:
El Bucle de "Sin Reinicio" (Modo Persistente):
- La forma antigua: Cada vez que lanzas una piedra, el equipo tiene que echarte, reconstruir la puerta y dejarte entrar de nuevo. Esto tarda una eternidad.
- La forma de PeAR: PeAR instala un pasillo especial donde puedes lanzar 1,000 piedras seguidas sin tener que salir nunca del edificio. Simplemente reinicias la habitación entre cada lanzamiento. Esto hace que el proceso sea increíblemente rápido.
El truco de "Saltarse la Configuración" (Inicialización Diferida):
- La forma antigua: Algunos edificios tienen un control de seguridad largo y aburrido en la entrada (carga de librerías, verificación de configuraciones) antes de que puedas empezar a lanzar piedras.
- La forma de PeAR: PeAR abre el edificio y te permite empezar a lanzar piedras después de que se haya completado la configuración aburrida. Te saltas la fila de espera cada vez.
El "Traspaso Telepático" (Fuzzing de Memoria Compartida):
- La antigua forma: Tienes que escribir tu piedra en un papel, caminar hacia un buzón, ponerla dentro y el edificio tiene que abrir el buzón para leerla. Esto es lento.
- La forma de PeAR: PeAR instala un tubo directo entre tu mano y la mano del edificio. Pasas la piedra directamente a través del aire. Sin papel, sin buzón, sin esperas.
La Gran Prueba
Los autores pusieron a prueba a PeAR contra otras herramientas utilizando una famosa pista de obstáculos llamada FuzzBench, que contiene 25 programas de software complejos. Realizaron las pruebas durante una cantidad masiva de tiempo (equivalente a 4.25 años de procesamiento continuo de computadora).
Esto fue lo que encontraron:
- Fiabilidad: PeAR modificó con éxito 22 de los 25 edificios. Esto es tan bueno como las mejores otras herramientas "Pre-Juego" y demuestra que no necesitas romper el edificio para instalar los sensores.
- Velocidad: Cuando PeAR utilizó sus trucos sofisticados (el bucle de "Sin Reinicio" y el "Traspaso Telepático"), se volvió 4 veces más rápido que su versión básica. Fue significativamente más rápido que cualquier otra herramienta "Pre-Juego".
- Precisión: A pesar de ser más rápido, PeÓ no pasó por alto ninguna trampa. Encontró tantas rutas ocultas (cobertura de código) como el lento método "En Vivo" y las herramientas que usan planos.
La Conclusión
El artículo concluye que el método "Pre-Juego" (Instrumentación de Binarios Estáticos) ya no es una opción arriesgada, lenta o inexacta. Con las herramientas adecuadas como PeAR, puedes modificar software cerrado para encontrar errores de forma rápida y precisa, sin necesidad de los planos originales. PeAR demuestra que puedes tener la velocidad de un equipo de renovación con la precisión de un observador en vivo.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.