Martes 09 de Febrero de 2010
Sitios Recomendados
Un virus
en simplemente un programa. Una secuencia de instrucciones y rutinas creadas con
el único objetivo de alterar el correcto funcionamiento del sistema y, en la
inmensa mayoría de los casos, corromper o destruir parte o la totalidad de los
datos almacenados en el disco. De todas formas, dentro del término "virus
informático" se suelen englobar varios tipos de programas, por lo que a
continuación se da un pequeño repaso a cada uno de ellos poniendo de manifiesto
sus diferencias. La clasificación es la siguiente:
* Virus 'Puro'
*
Caballo de Troya
* Bomba Lógica
* Gusano o Worm
Todos estos
programas tienen en común la creación de efectos perniciosos; sin embargo, no
todos pueden ser considerados como virus propiamente dichos.
Virus
Puro
Un verdadero virus tiene como características más importantes la
capacidad de copiarse a sí mismo en soportes diferentes al que se encontraba
originalmente, y por supuesto hacerlo con el mayor sigilo posible y de forma
transparente al usuario; a este proceso de autorréplica se le conoce como
"infección", de ahí que en todo este tema se utilice la terminología propia de
la medicina: "vacuna", "tiempo de incubación", etc. Como soporte entendemos el
lugar donde el virus se oculta, ya sea fichero, sector de arranque, partición,
etc.
Un virus puro también debe modificar el código original del
programa o soporte objeto de la infección, para poder activarse durante la
ejecución de dicho código; al mismo tiempo, una vez activado, el virus suele
quedar residente en memoria para poder infectar así de forma trasparente al
usuario.
Caballo de Troya
Al contrario que el virus puro, un
Caballo de Troya es un programa maligno que se oculta en otro programa legítimo,
y que produce sus efectos perniciosos al ejecutarse este último. En este caso,
no es capaz de infectar otros archivos o soportes, y sólo se ejecuta una vez,
aunque es suficiente, en la mayoría de las ocasiones, para causar su efecto
destructivo.
Bomba Lógica
Se trata simplemente de un programa
maligno que permanece oculto en memoria y que solo se activa cuando se produce
una acción concreta, predeterminada por su creador: cuando se llega a una fecha
en concreto (Viernes 13), cuando se ejecuta cierto programa o cierta combinación
de teclas, etc.
Gusano o Worm
Por último, un gusano en un
programa cuya única finalidad es la de ir consumiendo la memoria del sistema,
mediante la realización de copias sucesivas de sí mismo, hasta desbordar la RAM,
siendo ésta su única acción maligna.
La barrera entre virus puros y el
resto de programas malignos es muy difusa, prácticamente invisible, puesto que
ya casi todos los virus incorporan características propias de uno o de varios de
estos programas: por ejemplo, los virus como el Viernes 13 son capaces de
infectar otros archivos, siendo así virus puro, pero también realizan su efecto
destructivo cuando se da una condición concreta, la fecha Viernes 13,
característica propia de una bomba lógica; por último, se oculta en programas
ejecutables teniendo así una cualidad de Caballo de Troya. De ahí la gran
confusión existente a este respecto.
Formas De
Infección
Antes de nada, hay que recordar que un virus no puede
ejecutarse por si solo, necesita un programa portador para poder cargarse en
memoria e infectar; asimismo, para poder unirse a un programa portador necesita
modificar la estructura de este, para que durante su ejecución pueda realizar
una llamada al código del virus.
Las partes del sistema más susceptibles
de ser infectadas son el sector de arranque de los disquetes, la tabla de
partición y el sector de arranque del disco duro, y los ficheros ejecutables
(*.EXE y *.COM). Para cada una de estas partes tenemos un tipo de virus, aunque
muchos son capaces de infectar por sí solos estos tres componentes del sistema.
En los disquetes, el sector de arranque es una zona situada al principio
del disco, que contiene datos relativos a la estructura del mismo y un pequeño
programa, que se ejecuta cada vez que arrancamos desde disquete.
En este
caso, al arrancar con un disco contaminado, el virus se queda residente en
memoria RAM, y a partir de ahí, infectara el sector de arranque de todos los
disquetes a los que se accedan, ya sea al formatear o al hacer un DIR en el
disco, dependiendo de cómo esté programado el virus).
El proceso de
infección consiste en sustituir el código de arranque original del disco por una
versión propia del virus, guardando el original en otra parte del disco; a
menudo el virus marca los sectores donde guarda el boot original como en mal
estado, protegiéndolos así de posibles accesos, esto suele hacerse por dos
motivos: primero, muchos virus no crean una rutina propia de arranque, por lo
que una vez residentes en memoria, efectúan una llamada al código de arranque
original, para iniciar el sistema y así aparentar que se ha iniciado el sistema
como siempre, con normalidad. Segundo, este procedimiento puede ser usado como
técnica de ocultamiento.
Normalmente un virus completo no cabe en los
512 bytes que ocupa el sector de arranque, por lo que en éste suele copiar una
pequeña parte de si mismo, y el resto lo guarda en otros sectores del disco,
normalmente los últimos, marcándolos como defectuosos. Sin embargo, puede
ocurrir que alguno de los virus no marquen estas zonas, por lo que al llenar el
disco estos sectores pueden ser sobrescritos y así dejar de funcionar el virus.
La tabla de partición esta situada en el primer sector del disco duro, y
contiene una serie de bytes de información de cómo se divide el disco y un
pequeño programa de arranque del sistema. Al igual que ocurre con el boot de los
disquetes, un virus de partición suplanta el código de arranque original por el
suyo propio; así, al arrancar desde disco duro, el virus se instala en memoria
para efectuar sus acciones. También en este caso el virus guarda la tabla de
partición original en otra parte del disco, aunque algunos la marcan como
defectuosa y otros no. Muchos virus guardan la tabla de partición y a ellos
mismos en los últimos sectores de disco, y para proteger esta zona, modifican el
contenido de la tabla para reducir el tamaño lógico del disco. De esta forma el
DOS no tiene acceso a estos datos, puesto que ni siquiera sabe que esta zona
existe.
Casi todos los virus que afectan la partición también son
capaces de hacerlo en el boot de los disquetes y en los ficheros ejecutables; un
virus que actuara sobre particiones de disco duro tendría un campo de trabajo
limitado, por lo que suelen combinar sus habilidades.
Con todo, el tipo
de virus que más abunda es el de fichero; en este caso usan como vehículo de
expansión los archivos de programa o ejecutables, sobre todo .EXE y. COM, aunque
también a veces .OVL, .BIN y .OVR. AL ejecutarse un programa infectado, el virus
se instala residente en memoria, y a partir de ahí permanece al acecho; al
ejecutar otros programas, comprueba si ya se encuentran infectados. Si no es
así, se adhiere al archivo ejecutable, añadiendo su código al principio y al
final de éste, y modificando su estructura de forma que al ejecutarse dicho
programa primero llame al código del virus devolviendo después el control al
programa portador y permitiendo su ejecución normal.
Este efecto de
adherirse al fichero original se conoce vulgarmente como "engordar" el archivo,
ya que éste aumenta de tamaño al tener que albergar en su interior al virus,
siendo esta circunstancia muy útil para su detección. De ahí que la inmensa
mayoría de los virus sean programados en lenguaje ensamblador, por ser el que
genera el código más compacto, veloz y de menor consumo de memoria; un virus no
seria efectivo si fuera fácilmente detectable por su excesiva ocupación en
memoria, su lentitud de trabajo o por un aumento exagerado en el tamaño de los
archivos infectados. No todos los virus de fichero quedan residentes en memoria,
si no que al ejecutarse se portador, éstos infectan a otro archivo, elegido de
forma aleatoria de ese directorio o de otros.
Efectos
Destructivos De Los Virus
Los efectos perniciosos que causan los virus
son variados; entre éstos se encuentran el formateo completo del disco duro,
eliminación de la tabla de partición, eliminación de archivos, ralentización del
sistema hasta limites exagerados, enlaces de archivos destruidos, archivos de
datos y de programas corruptos, mensajes o efectos extraños en la pantalla,
emisión de música o sonidos.
Formas De Ocultamiento
Un
virus puede considerarse efectivo si, además de extenderse lo más ampliamente
posible, es capaz de permanecer oculto al usuario el mayor tiempo posible; para
ello se han desarrollado varias técnicas de ocultamiento o sigilo. Para que
estas técnicas sean efectivas, el virus debe estar residente en memoria, puesto
que debe monitorizar el funcionamiento del sistema operativo. La base principal
del funcionamiento de los virus y de las técnicas de ocultamiento, además de la
condición de programas residentes, la intercepción de interrupciones. El DOS y
los programas de aplicación se comunican entre sí mediante el servicio de
interrupciones, que son como subrutinas del sistema operativo que proporcionan
una gran variedad de funciones a los programas. Las interrupciones se utilizan,
por ejemplo, para leer o escribir sectores en el disco, abrir ficheros, fijar la
hora del sistema, etc. Y es aquí donde el virus entra en acción, ya que puede
sustituir alguna interrupción del DOS por una suya propia y así, cuando un
programa solicite un servicio de esa interrupción, recibirá el resultado que el
virus determine.
Entre las técnicas más usuales cabe destacar el
ocultamiento o stealth, que esconde los posibles signos de infección del
sistema. Los síntomas más claros del ataque de un virus los encontramos en el
cambio de tamaño de los ficheros, de la fecha en que se crearon y de sus
atributos, y en la disminución de la memoria disponible.
Estos problemas
son indicadores de la posible presencia de un virus, pero mediante la técnica
stealth es muy fácil (siempre que se encuentre residente el virus) devolver al
sistema la información solicitada como si realmente los ficheros no estuvieran
infectados. Por este motivo es fundamental que cuando vayamos a realizar un
chequeo del disco duro arranquemos el ordenador con un disco de sistema
totalmente limpio.
La autoencriptación o self-encryption es una de las
técnicas víricas más extendidas. En la actualidad casi todos los nuevos ingenios
destructivos son capaces de encriptarse cada vez que infectan un fichero,
ocultando de esta forma cualquier posible indicio que pueda facilitar su
búsqueda. No obstante, todo virus encriptado posee una rutina de
desencriptación, rutina que es aprovechada por los antivirus para remotoizar el
origen de la infección.
El mayor avance en técnicas de encriptación
viene dado por el polimorfismo. Gracias a él un virus no sólo es capaz de
encriptarse sino que además varía la rutina empleada cada vez que infecta un
fichero. De esta forma resulta imposible encontrar coincidencias entre distintos
ejemplares del mismo virus, y ante esta técnica el tradicional método de
búsqueda de cadenas características se muestra inútil.
Otra técnica
básica de ocultamiento es la intercepción de mensajes de error del sistema.
Supongamos que un virus va a infectar un archivo de un disco protegido contra
escritura; al intentar escribir en el obtendríamos el mensaje: "Error de
protección contra escritura leyendo unidad A Anular, Reintentar, Fallo?", por lo
que descubriríamos el anormal funcionamiento de nuestro equipo. Por eso, al
virus le basta con redireccionar la interrupción a una rutina propia que evita
la salida de estos mensajes, consiguiendo así pasar desapercibido.
Prevención, Detección Y Eliminación
Una buena política de
prevención y detección nos puede ahorrar sustos y desgracias. Las medidas de
prevención pasan por el control, en todo momento, del software ya introducido o
que se va a introducir en nuestro ordenador, comprobando la fiabilidad de su
fuente. Esto implica la actitud de no aceptar software no original, ya que el
pirateo es una de las principales fuentes de contagio de un virus, siendo
también una practica ilegal y que hace mucho daño a la industria del software.
Por supuesto, el sistema operativo, que a fin de cuentas es el elemento
software más importante del ordenador, debe ser totalmente fiable; si éste se
encuentra infectado, cualquier programa que ejecutemos resultara también
contaminado. Por eso, es imprescindible contar con una copia en disquetes del
sistema operativo, protegidos éstos contra escritura; esto último es muy
importante, no solo con el Sistema Operativo sino con el resto de disquetes que
poseamos. Es muy aconsejable mantenerlos siempre protegidos, ya que un virus no
puede escribir en un disco protegido de esta forma. Por último es también
imprescindible poseer un buen software antivirus, que detecte y elimine
cualquier tipo de intrusión en el sistema.