El software anti-manipulación dificulta que un atacante lo modifique. Las medidas empleadas pueden ser pasivas, como la ofuscación para dificultar la ingeniería inversa , o activas, como las técnicas de detección de manipulación, cuyo objetivo es provocar un mal funcionamiento o incluso impedir que un programa funcione si se modifica. [ 1 ] Esencialmente, se trata de resistencia a la manipulación implementada en el ámbito del software. Comparte ciertos aspectos, pero también difiere de tecnologías relacionadas como la protección contra copias y el hardware de confianza, aunque a menudo se utiliza en combinación con ellas. La tecnología anti-manipulación suele aumentar el tamaño del software y también afecta a su rendimiento. No existen métodos de software anti-manipulación que sean demostrablemente seguros ; por lo tanto, el campo se ha convertido en una carrera armamentística entre los atacantes y las tecnologías anti-manipulación de software. [ 2 ]
La manipulación puede ser maliciosa, buscando obtener control sobre algún aspecto del software mediante una modificación no autorizada que altere el código y el comportamiento del programa informático . Algunos ejemplos incluyen la instalación de rootkits y puertas traseras , la desactivación de la monitorización de seguridad, la subversión de la autenticación, la inyección de código malicioso con el fin de robar datos o conseguir mayores privilegios de usuario, la alteración del flujo de control y la comunicación, la elusión del código de licencia con el fin de piratear software , la interferencia de código para extraer datos o algoritmos [ 3 ] y la 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 puede aplicarse tanto interna como externamente a la aplicación que se protege. La protección externa contra manipulaciones normalmente se logra mediante la monitorización del software para detectar manipulaciones. Este tipo de defensa se expresa comúnmente en escáneres de malware y aplicaciones antivirus . La protección interna contra manipulaciones se utiliza para convertir una aplicación en su propio sistema de seguridad y generalmente se realiza con código específico dentro del software que detectará la manipulación en el momento en que ocurra. Este tipo de defensa a prueba de manipulaciones puede adoptar 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 común de protección contra manipulaciones utilizado en los últimos años para software comercial; se utiliza, por ejemplo, en StarForce y SecuROM . [ 6 ] Algunos programas de protección contra manipulaciones 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 manipulaciones, que busca corregir los efectos de la manipulación y permitir que el programa continúe como si no se hubiera modificado. [ 2 ] Un esquema simple (y fácilmente burlable) 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 utilizaba el valor más bajo. [ 8 ]
El software anti-manipulación se utiliza en muchos tipos de productos de software, incluyendo: sistemas embebidos, aplicaciones financieras, software para dispositivos móviles, sistemas de dispositivos de red, sistemas anti-trampas en juegos , aplicaciones militares, [ 9 ] software de gestión de licencias y sistemas de gestión de derechos digitales (DRM). Se han desarrollado algunos paquetes de propósito general que pueden encapsular código existente con un mínimo esfuerzo de programación; por ejemplo, SecuROM y kits similares utilizados en la industria de los videojuegos, aunque tienen la desventaja de que también existen herramientas de ataque semigenéricas para contrarrestarlos. [ 10 ] El propio software malicioso puede utilizar, y de hecho se ha observado, técnicas anti-manipulación, por ejemplo, la botnet Mariposa . [ 11 ]
Véase también
Referencias
- ↑ Arnold, Michael; Schmucker, Martin; Wolthusen, Stephen D. (1 de enero de 2003). Técnicas y aplicaciones de la marca de agua digital y la protección de contenido . Artech House. pág. 229. ISBN 978-1-58053-664-6.
- 1 2 Jakubowski, MH; Saw, CW (N.); Venkatesan, R. (2009). "Software tolerante a manipulaciones: modelado e implementación". Avances en seguridad informática y de la información (PDF) . Notas de clase en ciencias de la computación. Vol. 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 la ACM sobre gestión de derechos digitales - DRM '10 (PDF) . pág. 35. doi : 10.1145/1866870.1866877 . ISBN 9781450300919. S2CID 3755320 .
- ↑ "Manteniendo a raya a los piratas" . Gamasutra . Consultado el 24 de diciembre de 2013 .
- ↑ Chaboya, David (20 de junio de 2007). Estado de la práctica de la protección contra manipulaciones de software (PDF) (Informe técnico). Oficina de Tecnología de la Iniciativa de Protección contra Manipulaciones y Software, Laboratorio de Investigación de la Fuerza Aérea . Archivado del original (PDF) el 27 de diciembre de 2013. Recuperado el 24 de diciembre de 2013 .
- ↑ Guillot, Y.; Gazet, A. (2009). "Manipulación semiautomática de la protección binaria" (PDF) . Journal in Computer Virology . 5 (2): 119– 149. doi : 10.1007/s11416-009-0118-4 . S2CID 7165477 .
- ↑ Oorschot, PC (2003). "Revisiting Software Protection". Information Security (PDF) . Lecture Notes in Computer Science. Vol. 2851. pp. 1–13 . doi : 10.1007/10958513_1 . ISBN 978-3-540-20176-2.
- ↑ Davis, Steven B. (2008). Protecting Games . Cengage Learning. p. 135. ISBN 978-1-58450-687-4.
- ↑ Keller, John (26 de abril de 2010). "Las tecnologías anti-manipulación buscan mantener los datos críticos de los sistemas militares en las manos adecuadas - Military & Aerospace Electronics" . Militaryaerospace.com . Consultado el 24 de diciembre de 2013 .
- ↑ Honig, Andrew (2012). Análisis práctico de malware . No Starch Press. pág. 400. ISBN 978-1-59327-430-6.
- ↑ Sinha, P.; Boukhtouta, A.; Belarde, VH; Debbabi, M. (2010). «Perspectivas del análisis de la botnet Mariposa». Quinta Conferencia Internacional sobre Riesgos y Seguridad de Internet y Sistemas (CRiSIS) de 2010 (PDF) . pág. 1. doi : 10.1109/CRISIS.2010.5764915 . ISBN 978-1-4244-8641-0. S2CID 12673670 . Archivado del original (PDF) el 16-09-2012 . Recuperado el 04-09-2015 .
- Software de seguridad informática