Software antimanipulación


El software antimanipulació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 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 se diferencia de tecnologías relacionadas, como la protección contra copias y el hardware confiable , aunque a menudo se usa en combinación con ellas. La tecnología antimanipulación generalmente hace que el software sea un poco más grande y también tiene un impacto en el rendimiento. No hay demostrablemente segurométodos antimanipulación de software; por lo tanto, el campo es una carrera armamentista entre los atacantes y las tecnologías antimanipulació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 informático . Los ejemplos incluyen la instalación de rootkits y puertas traseras , la desactivación del control de seguridad, la subversión de la autenticación, la inyección de código malicioso con el fin de robar datos o para lograr mayores privilegios de usuario, alterar el flujo de control y la comunicación, omitir el código de licencia con el fin de piratear software , interferir con el 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 antimanipulación se puede aplicar interna o externamente a la aplicación que se protege. La antimanipulación externa normalmente se logra monitoreando el software para detectar la manipulación. Este tipo de defensa se expresa comúnmente como escáneres de malware y aplicaciones antivirus . La antimanipulación interna se utiliza para convertir una aplicación en su propio sistema de seguridad y generalmente 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 adoptar la forma de comprobaciones de integridad en tiempo de ejecución, como sumas de comprobación de redundancia cíclica , [4] medidas contra la depuración , cifrado u ofuscación . [5]La ejecución dentro de una máquina virtual se ha convertido en un método antimanipulación común utilizado en los últimos años para el software comercial; se usa por ejemplo en StarForce y SecuROM . [6] Algunos programas antimanipulació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 manipulaciones, cuyo objetivo es 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ácil de derrotar) de este tipo se usó en Diablo IIvideojuego, 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 antimanipulació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, antitrampas en juegos , militares, [9] software de gestión de licencias y gestión de derechos digitales ( DRM) sistemas. 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, el SecuROM y kits similares utilizados en la industria del juego, aunque tienen la desventaja de que también existen herramientas de ataque semigenéricas para contrarrestarlos. [10] El propio software malicioso puede y se ha observado utilizando técnicas antimanipulación, por ejemplo, la botnet Mariposa . [11]