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.
El software malintencionado que utiliza este
mecanismo de defensa realiza un cifrado de sí mismo o de la carga (y en
ocasiones incluso de otros datos del sistema) para evitar la detección o la
recuperación de datos. El software malintencionado cifrado contiene una rutina
de descifrado estática, una clave de cifrado y el código malintencionado
cifrado (que incluye una rutina de cifrado). Cuando se ejecuta, utiliza la
rutina de descifrado y la clave para descifrar el código malintencionado. A
continuación, crea una copia del código y genera una nueva clave de cifrado.
Emplea esa clave y la rutina de cifrado para cifrar la copia nueva de sí mismo,
agregando la clave nueva con la rutina de descifrado al inicio de la copia
nueva. A diferencia de los virus polimórficos, el software malintencionado de
cifrado utiliza siempre las mismas rutinas de descifrado, así que aunque el
valor de la clave (y, por tanto, la firma de los códigos malintencionados
cifrados) generalmente cambia de una infección a otra, los programas antivirus
pueden buscar la rutina de descifrado estática para detectar el software
malintencionado que utiliza este mecanismo de defensa.
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.