Mecanismos de defensa de los virus informáticos
Numerosos ejemplos de software malintencionado utilizan algún tipo de mecanismo de defensa para reducir la probabilidad de ser detectados y eliminados. En la siguiente lista se ofrecen algunos ejemplos de las técnicas empleadas
Armadura
Este tipo de mecanismo de defensa emplea técnicas que intentan impedir el análisis del código malintencionado, por ejemplo, detectar cuándo se ejecuta un depurador e intentar evitar que funcione correctamente, o agregar grandes cantidades de código sin sentido para ocultar el objetivo del código malintencionado.
Ocultación.
El software malintencionado utiliza esta técnica para ocultarse mediante la interceptación de solicitudes de información y la devolución de datos falsos. Por ejemplo, un virus puede almacenar una imagen del sector de inicio no infectado y mostrarla cuando se intente visualizar el sector de inicio afectado. El virus informático más antiguo conocido, denominado “Brain”, utilizó esta técnica en 1986.
Cifrado.
Software malintencionado oligomórfico.
Se trata de software que utiliza el cifrado como mecanismo para defenderse y puede cambiar la rutina de cifrado únicamente un número determinado de veces (generalmente una cantidad reducida). Por ejemplo, un virus que puede generar dos rutinas de descifrado diferentes se clasificaría como oligomórfico.
Software malintencionado polimórfico.
Utiliza el cifrado como mecanismo de defensa para cambiarse con el fin de evitar ser detectado, generalmente mediante el cifrado del propio software malintencionado con una rutina de cifrado para, a continuación, proporcionar una clave de descifrado diferente para cada mutación. De este modo, el software malintencionado polimórfico utiliza un número ilimitado de rutinas de cifrado para evitar la detección. Cuando el software se replica, una parte del código de descifrado se modifica. En función del tipo específico de código, la carga u otras acciones llevadas a cabo pueden utilizar o no el cifrado. Generalmente existe un motor de mutación, que es un componente incorporado del código malintencionado de cifrado que genera rutinas de cifrado aleatorias. Este motor y el software malintencionado quedan cifrados y la nueva clave de descifrado se pasa con ellos.