En
esta sección intentaremos explicar lo mejor posible la jerga utilizada al hablar de virus
informáticos, intentaremos crear una biblioteca de información de los últimos virus, la
manera de eliminarlos manualmente de su máquina y otras recomendaciones para evitar
quedar contaminados. Adicionalmente colocaremos los nombres y explicación de los
últimos hoaxes que aparecen, esperamos poder mantener esta sección lo mas actualizada
posible para su beneficio. |
|
GLOSARIO
DE TERMINOS
BUG
Un error de la programación en un programa que puede tener efectos no deseados.
Ejemplos: Varios problemas de la garantía del navegador , Y2K problemas del software.
Categoría: Broma (HOAX)
Normalmente es un email que se manda por correo en forma de cadena, que describe un virus
inexistente, y por lo general mencionan efectos destructivos y que no tienen cura.
Un hoax (engaño o broma de mal gusto) es un e-mail que
recibes como un supuesto mensaje importante, pidiéndote que lo transfieras de manera casi
urgente a toda la gente posible, para que tome conciencia de esta información. Sin
embargo, el mensaje es falso, y enviarlo no logrará nada más que crear mensajes chatarra
innecesarios, similares a las cadenas de cartas, con el propósito de generar tráfico de
mensajes basura en la red, y logrando que pierdas tu tiempo en cosas inútiles.
Si comparamos los Hoaxes con los virus podremos encontrar
ciertas similitudes, como por ejemplo:
- Un virus es una porción de código malicioso oculto tras
un archivo o programa inofensivo, mientras que un hoax es un mensaje electrónico que
transmite basura, oculta detrás de una verdadera e importante historia.
- La mayoría de los virus se expanden por la Web vía mail,
los hoaxes también.
- Un virus interrumpe o daña el rendimiento de tu
computadora, un hoax interrumpe la productividad ya que hace que los usuarios pierdan
tiempo leyéndolo y reenviándolo.
Como funciona un Hoax?
Aquí si se establecen las grandes diferencia entre un
verdadero virus, y un mensaje de correo chatarra. Como dijimos anteriormente los virus son
programas que se expanden ellos mismos a través del correo electrónico, llegando hasta
las direcciones de correo que encuentra en las libretas de direcciones de las máquinas
que visita, y por supuesto realiza todo el proceso sin que te des cuenta. Pero un Hoax no
es un programa ni un script, y no puede reproducirse por si solo, ya que necesita que cada
persona que lo lee lo reenvíe. Aunque ambos son bastantes tramposos, la única arma de
engaño que puede utilizar un hoax es la convicción, ya que debe lograr convencer con la
historia que relata a cada usuario que lo lea para que vuelva a mandarselo a todos los de
su lista.
Categoría: Chiste (JOKE)
Un programa indemne que causa varias actividades benignas desplegadas en su computadora
(ej., un salva pantallas que se dispara inesperadamente).
Categoría: caballo Trojano (Trojan horse)
Un programa que crea copias de si mismo, pero daña o compromete la seguridad
de la computadora. Típicamente llega a través de email, y no hace se envía a si mismo,
llega en la forma de un programa o software de cualquier clase.
Categoría: Virus
Un programa o codificación que se ejecuta y que infecta otros programas, el sector
de booteo, el sistema de particiones o documentos. La mayoría de los virus se replican y
causan mucho daño.
Categoría: Gusano (Worm)
Un programa que hace copias de sí mismo, por ejemplo de una unidad de discos a otro,
usando email o algun otro mecanismo del transporte. Daña y compromete la seguridad de la
computadora. Llegaría en la forma de un programa chiste o software de cualquier clase.
Causas de inestabilidad en el sistema
Este daño puede causar que la computadora se bloquee o se comienze a comportar en
una moda inesperada.
Compromete la seguridad
Esta carga maliciosa puede intentar ganar acceso a contraseñas u otro escenas de la
garantía sistema-niveladas. También puede buscar aberturas en el Internet componentes
del proceso de la computadora instalar un programa en ese sistema que se puede controlar
remotamente por alguien desde el Internet.
Daño
El componente del daño mide la cantidad de daño que una amenaza dada puede infligir.
Esta medida incluye eventos activos, estorba servidores del correo electronico, anula o
modifica archivos, suelta información confidencial, degradación de la ejecución,
errores en la codificación del virus, compone escenas de la garantía, y facilidad por el
que se puede arreglar el daño.
Degrada ejecución
Este [carga pagadacarga ejecutada] retarda funcionamientos de la computadora. Este puede
envolver asigna memoria disponible, crea archivos que consumen disco espacia, o causa
programas cargar o procesa un programa más despacio.
Anula archivos
Este carga ejecutada anula varios archivos en el disco duro. El número y tipo de archivos
se puede anular varía ese entre viruses.
Distribución
Este componente mide cómo rápidamente se extender mismo una amenaza.
Virus Encriptado
Un virus que usa encripcion para esconderse a si mismo de exploradores del virus. Esta
clase de codificacion la realiza para engañar al antivirus, con el fin de no ser
descubierto.
Distribución geográfica
Esta mide el rango de situaciones separadas geográficas donde se han informado
infecciones. Las medidas son altas (amenaza global), medio (amenaza se presenta en unas
regiones geográficas), y bajo (local o amenaza no-salvaje).
Longitud de la infección
Éste es el tamaño, en bytes, de la codificación viral que se inserta en un programa por
el virus. Si éste es un gusano o Trojan caballo la longitud representa el tamaño del
archivo.
Balanza grande de maquina de email
Este tipo de carga ejecutada se auto envia por email a números grandes de personas. Se
hace éste normalmente por acceder a un libro de la direcciónes local y le envía
[emails] a un cierto número de personas dentro de ese libro de la dirección.
Codificación móvil
Codificación (software) se transfiere ése de un organizador a un cliente (U otra
computadora del organizador) se procesa un programa (corre). Cuando hablamos de malévolo
codificación móvil que usaríamos un Gusano como un ejemplo.
Modifica archivos
Este cambios del carga ejecutada los volúmenes de archivos en la computadora y puede
adulterar archivos.
Nombre de atadura
La mayoría de se extienden como ataduras a [emails] gusanos. Este campo indica el nombre
usual o nombres que la atadura se llamaban.
Número de países
Ésta es una medida del número de países donde se saben han ocurrido infecciones.
Número de infecciones
Éste mide se infecta el número de computadoras que se saben.
Número de sitios
Éste mide el número de situaciones con infectó computadoras. Este normalmente les
refiere a organizaciones tal como compañías, oficinas gubernamentales, y el gusto.
carga ejecutada
Éste es el malévolo actividad que el virus ejecuta. No todo viruses tienen [carga
ejecutadas], pero hay algunos ése ejecuta acciones destructivas.
carga ejecutada activa
Ésta es la condición que causa el virus activar o gota su carga ejecutada destructivo.
Unos viruses activan su [carga ejecutadas] en una cierta fecha. Otros pueden activar su
carga ejecutada basado en la ejecución de ciertos programas o la disponibilidad de un
Internet conexión.
Polymorphic Virus
Un virus que tiene la habilidad cambiar su modelo del byte cuando reproduce por eso evita
descubrimiento por cordón simple examina técnicas.
Puertos
Este campo indica el TCP/ IP pone a babor que la amenaza puede intentar usar.
Descargos información confidencial
Este carga ejecutada puede intentar ganar acceso a datos importantes guardó en la
computadora tal como tarjeta del crédito numera.
Quitado
Éste mide la habilidad nivela necesitaba quitar la amenaza de una computadora dada.
Quitado a veces envuelve anula archivos y modifica entradas del registro. Los tres niveles
son difíciles (requiere a un técnico experimentado), moderado (requiere algo de
especialización), y fácil (requiere pequeño o nada de especialización).
Compartido maneja
Este campo indica si o no la amenaza intentará reproducir mismo por trazó maneja U otro
volúmenes del servidor al que se puede autenticar el usuario.
Tamaño de atadura
Este campo indica el tamaño del archivo que se ata al infectó correo electronico.
Asunto de correo electronico
Unos gusanos extendieron por enviar los a otro personas correo electronico acabado. Este
campo indica el asunto del correo electrónico que es enviado por el gusano.
Blanco de infección
Este campo indica los tipos de archivos ese puede ser infectado por el virus.
Descripción técnica
Esta sección describe los detalles específicos de la infección tal como modificaciones
de la entrada del registro y archivos que son manipulados por el virus.
Avalúo de la amenaza
Ésta es una valuación de la severidad del virus, gusano o Trojan caballo. Incluye el
daño que esta amenaza causa, cómo rápidamente puede extender a otro computadoras
(distribución), y cómo extendido se saben estar las infecciones (salvaje).
[containment] de la amenaza
Ésta es una medida de cómo pues tecnología presente antivirus puede guardar esta
amenaza de extender. Como una regla general, se bien-contienen técnicas del virus más
viejas generalmente; amenaza nueva teclea o viruses muy complejos pueden ser más
difíciles contener, y es [correspondingly] más una amenaza a la comunidad del usuario.
Las medidas son altas (se bien-contiene la amenaza), medio (se contiene la amenaza
parcialmente), y bajo (la amenaza no es corrientemente [containable]).
Estampa del Time de atadura
Este campo indica la fecha y tiempo de la atadura del archivo.
Definiciones del virus
Este campo indica cuando las definiciones del virus que incluyen protección por este
virus eran públicamente Actualizadas en vivo disponible acabado o el Actualizador
Inteligente. Pulse aquí
para bajar las Definiciones de Virus de Symantec .
Salvaje
El componente salvaje mide la magnitud al que un virus ya extiende entre usuarios de la
computadora. Esta medida incluye el número de sitios independientes que infectó, el
número de computadoras que infectó, la distribución geográfica de infección, la
habilidad de tecnología presente para combatir la amenaza, y la complejidad del virus
Mirada al pasado. (Cortesia GriYo)
Si damos un paseo por Internet en busca de páginas
especializadas en el tema de los virus informáticos nos encontraremos con un montón de
documentos, colecciones de virus, fuentes, links muertos y todo tipo de información
totalmente obsoleta. El motivo de esto lo encontramos en la desaparición paulatina del
MsDos. De los cerca de 30.000 virus conocidos hoy en día el 90% aproximadamente son virus
de MsDos. La mayoría de estos virus de MsDos que fueron tan famosos hace años dejaron de
funcionar con la aparición de Windows. Muchos virus utilizan métodos indocumentados y
poco compatibles, y de igual forma que ocurre con los *exploits* o con los *denial of
service* las técnicas empleadas dejan de funcionar, y los problemas de seguridad se
arreglan ( aunque en ocasiones se acrecientan ).
Con la aparición de Windows 3.0 muchos virus perdieron la
compatibilidad, pero la *scene* aun estaba muy concurrida, y no tardaron en salir a la luz
trabajos orientados a este entorno. Esto mismo sucedió con la llegada de las sucesivas
versiones de Windows anteriores al 95. Trabajos como el virus Sucksexee ( aka Implant.6128
) exprimieron hasta los extremos más insospechados toda la capacidad del MsDos. Algunas
características de este virus son:
- Full-stealth:
Esta técnica persigue ocultar totalmente la existencia del
virus. Si abrimos un fichero infectado este aparecerá limpio, y lo mismo ocurrirá si lo
intentamos con un debugger. No se aprecia aumento alguno en el tamaño de los ejecutables,
pese a que algunos han crecido cerca de 6Kb.
- Retro-virus:
El virus fue diseñado para atacar directamente al software
antivirus. Un ejemplo: Si estando el virus activo en memoria ejecutamos el antes
conocidísimo ThunderByte Antivirus, ciertos parámetros son añadidos automáticamente a
la línea de comandos, de forma que el escaneo de la memoria quedaba desactivado sin que
el usuario se percatara de esta perdida de operatividad en su software antivirus. Otra
característica *retro* de este virus es su capacidad para desactivar el arranque desde
disquetes, lo que obligaba a arrancar desde la unidad de disco ya infectada.
- Polimorfismo:
Esta técnica llegó de la mano de autores como Dark Avenger
con su "Mutation Engine" o el grupo holandés Trident con su "TPE". La
idea básica es crear un bucle sencillo que recorre el virus, encriptando cada byte. Este
bucle es generado de forma tal que varia de una infección a otra. Las posibles
variaciones en el bucle son:
- Recorrer el virus desde la dirección de memoria mas baja,
incrementando en cada iteración el puntero que hace referencia a esta dirección de
memoria. O el caso opuesto, recorrer el virus desde el final ( dirección de memoria mas
alta ) hasta el principio, decrementando el puntero en cada iteración.
- En cada iteración el puntero incrementa o decrementa, pero
esta variación puede ser de 1 byte o 2 bytes, puesto que el 8086 y sus sucesores
permitían realizar operaciones con bytes o words.
- La operación aritmética que se usa para encriptar el virus
también es variable. Cualquiera vale, por simple que sea, lo importante es alcanzar la
máxima variabilidad. El bucle puede recorrer el virus sumando 01h a cada byte, restando,
haciendo un OR EXCLUSIVO o incluso rotando cada valor un numero de bits a la izquierda o
derecha. Lo importante es que la operación utilizada sea sencilla y tenga inversa.
Como vemos, es posible hacer infinitas combinaciones, y esa
es la clave. Los antivirus, por aquel entonces, realizaban la búsqueda de ficheros
infectados mediante una sencilla comparación de cadenas. El antivirus abría cada fichero
del disco y buscaba en su interior fragmentos de virus. Este método presentaba problemas
claramente evidentes:
- Es necesario conocer la cadena que se quiere buscar, por lo
que solo podrán ser detectados aquellos virus *conocidos* por el antivirus.
- Al crecer el numero de virus crece la cantidad de cadenas a
buscar dentro de cada fichero, con la consiguiente ralentización del proceso de
escaneado.
El polimorfismo significaba la evasión total y efectiva a
estos métodos de detección. Un virus polimórfico presenta un numero tan elevado de
posibles mutaciones que seria imposible almacenar y buscar todas sus variantes.
- Multipartito:
El virus infecta múltiples objetivos en un mismo sistema. En
este caso se trata del MBR (Master Boot Record), los archivos con extensión .COM, los
archivos .EXE e incluso los archivos. SYS. Encontramos esta característica en su máxima
expresión en los virus multi-plataforma.
Me atrevería a decir que difícilmente se podía llegar
tan lejos en las técnicas empleadas sin mermar gravemente la capacidad del sistema, pero
para entonces los desarrolladores de antivirus menos incompetentes dieron con lo que pudo
haber sido la solución definitiva. Apareció la búsqueda heurística, basada en la
aplicación de técnicas de inteligencia artificial. Pero todos sabemos que por muy
inteligente que sea un programa de ordenador, jamas lo será de igual manera que un ser
humano, y no han tardado en aparecer técnicas *anti-heuristicas*. Pero veamos un poco mas
sobre la búsqueda heurística. Se trata de examinar un programa en busca de signos de
infección. Un virus, cuando infecta un ejecutable, necesita realizar algunos cambios en
él, siendo estos cambios sospechosos el objeto de la búsqueda por parte del anti-virus.
Los motores heurísticos más avanzados eran capaces de detectar virus polimórficos,
puesto que detectaban el bucle de encriptación del que hablábamos anteriormente, e
incluso llegaban mas lejos, y mediante emulación eran capaces de deshacer este bucle y
obtener una imagen clara del virus, pudiendo aplicar entonces la búsqueda por cadenas
tradicional. El problema de la búsqueda heurística radica en que ofrece siempre una
solución, aunque esta pueda no ser la correcta. Me refiero a los falsos positivos, es
decir, programas que por sus especiales características dan positivo al buscar virus en
ellos. En mas de una ocasión algún conocido antivirus ha dado por infectado algún
fichero del sistema, con la subsiguiente avalancha de usuarios mosqueados. Con la
aparición de Windows 95 y de la nueva plataforma Win32 todas estas técnicas,
dependientes del funcionamiento interno del MsDos, dejaron de funcionar. La mayoría de
los virus de sector de arranque se delatan a sí mismos tras infectar una maquina con
Windows 95, que incorpora algunos mecanismos de protección contra los virus, básicos y
primitivos. Otro ejemplo de esta pérdida de funcionalidad son los virus *stealth*, puesto
que emplean técnicas no compatibles con el nuevo formato de nombres largos y las nuevas
funciones de búsqueda de ficheros del sistema.
El desarrollo de virus se paralizó durante un tiempo.
Seguían apareciendo virus de MsDos, pero el peligro estaba ya lejos. Aparecieron los
primeros intentos dentro del ámbito de Win32, de la mano del siempre innovador grupo VLAD
y su virus Bizatch ( denominado Boza por la gente de los anti-virus). Este virus empleaba
técnicas primitivas que impedían su correcto funcionamiento ( como asumir direcciones
fijas en memoria para el kernel y sus funciones), pero suponía un primer paso que
seguramente alentó a muchos otros autores que no tardaron en dar el paso y empezar a
investigar sobre esta nueva plataforma. Fue en este paso, para algunos de gigante, cuando
desapareció gran parte de la scene. Las paginas web que antes recogían puntual
información sobre la scene empezaron a no ser actualizadas con tanta regularidad, dada la
falta de avances o descubrimientos. Solo algunos grupos concentraron todas sus fuerzas en
la nueva plataforma, y aparecieron los primeros intentos serios, de la mano de grupos como
IKX o 29A.Jacky Qwerty, autor del grupo 29A, fue sin duda uno de los impulsores de la
tecnología vírica bajo 32bits. Sus virus Jacky y Cabanas asentaron las bases de lo que
luego serian infectores más complejos y avanzados. Los desarrolladores de anti-virus aun
andaban pensando como portar sus motores de búsqueda heurística a Win32 cuando apareció
el primer virus polimórfico capaz de infectar ejecutables de Win32. Marburg pillo a
muchos con los pantalones bajados, y eso le impulso *in-the-wild* llegando a aparecer
ficheros infectados en los CdRom de revistas ampliamente difundidas, como PcGamer o
PcPowerPlay. Las primeras muestras del virus Marburg cayeron en manos de los
desarrolladores de anti-virus en agosto de 1998, cuando el virus llevaba ya cerca de 9
meses *in-the-wild*. Pese a esto aun tardaron unos dos meses mas en ser capaces de adaptar
sus paquetes para ser capaces de afrontar este nuevo ataque. La guerra se declaraba de
nuevo.
La nueva plataforma suponía un esfuerzo extra a la hora de
desarrollar virus, pero su mayor potencial ponía en las manos de sus autores armas aun
más potentes. Describir este nuevo potencial y su aplicación al desarrollo de virus es
el objetivo de este articulo.
Un alfabeto infinito.
Esta claro que 16bits no son lo mismo que 32bits, ¿pero
que diferencia supone esto a la hora de diseñar un motor de polimorfismo?. Para empezar
ya no contamos solo con registros de 16bits ( ax, bx, etc..) si no que disponemos de toda
la potencia del juego de registros extendidos ( eax, ebx, etc..). Una primera mejora sobre
un motor de polimorfismo de 16bits seria añadir los 16bits que le faltan para llegar a
32. Veamos un ejemplo con una instrucción sencilla en ensamblador, MOV con el registro
acumulador como destino. Donde antes solo podíamos generar:
MOV AL,imm8bit
MOV AH,imm8bit
MOV AX,imm16bit
Ahora contamos con las siguientes posibilidades:
MOV AL,imm8bit
MOV AH,imm8bit
MOV AX,imm16bit
MOV EAX,imm32bit
Esto solo supone un incremento en la variabilidad de una
sola instrucción, pero si ampliamos el ejemplo al resto de los registros y al resto de
las instrucciones veremos que se trata de una importante mejora. Otro aspecto importante
radica en el acceso a memoria que el bucle realiza a la hora de desencriptar el virus. En
los antiguos motores de polimorfismo contábamos con acceso byte a byte o word a word, por
ejemplo:
ADD BYTE PTR DS:[mem],imm8bit
ADD WORD PTR DS:[mem],imm16bit
Puesto que ahora andamos en Win32 no solo nos podemos
deshacer de los registros de segmento ( la memoria aparece plana a la vista de la
aplicación, no segmentada) si no que además contamos con instrucciones que acceden a
posiciones de memoria de 32bits. El ejemplo anterior se ampliaría a:
ADD BYTE PTR [mem],imm8bit
ADD WORD PTR [mem],imm16bit
ADD DWORD PTR [mem],imm32bit
De nuevo ganamos una sola posibilidad mas de variación,
pero repito, si esto lo aplicamos a todas las posibles instrucciones daremos con una
bonita explosión combinatoria, a la que aun nos queda por añadir mas posibilidades. Una
de ellas esta formada por los nuevos métodos de indexación, donde antes podíamos
generar:
ADD BYTE PTR DS:[reg],imm8bit
ADD BYTE PTR DS:[reg+imm],imm8bit
Ahora nos encontramos con las siguientes posibilidades:
ADD BYTE PTR [reg],imm8bit
ADD BYTE PTR [reg+imm],imm8bit
ADD BYTE PTR [reg+reg],imm8bit
ADD BYTE PTR [reg+reg+imm],imm8bit
Incluso podemos utilizar alguno de los exóticos modos de
indexación del 386+ como por ejemplo [reg*02h]. Aquí hemos ganados mas posibilidades,
que se multiplican al aplicar el ejemplo no solo a ADD y a referencias a BYTE, si no al
resto de las instruciones y al resto de los tamaños del operador ( WORD y DWORD).
Evidentemente, un gran potencial, y solo hemos empezado por analizar las instrucciones y
registros del procesador. La generación automática de código polimórfico alcanza sus
más altas cotas en aquellos engines capaces de seguir la evolución del código que
generan, conociendo en cualquier momento el estado de cualquier registro o incluso su
valor. A continuación podemos observar un fragmento del decriptor polimórfico que el
virus Win32.Influenza utiliza para ocultar su presencia en los ficheros infectados:
:00401376 E81D000000 call 00401398
. .
. .
. .
:00401398 BE5F4D853E mov esi,3E854D5F
:0040139D 87DE xchg esi,ebx
:0040139F 5B pop ebx
:004013A0 668BFB mov di,bx
:004013A3 8BF8 mov edi,eax
:004013A5 66BDB0C8 mov bp,C8B0
:004013A9 5D pop ebp
:004013AA 0F8C03000000 jl 004013B3
:004013B0 6687D3 xchg bx,dx
:004013B3 FD std
:004013B4 664B dec bx
:004013B6 E9AA260100 jmp 00413A65
. .
. .
. .
:00413A65 E815000000 call 00413A7F
. .
. .
.
| Introducción al tema Virus | Nuevos Virus 1 | Virus Glosario | |