lunes, 22 de septiembre de 2008

TECNICA DE PROGRAMACION


Técnicas Stealth

Son técnicas "furtivas" que utilizan para pasar desapercibidos al usuario y a los antivirus. Habitualmente los virus ocultan el tamaño real de los archivos que han contaminado, de forma que si hacemos un DIR la información del tamaño de los archivos puede ser falsa. Los virus de tabla de partición guardan una copia de la FAT original en otro lugar del disco que marcan como sectores defectuosos para mostrársela al usuario cuando haga por ejemplo un FDISK. Incluso hay virus que detectan la ejecución de determinados antivirus y descargan de la memoria partes de su propio código "sospechoso" para cargarse de nuevo cuando estos han finalizado su búsqueda.

Tunneling

Es una técnica usada por programadores de virus y antivirus para evitar todas las rutinas al servicio de una interrupción y tener así un control directo sobre esta. Requiere una programación compleja, hay que colocar el procesador en modo paso a paso. En este modo de funcionamiento, tras ejecutarse cada instrucción se produce la interrupción 1. Se coloca una ISR (Interrupt Service Routine) para dicha interrupción y se ejecutan instrucciones comprobando cada vez si se ha llegado a donde se quería hasta recorrer toda la cadena de ISRs que halla colocando el parche al final de la cadena.

Antidebuggers

Un debugger es un programa que permite descompilar programas ejecutables y mostrar parte de su código en lenguaje original. Los virus usan técnicas para evitar ser desensamblados y así impedir su análisis para la fabricación del antivirus correspondiente.

Polimorfismo o auto mutación

Es una técnica que consiste en variar el código vírico en cada infección (más o menos lo que hace el virus del SIDA en los humanos con su capa proteica). Esto obliga a los antivirus a usar técnicas heurísticas ya que como el virus cambia en cada infección es imposible localizarlo buscándolo por cadenas de código. Esto se consigue utilizando un algoritmo de encriptación que pone las cosas muy difíciles a los antivirus. No obstante no se puede codificar todo el código del virus, siempre debe quedar una parte sin mutar que toma el control y esa es la parte más vulnerable al antivirus.
La forma más utilizada para la codificación es la operación lógica XOR. Esto es debido que esta operación es reversible:
7 XOR 9 = 2 2 XOR 9 = 7
En este caso la clave es el número 9, pero utilizando una clave distinta en cada infección se obtiene una codificación también distinta.
Otra forma también muy utilizada consiste en sumar un número fijo a cada byte del código vírico.


TSR

Los programas residentes en memoria (TSR) permanecen alojados en esta durante toda su ejecución. Los virus utilizan esta técnica para mantener el control sobre todas las actividades del sistema y contaminar todo lo que encuentren a su paso. El virus permanece en memoria mientras la computadora permanezca encendido. Por eso una de las primeras cosas que hace al llegar a la memoria es contaminar los archivos de arranque del sistema para asegurarse de que cuando se vuelva a arrancar la computadora volverá a ser cargado en memoria.

No hay comentarios: