
Defensa Tesis Licenciatura Dago de Renteria y Melissa Regnier
25 marzo, 2024 @ 2:00 pm - 3:00 pm
Título: Fuzzing de smart contracts: EchidnaAFL
Directores: Juan Pablo Galeotti y Diego Garbervetsky (DC/ICC)
Jurados:
– Victor Braberman (DC/ICC)
– Gustavo Grieco (Trail of Bits)
Resumen:
En los últimos años, han cobrado popularidad y gran capital financiero las tecnologías blockchain y en particular Ethereum, que introdujo el concepto de smart contracts que permitió el desarrollo de una gran variedad de proyectos. Esto dio lugar a la investigación y desarrollo de herramientas de testing de smart contracts, en particular fuzzing. En esta tesis, en búsqueda de una herramienta para extender, llevamos a cabo en primer lugar un análisis del estado del arte de las herramientas de fuzzing existentes, lo que nos llevó a elegir a Echidna, debido a su popularidad, simpleza de extensión y disponibilidad de código y desarrolladores. En base a esto, realizamos una investigación de reverse-engineering que nos permitió documentar extensamente el algoritmo de Echidna, obteniendo diversos diagramas que disponibilizamos para el uso de la comunidad. Una vez hecho esto, implementamos una versión de Echidna que incorpora conceptos de la herramienta AFL Fast, que asigna energía a los elementos del corpus en función de la frecuencia del camino explorado por cada elemento. Además, implementamos una versión random que asigna energías uniformes para utilizar como testigo en el análisis. Finalmente, mediante el uso de tres distintos benchmarks, comparamos los resultados obtenidos por las tres distintas versiones y concluimos que la adaptación implementada obtiene resultados equivalentes a la original pero con un overhead de tiempo significativo, mientras que la versión random también obtiene resultados similares sin ningún overhead de tiempo. Esto nos lleva a concluir que la estrategia de elección de elementos de corpus no pareciera influir lo suficiente en la eficiencia de la herramienta ya que su comparación con random que representa la elección trivial de elementos de corpus resulta en el mismo nivel de performance. Como trabajo futuro, se pueden seguir explorando los resultados observados haciendo uso de benchmarks más complejos y extensos que permitan otorgarle mayor confianza a lo concluido o incluso proponer nuevas estrategias de feedback utilizando la documentación provista en esta tesis para facilitar el desarrollo.
Palabras claves: Ethereum, smart contracts, fuzzing, Echidna, AFL-Fast, feedback, elección de elementos de corpus.