Detección de vulnerabilidades y análisis de fallos con técnicas de aprendizaje automatizado.

Fecha

2018-03

Título de la revista

ISSN de la revista

Título del volumen

Editor

Resumen
La gran mayoría de los programas que utilizamos diariamente contienen numerosos errores, los cuales causan desde dificultades menores de uso hasta su terminación anormal y pérdida de información. Desafortunadamente, algunos fallos pueden ser aprovechados para atacar la integridad, confidencialidad o disponibilidad de un sistema. Debido a que ciertos sistemas informáticos cumplen un rol central en la vida moderna, es muy importante no sólo encontrar errores en los programas sino también identificar cuáles pueden resultar en vulnerabilidades que afectan a la seguridad de los mismos. La presente tesis comienza introduciendo conceptos básicos sobre aprendizaje automatizado y seguridad en programas para ser utilizados extensivamente durante la misma. Luego, se presentan varias herramientas y técnicas novedosas para la detección de vulnerabilidades de manera automática. La primera de ellas es QuickFuzz, una herramienta de fuzzing que utiliza la generación de entradas malformadas para producir fallos en programas que procesan varios formatos de archivos complejos. La segunda es XCraft, una herramienta utilizada para la evaluación de fallos de seguridad a gran escala mediante técnicas de caja negra. También se presenta VDiscover, una novedosa herramienta para la identificación de vulnerabilidades a partir de fallos suministrados por el usuario. La misma utiliza varias técnicas de aprendizaje automatizado para estimar la probabilidad de que un fallo pueda esconder una vulnerabilidad que un atacante podría aprovechar fácilmente. Finalmente, se exponen las conclusiones y las ideas futuras para continuar con la investigación y el desarrollo de nuevas técnicas de detección de fallos y vulnerabilidades en programas

Palabras clave

Aprendizaje automatizado, Software de Microsoft, Seguridad en programas, Herramientas automáticas

Citación