Métodos de Infección
A la hora de realizar la infección se pueden utilizar diferentes técnicas. Algunas podrían ser las siguientes:
Añadidura o empalme: Consiste en agregar al final del archivo ejecutable el código del virus, para que así una vez se ejecute el archivo, el control pase primeramente al virus y tras ejecutar la acción que desee, volverá al programa haciendo que funcione de manera normal. El inconveniente de esta técnica es que el tamaño del archivo será mayor que el original haciendo que sea más fácil su detección.
Inserción: No es una técnica muy usada por los programadores de virus ya que requiere técnicas de programación avanzadas. El motivo es que este método consiste en insertar el código del virus en zonas de código no usadas dentro del programa infectado. Así lo que se consigue es que el tamaño del archivo no varíe, pero el detectar las zonas de código en donde puede ser insertado el virus es complejo.
Reorientación: Es una variante del método de inserción. Consiste en introducir el código del virus en zonas del disco que estén marcadas como defectuosas o en archivos ocultos del sistema. Al ejecutarse introducen el código en los archivos ejecutables infectados. La ventaja principal es que al no estar insertado en el archivo, su tamaño puede ser mayor con lo que podría tener una mayor funcionalidad. Como inconveniente se encuentra su fácil eliminación ya que bastaría con eliminar archivos ocultos sospechosos o con sobrescribir las zonas del disco marcadas como defectuosas.
Polimorfismo: Es el método más avanzado de contagio. Consiste en insertar el código del virus en un ejecutable al igual que el método de añadidura o empalme, pero para evitar que el tamaño del mismo aumente lo que realiza es una compactación del propio código del virus y del archivo infectado, haciendo que entre ambos el tamaño del archivo no aumente. Una vez se ejecuta el archivo, el virus actúa descompactando en memoria las partes del código que había compactado anteriormente. Esta técnica se podría mejorar usando métodos de encriptación para disfrazar el código del virus.
Sustitución: Es el método más primitivo. Consiste en sustituir el código del archivo infectado por el código del virus. Cuando se ejecuta, actúa únicamente el código del virus, infectando o eliminando otros archivos y terminando la ejecución del programa mostrando algún tipo de mensaje de error. La ventaja de esta técnica es que cada vez que se ejecuta se realizan “copias” del virus en otros archivos.
Tunneling: Técnica compleja usada por programadores de virus y antivirus para evitar las rutinas al servicio de interrupción y conseguir control directo sobre ésta. El demonio de protección de los antivirus cuelga de todas las interrupciones usadas por los virus, de tal forma que cuando un virus pretende escribir/abrir un ejecutable el antivirus recibe una alerta donde comprobará si es o no virus y le permite o no su acceso. Si la llamada no tiene peligro el módulo del antivirus llamará a la INT 21 original. De esta forma un virus con tunneling intentará obtener la dirección original de la INT 21 que está en algún lugar del módulo residente del antivirus. Si se consigue obtener esa dirección podrá acceder directamente a INT 21 sin necesidad de pasar por el antivirus. De esta forma le “pasará por debajo”, lo “tuneleará”.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?