Imagen del encabezado de la página

IV Congreso Internacional de Ingeniería Informática y Sistemas de Información

Mecanismo para la ofuscación y diversificación del grafo de llamada de software: una implementación

Yulier Nuñez Musa

Resumen

Las pérdidas monetarias por concepto de piratería de software alcanzan en la actualidad cifras millonarias. En el 2014, el valor comercial por este concepto ascendió a $62,7 billones de dólares. Una vía para mitigar este problema desde el punto de vista tecnológico, es el empleo de técnicas de protección de software, en especial la ofuscación y diversificación de código, destacándose la ofuscación de control. Existen muchas propuestas de trabajos relacionados con la ofuscación del grafo de control de flujo. Sin embargo, son pocos los trabajos reportados que realicen la ofuscación del grafo de llamada. En este artículo se propone un novedoso mecanismo para la ofuscación y diversificación del grafo de llamada de un software. El mecanismo se basa en el encaminamiento de llamadas de funciones para lograr modificar el grafo de llamadas del software. Se desarrolló un prototipo del mecanismo propuesto mediante la extensión de las funcionalidades de un compilador. Esto permitió automatizar totalmente el proceso de protección y realizar una experimentación sobre software reales. Los software generados difirieron en un 25% como promedio, respecto a los software originales. Se obtuvo un incremento del nivel de ofuscación del 2% al 30% en las pruebas realizadas, con apenas una sobrecarga del 3% del tiempo de ejecución en todos los casos. La propuesta realizada permite reestructurar todo el grafo de llamada en software reales de forma eficiente, aumentando el nivel de protección a costa de un bajo impacto en el rendimiento del software.


Palabras claves

Protección de software, análisis inter-procedural, grafo de llamada, diversificación de software, ofuscación de software