Modelo no determinista para la auto-verificación de integridad de componentes de software

  1. Nuñez Musa, Yulier
Dirigida por:
  1. Roberto Sepúlveda Lima Director/a
  2. Sergio Cuenca Asensi Director/a

Universidad de defensa: Universitat d'Alacant / Universidad de Alicante

Fecha de defensa: 27 de febrero de 2013

Tribunal:
  1. Andrés Iborra García Presidente
  2. Daniel Ruiz Fernández Secretario/a
  3. José Carlos Fernández Andrés Vocal

Tipo: Tesis

Teseo: 337685 DIALNET lock_openRUA editor

Resumen

Las pérdidas monetarias por concepto de piratería de software alcanzan en la actualidad cifras millonarias. Por sólo citar un ejemplo, en el 2011 el valor comercial por este concepto ascendió a 63 billones de dólares, con un incremento de 4.2 billones con respecto al año anterior. En este ámbito, el software comercializado es sometido a ataques y como resultado, usuarios ilegítimos pueden hacer uso del mismo. 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, entre las que se encuentran la ofuscación, el cifrado, las marcas de agua y la auto-verificación de integridad, entre otros. Dichas técnicas no son totalmente efectivas, debido principalmente a que la ejecución del software se realiza en una arquitectura insegura, sobre la que el atacante tiene un control total. La presente tesis se centra en las técnicas de protección dirigidas al control de integridad en ambientes de ejecución inseguros, específicamente la técnica de auto-verificación de integridad, que ofrece resistencia ante ataques dinámicos. Una limitante de esta técnica es que por sí sola no puede garantizar su privacidad, por lo que es necesario combinarla con otras técnicas para lograr dicho fin. Varias propuestas están dirigidas a complementar la auto-verificación de integridad con técnicas de ofuscación estructurales. Sin embargo, esto no es suficiente para ofrecer una alta resistencia ante ataques dinámicos, por lo que además es necesario incorporar una ofuscación funcional. En este contexto, se propone un modelo no determinista para la verificación de integridad de componentes de software. El modelo se basa en una red de auto-verificación, constituida por un componente de detección y un componente de respuesta. Ambos tienen un comportamiento no determinista, por lo que tanto las detecciones como las respuestas se ejecutan con cierta probabilidad. Igualmente, y ante la carencia de estrategias consensuadas para la estimación del grado de protección que ofrecen estos mecanismos, se ha optado por proponer un novedoso modelo de evaluación. En él se combina el concepto de Árbol de Ataque con aspectos de la Teoría de la Información, de forma que la estrategia es escalable y al mismo tiempo tiene en cuenta el no determinismo de la red. Por último, y como tercera contribución significativa del trabajo, se han establecido las directrices para el establecimiento de una Infraestructura de Protección de Software (SPI). Dada la complejidad y el coste asociado a la incorporación de un mecanismo de protección en el proceso de desarrollo de software, la SPI permite simplificar y abaratar su integración mediante la aplicación automatizada de las mismas durante el proceso de compilación del software. La implementación de una SPI básica, permitió generar un prototipo de prueba del modelo no determinista y realizar un conjunto de evaluaciones experimentales aplicando para ello el modelo de evaluación propuesto. Los resultados indican una mejora de dos órdenes de magnitud en la resistencia y nivel de ofuscación funcional, respecto a un modelo equivalente de comportamiento determinista. Al respecto, se pudo concluir que un comportamiento no determinista es acertado tanto para retardar un ataque exitoso, como para minimizar el nivel de fuga de información. Este resultado es aplicable a la mejora de la resistencia ante ataques dinámicos y se presume que pueda ser extendido a otras técnicas de protección. Por otra parte, la infraestructura propuesta abre un espacio de investigación para la protección masiva de software, minimizando considerablemente el coste asociado a esta actividad y potenciando la especialización en las distintas disciplinas involucradas.