El software anti-manipulación es un software que dificulta que un atacante lo modifique. Las medidas involucradas pueden ser pasivas, como la ofuscación para dificultar la ingeniería inversa o las técnicas activas de detección de manipulaciones que tienen como objetivo hacer que un programa funcione mal o que no funcione en absoluto si se modifica. [1] Es esencialmente una resistencia a la manipulación implementada en el dominio del software. Comparte ciertos aspectos, pero también difiere de tecnologías relacionadas como la protección contra copias y el hardware confiable , aunque a menudo se usa en combinación con ellos. La tecnología anti-manipulación generalmente hace que el software sea algo más grande y también tiene un impacto en el rendimiento. No hay demostrablemente segurasmétodos anti-manipulación de software; por lo tanto, el campo es una carrera armamentista entre atacantes y tecnologías anti-manipulación de software. [2]
La manipulación puede ser maliciosa, para obtener control sobre algún aspecto del software con una modificación no autorizada que altera el código y el comportamiento del programa de computadora . Los ejemplos incluyen la instalación de rootkits y puertas traseras , deshabilitación del monitoreo de seguridad, subvirtiendo la autenticación, inyección de código malicioso con el propósito de robo de datos o para lograr mayores privilegios de usuario, alteración del flujo de control y comunicación, omisión del código de licencia con el propósito de piratería de software , interferencia de código para extraer datos o algoritmos [3] y falsificación. Las aplicaciones de software son vulnerables a los efectos de la manipulación y los cambios de código a lo largo de su ciclo de vida, desde el desarrollo y la implementación hasta la operación y el mantenimiento.
La protección contra manipulaciones se puede aplicar de forma interna o externa a la aplicación que se está protegiendo. La protección contra la manipulación externa normalmente se logra mediante la supervisión del software para detectar la manipulación. Este tipo de defensa se expresa comúnmente como escáneres de malware y aplicaciones antivirus . La manipulación interna se utiliza para convertir una aplicación en su propio sistema de seguridad y, por lo general, se realiza con un código específico dentro del software que detectará la manipulación a medida que ocurre. Este tipo de defensa a prueba de manipulaciones puede tomar la forma de comprobaciones de integridad en tiempo de ejecución, como sumas de comprobación de redundancia cíclica , [4] medidas anti-depuración , cifrado u ofuscación . [5] La ejecución dentro de una máquina virtual se ha convertido en un método anti-manipulación común utilizado en los últimos años para software comercial; se utiliza, por ejemplo, en StarForce y SecuROM . [6] Algunos software anti-manipulación utilizan criptografía de caja blanca , por lo que las claves criptográficas no se revelan incluso cuando los cálculos criptográficos se observan con todo detalle en un depurador. [7] Una tendencia de investigación más reciente es el software tolerante a la manipulación, que tiene como objetivo corregir los efectos de la manipulación y permitir que el programa continúe como si no hubiera sido modificado. [2] Un esquema simple (y fácilmente derrotado) de este tipo se utilizó en el videojuego Diablo II , que almacenaba sus datos críticos del jugador en dos copias en diferentes ubicaciones de memoria y si una se modificaba externamente, el juego usaba el valor más bajo. [8]
El software anti-manipulación se utiliza en muchos tipos de productos de software, incluidos: sistemas integrados, aplicaciones financieras, software para dispositivos móviles, sistemas de dispositivos de red, anti-trampas en juegos , militar, [9] software de administración de licencias y administración de derechos digitales ( DRM). Se han desarrollado algunos paquetes de propósito general que pueden envolver el código existente con un mínimo esfuerzo de programación; por ejemplo, SecuROM y kits similares utilizados en la industria del juego, aunque tienen la desventaja de que también existen herramientas de ataque semi-genéricas para contrarrestarlos. [10] El software malicioso en sí puede y ha sido observado usando técnicas anti-manipulación, por ejemplo, la botnet Mariposa . [11]
Ver también
Referencias
- ^ Arnold, Michael; Schmucker, Martin; Wolthusen, Stephen D. (1 de enero de 2003). Técnicas y aplicaciones de marca de agua digital y protección de contenido . Casa Artech. pag. 229. ISBN 978-1-58053-664-6.
- ^ a b Jakubowski, MH; Saw, CW (N.); Venkatesan, R. (2009). "Software tolerante a manipulaciones: modelado e implementación". Avances en Información y Seguridad Informática (PDF) . Apuntes de conferencias en Ciencias de la Computación. 5824 . págs. 125-139. doi : 10.1007 / 978-3-642-04846-3_9 . ISBN 978-3-642-04845-6.
- ^ Cappaert, J .; Preneel, B. (2010). "Un modelo general para ocultar el flujo de control". Actas del décimo taller anual de ACM sobre gestión de derechos digitales - DRM '10 (PDF) . pag. 35. doi : 10.1145 / 1866870.1866877 . ISBN 9781450300919.
- ^ "Manteniendo a los piratas a raya" . Gamasutra . Consultado el 24 de diciembre de 2013 .
- ^ Chaboya, David (20 de junio de 2007). Estado de la práctica del software antimanipulación (PDF) (Informe técnico). Oficina de Tecnología de la Iniciativa de Protección de Software y Anti-manipulación, Laboratorio de Investigación de la Fuerza Aérea . Archivado desde el original (PDF) el 27 de diciembre de 2013 . Consultado el 24 de diciembre de 2013 .
- ^ Guillot, Y .; Gazet, A. (2009). "Manipulación de protección binaria semiautomática" (PDF) . Revista de Virología Informática . 5 (2): 119-149. doi : 10.1007 / s11416-009-0118-4 .
- ^ Oorschot, PC (2003). "Revisando la protección de software". Seguridad de la información (PDF) . Apuntes de conferencias en Ciencias de la Computación. 2851 . págs. 1-13. doi : 10.1007 / 10958513_1 . ISBN 978-3-540-20176-2.
- ^ Davis, Steven B. (2008). Protección de juegos . Aprendizaje Cengage. pag. 135. ISBN 1-58450-687-3.
- ^ Keller, John. "Las tecnologías anti-manipulación buscan mantener los datos críticos de los sistemas militares en las manos adecuadas: electrónica militar y aeroespacial" . Militaryaerospace.com . Consultado el 24 de diciembre de 2013 .
- ^ Honig, Andrew (2012). Análisis práctico de malware . Sin prensa de almidón. pag. 400. ISBN 978-1-59327-430-6.
- ^ Sinha, P .; Boukhtouta, A .; Belarde, VH; Debbabi, M. (2010). "Insights del análisis de la botnet Mariposa". 2010 Quinta Conferencia Internacional sobre Riesgos y Seguridad de Internet y Sistemas (CRiSIS) (PDF) . pag. 1. doi : 10.1109 / CRISIS.2010.5764915 . ISBN 978-1-4244-8641-0. Archivado desde el original (PDF) el 16 de septiembre de 2012 . Consultado el 4 de septiembre de 2015 .