Monografias | Seguridad Informática - Virus informáticosSeguridad Informática - Virus informáticosResumen: Conceptos básicos sobre virus informáticos. ¿Qué es un virus informático?. Funcionamiento de los virus. Caballos de Troya. Clasificación de los virus. Técnicas de detección. Eliminación. Aplicar cuarentena. Estrategia de seguridad contra los virus. Cómo protegerse Marzo - 2000 Introducción Conceptos básicos sobre virus informáticos
¿Qué es un virus informático? ¿Quién los hace? Un poco de historia Funcionamiento de los virus Algunos métodos de infección Clasificación de los virus Caballos de Troya Camaleones Virus polimorfos o mutantes Virus sigiloso Virus lentos Retro-virus o Virus antivirus Virus multipartitos Virus voraces Bombas de tiempo Conejo Macro-virus Gusanos Virus propios de Internet Determinar si existe infección Cómo proceder ante una infección
Programas antivirus Identificación Técnicas de detección Análisis heurístico Eliminación Comprobación de integridad Proteger áreas sensibles Demonios de protección Aplicar cuarentena Definiciones antivirus Estrategia de seguridad contra los virus
Conclusión del trabajo Bibliografía Los virus informáticos son una de los principales
riesgos de seguridad para los sistemas, ya sea que estemos hablando de un
usuario hogareño que utiliza su máquina para trabajar y conectarse a Internet o
una empresa con un sistema informático importante que debe mantener bajo
constante vigilancia para evitar pérdidas causadas por los virus. Un virus se valdrá de cualquier técnica conocida
–o poco conocida- para lograr su cometido. Así, encontraremos virus muy simples
que sólo se dedican a presentar mensajes en pantalla y algunos otros mucho más
complejos que intentan ocultar su presencia y atacar en el momento justo. A lo largo de este trabajo haremos referencia a
qué es exactamente un virus, cómo trabaja, algunos tipos de virus y también cómo
combatirlos. Nos proponemos a dar una visión general de los tipos de virus
existentes para poder enfocarnos más en cómo proteger un sistema informático de
estos atacantes y cómo erradicarlos una vez que lograron penetrar. Conceptos básicos
sobre virus informáticos
Un virus informático es un programa de
computadora que tiene la capacidad de causar daño y su característica más
relevante es que puede replicarse a sí mismo y propagarse a otras computadoras.
Infecta "entidades ejecutables": cualquier archivo o sector de las unidades de
almacenamiento que contenga códigos de instrucción que el procesador valla a
ejecutar. Se programa en lenguaje ensamblador y por lo tanto, requiere algunos
conocimientos del funcionamiento interno de la computadora. Un virus tiene tres características primarias: La verdadera peligrosidad de un virus no está
dada por su arsenal de instrucciones maléficas, sino por lo crítico del
sistema que está infectando. Tomemos como ejemplo un virus del tipo conejo.
Si este infectara una computadora hogareña la máquina se colgaría, pudiendo
luego reiniciarla con un disquete de arranque limpio y con un antivirus para
eliminar el virus. Si afectara a un servidor de una PyME, posiblemente el
sistema informático de la empresa dejaría de funcionar por algún tiempo
significando una pérdida de horas máquina y de dinero. Pero si este virus
infectara una máquina industrial como una grúa robótica o algún aparato
utilizado en medicina como una máquina de rayos láser para operar, los
costos serían muy altos y posiblemente se perderían vidas humanas. ¿Qué
pasaría si se alteraran los registros médicos de una persona de forma que se
mostrara un tipo de sangre o factor RH diferente? El paciente podría morir.
¿Qué pasaría si el dígito 4 millonésimo en los cálculos para el aterrizaje
de una misión espacial se alterara en un factor del 0.001 por 100? Los
astronautas morirían. Los virus informáticos no pueden causar un daño
directo sobre el hardware. No existen instrucciones que derritan la unidad de
disco rígido o que hagan estallar el cañon de un monitor. En su defecto, un
virus puede hacer ejecutar operaciones que reduzcan la vida útil de los
dispositivos. Por ejemplo: hacer que la placa de sonido envíe señales de
frecuencias variadas con un volumen muy alto para averiar los parlantes, hacer
que la impresora desplace el cabezal de un lado a otro o que lo golpee contra
uno de los lados, hacer que las unidades de almacenamiento muevan a gran
velocidad las cabezas de L / E para que se desgasten. Todo este tipo de cosas
son posibles aunque muy poco probables y por lo general los virus prefieren
atacar los archivos y no meterse con la parte física. En primer lugar debemos decir que los virus
informáticos están hechos por personas con conocimientos de programación pero
que no son necesariamente genios de las computadoras. Tienen conocimientos de
lenguaje ensamblador y de cómo funciona internamente la computadora. De hecho
resulta bastante más difícil hacer un programa "en regla" como sería un sistema
de facturación en donde hay que tener muchísimas más cosas en cuenta que en un
simple virus que aunque esté mal programado sería suficiente para molestar al
usuario. En un principio estos programas eran diseñados
casi exclusivamente por los hackers y crackers que tenían su auge en los Estados
Unidos y que hacían temblar a las compañías con solo pensar en sus actividades.
Tal vez esas personas lo hacían con la necesidad de demostrar su creatividad y
su dominio de las computadoras, por diversión o como una forma de manifestar su
repudio a la sociedad que los oprimía. Hoy en día, resultan un buen medio para
el sabotaje corporativo, espionaje industrial y daños a material de una empresa
en particular. Los virus tienen la misma edad que las
computadoras. Ya en 1949 John Von Neumann, describió programas que se reproducen
a sí mismos en su libro "Teoría y Organización de Autómatas Complicados". Es
hasta mucho después que se les comienza a llamar como virus. La característica
de auto-reproducción y mutación de estos programas, que las hace parecidas a las
de los virus biológicos, parece ser el origen del nombre con que hoy los
conocemos. Antes de la explosión de la micro computación se
decía muy poco de ellos. Por un lado, la computación era secreto de unos pocos.
Por otro lado, las entidades gubernamentales, científicas o militares, que
vieron sus equipos atacados por virus, se quedaron muy calladas, para no
demostrar la debilidad de sus sistemas de seguridad, que costaron millones, al
bolsillo de los contribuyentes. Las empresa privadas como Bancos, o grandes
corporaciones, tampoco podían decir nada, para no perder la confianza de sus
clientes o accionistas. Lo que se sabe de los virus desde 1949 hasta 1989, es
muy poco. Se reconoce como antecedente de los virus
actuales, un juego creado por programadores de la empresa AT&T, que
desarrollaron la primera versión del sistema operativo Unix en los años 60. Para
entretenerse, y como parte de sus investigaciones, desarrollaron un juego
llamado "Core Wars", que tenía la capacidad de reproducirse cada vez que se
ejecutaba. Este programa tenía instrucciones destinadas a destruir la memoria
del rival o impedir su correcto funcionamiento. Al mismo tiempo, desarrollaron
un programa llamado "Reeper", que destruía las copias hechas por Core Wars. Un
antivirus o antibiótico, como hoy se los conoce. Conscientes de lo peligroso del
juego, decidieron mantenerlo en secreto, y no hablar más del tema. No se sabe si
esta decisión fue por iniciativa propia, o por órdenes superiores. En el año 1983, el Dr. Ken Thomson, uno de los
programadores de AT&T, que trabajó en la creación de "Core Wars", rompe el
silencio acordado, y da a conocer la existencia del programa, con detalles de su
estructura. La Revista Scientific American a comienzos de
1984, publica la información completa sobre esos programas, con guías para la
creación de virus. Es el punto de partida de la vida pública de estos programas,
y naturalmente de su difusión sin control, en las computadoras personales. Por esa misma fecha, 1984, el Dr. Fred Cohen hace
una demostración en la Universidad de California, presentando un virus
informático residente en una PC. Al Dr. Cohen se le conoce hoy día, como "el
padre de los virus". Paralelamente aparece en muchas PCs un virus, con un nombre
similar a Core Wars, escrito en Small-C por un tal Kevin Bjorke, que luego lo
cede a dominio público. ¡La cosa comienza a ponerse caliente! El primer virus destructor y dañino plenamente
identificado que infecta muchas PC’s aparece en 1986. Fue creado en la ciudad de
Lahore, Paquistán, y se le conoce con el nombre de BRAIN. Sus autores vendían
copias pirateadas de programas comerciales como Lotus, Supercalc o Wordstar, por
suma bajísimas. Los turistas que visitaban Paquistán, compraban esas copias y
las llevaban de vuelta a los EE.UU. Las copias pirateadas llevaban un virus. Fue
así, como infectaron mas de 20,000 computadoras. Los códigos del virus Brain
fueron alterados en los EE.UU., por otros programadores, dando origen a muchas
versiones de ese virus, cada una de ellas peor que la precedente. Hasta la fecha
nadie estaba tomando en serio el fenómeno, que comenzaba a ser bastante molesto
y peligroso. En 1987, los sistemas de Correo Electrónico de la
IBM, fueron invadidos por un virus que enviaba mensajes navideños, y que se
multiplicaba rápidamente. Ello ocasionó que los discos duros se llenaran de
archivos de origen viral, y el sistema se fue haciendo lento, hasta llegar a
paralizarse por mas de tres días. La cosa había llegado demasiado lejos y el Big
Blue puso de inmediato a trabajar en los virus su Centro de Investigación Thomas
J. Watson, de Yorktown Heights, NI. Las investigaciones del Centro T. J. Watson sobre
virus, son puestas en el dominio público por medio de Reportes de Investigación,
editados periódicamente, para beneficio de investigadores y usuarios. El virus Jerusalem, según se dice creado por la
Organización de Liberación Palestina, es detectado en la Universidad Hebrea de
Jerusalem a comienzos de 1988. El virus estaba destinado a aparece el 13 de Mayo
de 1988, fecha del 40 aniversario de la existencia de Palestina como nación. Una
interesante faceta del terrorismo, que ahora se vuelca hacia la destrucción de
los sistemas de cómputo, por medio de programas que destruyen a otros programas. El 2 de Noviembre del ‘88, dos importantes redes
de EE.UU. se ven afectadas seriamente por virus introducidos en ellas. Mas 6,000
equipos de instalaciones militares de la NASA, universidades y centros de
investigación públicos y privados se ven atacados. Por 1989 la cantidad de virus detectados en
diferentes lugares sobrepasan los 100, y la epidemia comienza a crear
situaciones graves. Entre las medidas que se toma, para tratar de detener el
avance de los virus, es llevar a los tribunales a Robert Morís Jr. acusado de
ser el creador de un virus que infectó a computadoras del gobierno y empresas
privadas. Al parecer, este muchacho conoció el programa Core Wars, creado en la
AT&T, y lo difundió entre sus amigos. Ellos se encargaron de diseminarlo por
diferentes medios a redes y equipos. Al juicio se le dio gran publicidad, pero
no detuvo a los creadores de virus. La cantidad de virus que circula en la actualidad
no puede llegar a ser precisada pero para tener una idea los últimos antivirus
pueden identificar alrededor de cincuenta mil virus (claro que en este valor
están incluidos los clones de un mismo virus). Los virus informáticos están hechos en Assembler,
un lenguaje de programación de bajo nivel. Las instrucciones compiladas por
Assembler trabajan directamente sobre el hardware, esto significa que no es
necesario ningún software intermedio –según el esquema de capas entre usuario y
hardware- para correr un programa en Assembler (opuesto a la necesidad de Visual
Basic de que Windows 9x lo secunde). No solo vamos a poder realizar las cosas
típicas de un lenguaje de alto nivel, sino que también vamos a tener control de
cómo se hacen. Para dar una idea de lo poderoso que puede ser este lenguaje, el
sistema operativo Unix está programado en C y las rutinas que necesitan tener
mayor profundidad para el control del hardware están hechas en Assembler. Por
ejemplo: los drivers que se encargan de manejar los dispositivos y algunas
rutinas referidas al control de procesos en memoria. Sabiendo esto, el virus puede tener control total
de la máquina -al igual que lo hace el SO- si logra cargarse antes que nadie. La
necesidad de tener que "asociarse" a una entidad ejecutable viene de que, como
cualquier otro programa de computadora, necesita ser ejecutado y teniendo en
cuenta que ningún usuario en su sano juicio lo hará, se vale de otros métodos
furtivos. Ahora que marcamos la importancia para un virus el ser ejecutado,
podemos decir que un virus puede encontrarse en una computadora sin haber
infectado realmente algo. Es el caso de personas que pueden coleccionar virus en
archivos comprimidos o encriptados. Normalmente este tipo de programas se pega a
alguna entidad ejecutable que le facilitará la subida a memoria principal y la
posterior ejecución (métodos
de infección). Como entidades ejecutables
podemos reconocer a los sectores de arranque de los discos de almacenamiento
magnéticos, ópticos o magneto-ópticos (MBR, BR), los archivos ejecutables de
DOSs (.exe, .com, entre otros), las librerías o módulos de programas (.dll,
.lib, .ovl, .bin, .ovr). Los sectores de arranque son fundamentales para
garantizar que el virus será cargado cada vez que se encienda la computadora. Según la secuencia de booteo de las PCs, el
microprocesador tiene seteada de fábrica la dirección de donde puede obtener la
primer instrucción a ejecutar. Esta dirección apunta a una celda de la memoria
ROM donde se encuentra la subrutina POST (Power On Self Test), encargada de
varias verificaciones y de comparar el registro de la memoria CMOS con el
hardware instalado (función checksum). En este punto sería imposible que el
virus logre cargarse ya que la memoria ROM viene grabada de fábrica y no puede
modificarse (hoy en día las memorias Flash-ROM podrían contradecir esto último). Luego, el POST pasa el control a otra subrutina
de la ROM BIOS llamada "bootstrap ROM" que copia el MBR (Master Boot Record) en
memoria RAM. El MBR contiene la información de la tabla de particiones, para
conocer las delimitaciones de cada partición, su tamaño y cuál es la partición
activa desde donde se cargará el SO. Vemos que en este punto el procesador
empieza a ejecutar de la memoria RAM, dando la posibilidad a que un virus tome
partida. Hasta acá el SO todavía no fue cargado y en consecuencia tampoco el
antivirus. El accionar típico del virus sería copiar el MBR en un sector
alternativo y tomar su posición. Así, cada vez que se inicie el sistema el virus
logrará cargarse antes que el SO y luego, respetando su deseo por permanecer
oculto hará ejecutar las instrucciones del MBR. Con la información del MBR sabremos qué partición
es la activa y en que sector se encuentra su sector de booteo (boot record o
BR). El BR contiene una subrutina que se ocupará de cargar los archivos de
arranque del SO. Los demás pasos de la carga del SO son irrelevantes, pero es
importante recordar que el SO es el último en cargarse en la secuencia de booteo
antes de que el usuario pueda introducir comandos en la shell. El antivirus es
cargado por los archivos de configuración del SO personalizables por el usuario. Cuando un virus infecta un archivo ejecutable
.EXE, por ejemplo, intenta rastrear en el código los puntos de entrada y salida
del programa. El primer punto señalado es en donde, dentro del archivo, se
iniciará la ejecución de instrucciones. El segundo punto resulta ser lo opuesto.
Cuando un virus localiza ambos puntos escribe su propio código antes de cada
uno. Según el tipo de virus, este código cargará el virus en memoria –si es que
no lo estaba- y apuntará a esa zona infectada con el virus. A partir de ahí el
programa virósico determinará cuáles son las acciones a seguir: puede continuar
infectando archivos que sean cargados en memoria, ocultarse si es que detecta la
presencia de un antivirus o ejecutar el contenido de su módulo de ataque. El
virus puede infectar también las copias de los archivos cargados en memoria que
están en la unidad de almacenamiento. Así se asegura que ante un eventual
apagado de la computadora su código igualmente se encuentra en los archivos de
la unidad. Es importante comprender que la computadora no
estará infectada hasta que ejecutemos algo parasitado previamente con el virus.
Veamos un ejemplo sencillo: nosotros bajamos de Internet un archivo comprimido
(con la extensión .ZIP según el uso popular) sabiendo que es un programa de
prueba que nos gustaría instalar. Lo que no sabemos es que uno de los archivos
dentro del .ZIP es un virus informático, y lo peor de todo es que viene adosado
al archivo Install.exe. Al momento de descomprimir el contenido, el virus
todavía no fue ejecutado (ya que la información dentro del .ZIP no puede ser
reconocida como instrucciones por el procesador). Luego identificamos el archivo
Install.exe como el necesario para instalar el programa y lo ejecutamos. Recién
en este momento el virus se cargará en memoria y pasará a hacer las cosas para
lo que fue programado. El ejemplo anterior es un modo muy básico de
infección. Pero existen otros tantos tipos de virus que son mucho más
sofisticados y no podrá ser reconocida su presencia con mucha facilidad. Según sus características un virus puede contener
tres módulos principales: el módulo de ataque, el módulo de reproducción, y el
módulo de defensa. Añadidura o empalme. Por este método el código
del virus se agrega al final del archivo ejecutable a infectar, modificando las
estructuras de arranque del archivo anfitrión de manera que el control del
programa pase primero al virus cuando se quiera ejecutar el archivo. Este cambio
de secuencia permite al virus realizar sus tareas específicas y luego pasar el
control al programa para que este se ejecute normalmente. La principal
desventaja de este método es que el tamaño del archivo infectado es mayor al
original, lo que permite una fácil detección. Inserción. Los virus que utilizan el método de
inserción buscan alojarse en zonas de código no utilizadas o en segmentos de
datos dentro de los archivos que contagian, de esta manera la longitud total del
archivo infectado no varía. Este método, parecido al de empalme, exige mayores
técnicas de programación de los virus para poder detectar las zonas posibles de
contagio dentro de un ejecutable, por lo que generalmente no es muy utilizada
por los programadores de virus informáticos. Reorientación. Este método es una variante
interesante del anterior. Bajo este esquema se introducen centrales virósicas
(los códigos principales del virus) en zonas físicas del disco rígido marcadas
como defectuosas o en archivos ocultos del sistema. Estos códigos virales, al
ejecutarse, implantan pequeños trozos de código en los archivos ejecutables que
infectan, que luego actúan como llamadores de las centrales virósicas. La
principal ventaja de este método es que el cuerpo del virus, al no estar inserto
en el archivo infectado sino en otro sitio oculto, puede tener un tamaño
bastante grande, aumentando así su funcionalidad. La desventaja más fuerte es
que la eliminación de este tipo de infecciones es bastante sencilla. Basta con
borrar archivos ocultos sospechosos o reescribir las zonas del disco marcadas
como defectuosas. Polimorfismo. Este es el método más avanzado de
contagio logrado por los programadores de virus. La técnica básica usada es la
de inserción del código viral en un archivo ejecutable, pero para evitar el
aumento de tamaño del archivo infectado, el virus compacta parte de su código y
del código del archivo anfitrión de manera que la suma de ambos sea igual al
tamaño original del archivo. Al ejecutar el programa infectado actúa primero el
código del virus descompactando en memoria las porciones previamente
compactadas. Una variante mejorada de esta técnica permite a los virus usar
métodos de encriptación dinámicos para disfrazar el código del virus y evitar
ser detectados por los antivirus. Sustitución. El método de sustitución, usado con
variantes por los Caballos de Troya, es quizás el método más primitivo. Consiste
en sustituir el código completo del archivo original por el código del virus. Al
ejecutar el programa infectado el único que actúa es el virus, que cumple con
sus tareas de contagiar otros archivos y luego termina la ejecución del programa
reportando algún tipo de error. Esta técnica tiene sus ventajas, ya que en cada
infección se eliminan archivos de programas válidos, los cuales son reemplazados
por nuevas copias del virus. 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 kernel. En este
modo de funcionamiento, tras ejecutarse cada instrucción se produce la INT 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. Los virus utilizan el tunneling para protegerse
de los módulos residentes de los antivirus que monitorean todo lo que sucede en
la máquina para interceptar todas las actividades "típicas" de los virus. Para entender como funciona esta técnica basta
saber como trabaja este tipo de antivirus. El módulo residente queda colgado de
todas las interrupciones usualmente usadas por los virus (INT 21, INT 13, a
veces INT 25 Y 26) y entonces cuando el virus intenta llamar a INT 21, por
ejemplo, para abrir un ejecutable para lectura / escritura (y luego infectarlo),
el antivirus emite una alerta, pues los ejecutables no son normalmente abiertos,
ni menos para escritura. Y así con todas las llamadas típicas de los virus. En cambio, cuando se hace una llamada común y
corriente, el antivirus no le da mayor importancia y la deja pasar, llamando a
la INT 21 original. Un virus con tunneling, entonces, antes de llamar a ninguna
función ni hacer nada, intenta obtener el address absoluto de esta INT 21
original, que está en alguna parte de la memoria del antivirus residente. Una
vez que obtiene este address, accede al MS-DOS por medio de el, sin llamar al
antivirus. Y así, efectivamente, le "pasa por debajo", lo "tunelea". ¿Cómo se
hace esto? Existen dos formas fundamentales de obtener este
address: Problemas Generales del Tunneling. Pero el problema principal del tunneling es que
aún teniendo éxito en obtener la INT 21 posta, se pueden tener problemas si hay
algún residente importante y uno lo esta pasando por debajo. Es famoso ya el
caso del Predator II y el DoubleSpace. El predator II tuneleaba por debajo del
DoubleSpace y trataba de acceder al disco directamente por MS-DOS. Esto produjo
que destruyera el contenido de varios discos rígidos. En definitiva, esto es
contrario a las intenciones del tunneling. La clasificación correcta de los virus siempre
resulta variada según a quien se le pregunte. Podemos agruparlos por la entidad
que parasitan (sectores de arranque o archivos ejecutables), por su grado de
dispersión a nivel mundial, por su comportamiento, por su agresividad, por sus
técnicas de ataque o por como se oculta, etc. Nuestra clasificación muestra como
actúa cada uno de los diferentes tipos según su comportamiento. En algunos casos
un virus puede incluirse en más de un tipo (un multipartito resulta ser
sigiloso). Los caballos de troya no llegan a ser realmente
virus porque no tienen la capacidad de autoreproducirse. Se esconden dentro del
código de archivos ejecutables y no ejecutables pasando inadvertidos por los
controles de muchos antivirus. Posee subrutinas que permitirán que se ejecute en
el momento oportuno. Existen diferentes caballos de troya que se centrarán en
distintos puntos de ataque. Su objetivo será el de robar las contraseñas que el
usuario tenga en sus archivos o las contraseñas para el acceso a redes,
incluyendo a Internet. Después de que el virus obtenga la contraseña que
deseaba, la enviará por correo electrónico a la dirección que tenga registrada
como la de la persona que lo envió a realizar esa tarea. Hoy en día se usan
estos métodos para el robo de contraseñas para el acceso a Internet de usuarios
hogareños. Un caballo de troya que infecta la red de una empresa representa un
gran riesgo para la seguridad, ya que está facilitando enormemente el acceso de
los intrusos. Muchos caballos de troya utilizados para espionaje industrial
están programados para autodestruirse una vez que cumplan el objetivo para el
que fueron programados, destruyendo toda la evidencia. Son una variedad de similar a los Caballos de
Troya, pero actúan como otros programas comerciales, en los que el usuario
confía, mientras que en realidad están haciendo algún tipo de daño. Cuando están
correctamente programados, los camaleones pueden realizar todas las funciones de
los programas legítimos a los que sustituyen (actúan como programas de
demostración de productos, los cuales son simulaciones de programas reales). Un
software camaleón podría, por ejemplo, emular un programa de acceso a sistemas
remotos (rlogin, telnet) realizando todas las acciones que ellos realizan, pero
como tarea adicional (y oculta a los usuarios) va almacenando en algún archivo
los diferentes logins y passwords para que posteriormente puedan ser recuperados
y utilizados ilegalmente por el creador del virus camaleón. Los virus polimorfos poseen la capacidad de
encriptar el cuerpo del virus para que no pueda ser detectado fácilmente por un
antivirus. Solo deja disponibles unas cuantas rutinas que se encargaran de
desencriptar el virus para poder propagarse. Una vez desencriptado el virus
intentará alojarse en algún archivo de la computadora. En este punto tenemos un virus que presenta otra
forma distinta a la primera, su modo desencriptado, en el que puede infectar y
hacer de las suyas libremente. Pero para que el virus presente su característica
de cambio de formas debe poseer algunas rutinas especiales. Si mantuviera
siempre su estructura, esté encriptado o no, cualquier antivirus podría
reconocer ese patrón. Para eso incluye un generador de códigos al que
se conoce como engine o motor de mutación. Este engine utiliza un generador
numérico aleatorio que, combinado con un algoritmo matemático, modifica la firma
del virus. Gracias a este engine de mutación el virus podrá crear una rutina de
desencripción que será diferente cada vez que se ejecute. Los métodos básicos de detección no pueden dar
con este tipo de virus. Muchas veces para virus polimorfos particulares existen
programas que se dedican especialmente a localizarlos y eliminarlos. Algunos
softwares que se pueden baja gratuitamente de Internet se dedican solamente a
erradicar los últimos virus que han aparecido y que también son los más
peligrosos. No los fabrican empresas comerciales sino grupos de hackers que
quieren protegerse de otros grupos opuestos. En este ambiente el presentar este
tipo de soluciones es muchas veces una forma de demostrar quien es superior o
quien domina mejor las técnicas de programación. Las últimas versiones de los programas antivirus
ya cuentan con detectores de este tipo de virus. El virus sigiloso posee un módulo de defensa
bastante sofisticado. Este intentará permanecer oculto tapando todas las
modificaciones que haga y observando cómo el sistema operativo trabaja con los
archivos y con el sector de booteo. Subvirtiendo algunas líneas de código el
virus logra apuntar el flujo de ejecución hacia donde se encuentra la zona que
infectada. Es difícil que un antivirus se de cuenta de estas
modificaciones por lo que será imperativo que el virus se encuentre ejecutándose
en memoria en el momento justo en que el antivirus corre. Los antivirus de hoy
en día cuentan con la técnica de
verificación de integridad
para detectar los cambios realizados en las entidades ejecutables. El virus Brain de MS-DOS es un ejemplo de este
tipo de virus. Se aloja en el sector de arranque de los disquetes e intercepta
cualquier operación de entrada / salida que se intente hacer a esa zona. Una vez
hecho esto redirigía la operación a otra zona del disquete donde había copiado
previamente el verdadero sector de booteo. Este tipo de virus también tiene la capacidad de
engañar al sistema operativo. Un virus se adiciona a un archivo y en
consecuencia, el tamaño de este aumenta. Está es una clara señal de que un virus
lo infectó. La técnica stealth de ocultamiento de tamaño captura las
interrupciones del sistema operativo que solicitan ver los atributos del archivo
y, el virus le devuelve la información que poseía el archivo antes de ser
infectado y no las reales. Algo similar pasa con la técnica stealth de lectura.
Cuando el SO solicita leer una posición del archivo, el virus devuelve los
valores que debería tener ahí y no los que tiene actualmente. Este tipo de virus es muy fácil de vencer. La
mayoría de los programas antivirus estándar los detectan y eliminan. Los virus de tipo lento hacen honor a su nombre
infectando solamente los archivos que el usuario hace ejecutar por el SO,
simplemente siguen la corriente y aprovechan cada una de las cosas que se
ejecutan. Por ejemplo, un virus lento únicamente podrá
infectar el sector de arranque de un disquete cuando se use el comando FORMAT o
SYS para escribir algo en dicho sector. De los archivos que pretende infectar
realiza una copia que infecta, dejando al original intacto. Su eliminación resulta bastante complicada.
Cuando el
verificador de integridad
encuentra nuevos archivos avisa al usuario, que por lo general no presta
demasiada atención y decide agregarlo al registro del verificador. Así, esa
técnica resultaría inútil. La mayoría de las herramientas creadas para
luchar contra este tipo de virus son programas residentes en memoria que vigilan
constantemente la creación de cualquier archivo y validan cada uno de los pasos
que se dan en dicho proceso. Otro método es el que se conoce como Decoy
launching. Se crean varios archivos .EXE y .COM cuyo contenido conoce el
antivirus. Los ejecuta y revisa para ver si se han modificado sin su
conocimiento. Un retro-virus intenta como método de defensa
atacar directamente al programa antivirus incluido en la computadora. Para los programadores de virus esta no es una
información difícil de obtener ya que pueden conseguir cualquier copia de
antivirus que hay en el mercado. Con un poco de tiempo pueden descubrir cuáles
son los puntos débiles del programa y buscar una buena forma de aprovecharse de
ello. Generalmente los retro-virus buscan el archivo de
definición de virus y lo eliminan, imposibilitando al antivirus la
identificación de sus enemigos. Suelen hacer lo mismo con el registro del
comprobador de integridad. Otros retro-virus detectan al programa antivirus
en memoria y tratan de ocultarse o inician una rutina destructiva antes de que
el antivirus logre encontrarlos. Algunos incluso modifican el entorno de tal
manera que termina por afectar el funcionamiento del antivirus. Los virus multipartitos atacan a los sectores de
arranque y a los ficheros ejecutables. Su nombre está dado porque infectan las
computadoras de varias formas. No se limitan a infectar un tipo de archivo ni
una zona de la unidad de disco rígido. Cuando se ejecuta una aplicación
infectada con uno de estos virus, éste infecta el sector de arranque. La próxima
vez que arranque la computadora, el virus atacará a cualquier programa que se
ejecute. Estos virus alteran el contenido de los archivos
de forma indiscriminada. Generalmente uno de estos virus sustituirá el programa
ejecutable por su propio código. Son muy peligrosos porque se dedican a destruir
completamente los datos que puedan encontrar. Son virus convencionales y pueden tener una o más
de las características de los demás tipos de virus pero la diferencia está dada
por el trigger de su módulo de ataque que se disparará en una fecha determinada.
No siempre pretenden crear un daño específico. Por lo general muestran mensajes
en la pantalla en alguna fecha que representa un evento importante para el
programador. El virus Michel Angelo sí causa un daño grande eliminando toda la
información de la tabla de particiones el día 6 de marzo. Cuando los ordenadores de tipo medio
estaban extendidos especialmente en ambientes universitarios,
funcionaban como multiusuario, múltiples usuarios se conectaban
simultáneamente a ellos mediante terminales con un nivel de prioridad.
El ordenador ejecutaba los programas de cada usuario dependiendo de su
prioridad y tiempo de espera. Si se estaba ejecutando un programa y
llegaba otro de prioridad superior, atendía al recién llegado y al
acabar continuaba con lo que hacia con anterioridad. Como por regla
general, los estudiantes tenían prioridad mínima, a alguno de ellos se
le ocurrió la idea de crear este virus. El programa se colocaba en la
cola de espera y cuando llegaba su turno se ejecutaba haciendo una copia
de sí mismo, agregándola también en la cola de espera. Los procesos a
ser ejecutados iban multiplicándose hasta consumir toda la memoria de la
computadora central interrumpiendo todos los procesamientos. Los macro-virus representan una de las amenazas
más importantes para una red. Actualmente son los virus que más se están
extendiendo a través de Internet. Representan una amenaza tanto para las redes
informáticas como para los ordenadores independientes. Su máximo peligro está en
que son completamente independientes del sistema operativo o de la plataforma.
Es más, ni siquiera son programas ejecutables. Los macro-virus son pequeños programas escritos
en el lenguaje propio (conocido como lenguaje script o macro-lenguaje) propio de
un programa. Así nos podemos encontrar con macro-virus para editores de texto,
hojas de cálculo y utilidades especializadas en la manipulación de imágenes. En Octubre de 1996 había menos de 100 tipos de
macro-virus. En Mayo de 1997 el número había aumentado a 700. Sus autores los escriben para que se extiendan
dentro de los documentos que crea el programa infectado. De esta forma se pueden
propagar a otros ordenadores siempre que los usuarios intercambien documentos.
Este tipo de virus alteran de tal forma la información de los documentos
infectados que su recuperación resulta imposible. Tan solo se ejecutan en
aquellas plataformas que tengan la aplicación para la que fueron creados y que
comprenda el lenguaje con el que fueron programados. Este método hace que este
tipo de virus no dependa de ningún sistema operativo. El lenguaje de programación interno de ciertas
aplicaciones se ha convertido en una poderosa herramienta de trabajo. Pueden
borrar archivos, modificar sus nombres y (como no) modificar el contenido de los
ficheros ya existentes. Los macro-virus escritos en dichos lenguajes pueden
efectuar las mismas acciones. Al día de hoy, la mayoría de virus conocidos se
han escrito en WordBasic de Microsoft, o incluso en la última versión de Visual
Basic para Aplicaciones (VBA), también de Microsoft. WordBasic es el lenguaje de
programación interno de Word para Windows (utilizado a partir de la versión 6.0)
y Word 6.0 para Macintosh. Como VBA se ejecuta cada vez que un usuario utiliza
cualquier programa de Microsoft Office, los macro-virus escritos en dicho
lenguaje de programación representan un riesgo muy serio. En otras palabras, un
macro-virus escrito en VBA puede infectar un documento de Excel, de Access o de
PowerPoint. Como estas aplicaciones adquieren más y más importancia cada día, la
presencia de los macro-virus parece que está asegurada. Microsoft Word es una de las aplicaciones
preferidas para los macro-virus. Y lo es por varias razones: Un macro-virus para Word también es capaz de
sobreescribir las opciones Guardar, Guardar cómo y Nuevo del menú Archivo para
asegurar su permanencia. La verdad es que sobreescribir estas opciones no
representa ningún tipo de problema. Basta con copiar la macro al documento y
copiarla a otra macro con las modificaciones deseadas. La naturaleza polimorfa
de este tipo de virus es una de las razones por la que los profesionales los
consideran tan peligrosos. Word 7.0 para Windows 95 y NT y Microsoft Word 97
avisan automáticamente a sus usuarios cuando abren un documento y éste contiene
macros. Además, Microsoft proporciona una herramienta de protección contra los
virus llamada MVP válida para sus usuarios de Windows y Macintosh. Dicha
herramienta instala una serie de macros que detectan cualquier macro sospechosa
y avisa al usuario del peligro que conlleva abrir un documento determinado.
Conviene que escanee todos los documentos de Word que reciba a través del correo
electrónico antes de abrirlos por si están infectados. En las últimas versiones
de Microsoft Word (a partir de la 7.0) hay un detalle que las hace menos
susceptibles ante la infección de los macro-virus de Word. Y es que, al igual
que las últimas versiones de programas como Excel, Access y PowerPoint, se ha
cambiado el lenguaje de programación interno. Microsoft usa un lenguaje nuevo al
que ha bautizado como Visual Basic para Aplicaciones 5.0 (VBA). Además, las
nuevas versiones de Chamaleon (de NetManage), Photoshop (de Adobe) y AutoCAD (de
AutoDesk) utilizan VBA. Es una buena noticia saber que el cambio de
lenguaje anulará la mayoría de los macro-virus de Word (siempre que no se esté
trabajando en un modo compatible con las antiguas versiones de WordBasic). Sin
embargo, la aparición de VBA 5.0 y su aceptación entre las aplicaciones indica
que nos encontramos ante una nueva era de macrovirus. Y como VBA es un lenguaje
que utilizan muchas aplicaciones será posible que un mismo macro-virus infecte a
aplicaciones muy distintas entre sí. Los pasos que se deben seguir para eliminar
macro-virus son los siguientes: Estos pasos deben repetirse por todos los
elementos que se encuentren en el cuadro Proyectos. Un gusano se puede decir que es un set de
programas, que tiene la capacidad de desparramar un segmento de el o su propio
cuerpo a otras computadoras conectadas a una red. Hay dos tipos de Gusanos: El Famoso Internet Worm creado por Morrison en
1988 y que tantas máquinas infectó era del tipo Host Computer. Para conocer un
Gusano, veamos detalladamente como funcionaba el que hizo Morrison. El objetivo de ese virus era obtener una "shell"
en la otra maquina. Para esto el gusano usaba tres técnicas distintas Sendmail,
fingerd y rsh/rexec. Los Nuevos Worm Happy99. Fue descubierto en Junio de 1999. La
primera vez que es ejecutado se ven fuegos artificiales y un cartel que dice
"Happy 99". Este cartel es un fachada, ya que mientras se encarga de reemplazar
algunos archivos. Cada mensaje que se manda por e-mail, crea un mensaje
alternativo que tiene adjunto el Happy99. Este gusano tiene una lista de cada e-mail al
cual fue enviado una copia del Happy99. Melissa Virus. El virus Melissa es un virus de
Macro en Word, que infecta el sistema y manda 50 copias de sí mismo, utilizando
el Microsoft Outlook. Muestra un mensaje que dice "Important Message from
<nombre>" y manda un e-mail adjuntando el archivo .doc. Aún, si la máquina no
tuviera el Microsoft Outlook, este Troyano / Virus infecta la máquina. Bubbleboy Worm. Este gusano nunca salió a la luz,
sino que fue creado por una persona que quiso demostrar las falencias que tiene
el sistema VBS Script. Lo importante de este virus es que es enviado por e-mail,
pero puede infectar a la máquina sin la necesidad de abrir ningún archivo
adjunto, ya que el gusano vienen incluido en el e-mail, por eso hace de este
gusano muy peligroso. Simplemente al hacerle un click en el mensaje el virus se
activa. Es por esto, que este virus solo infecta maquinas Windows 98 / 2000, con
IE 5 y Outlook / Outlook Express. La propagación del Bubbleboy depende de dos
controles ActiveX particulares que fueron marcados como "seguros". Virus Falsos o Hoaxes Los virus falsos son simplemente mensajes que
circulan por e-mail que advierten sobre algún virus inexistente. Estos virus
falsos no infectan el sistema ni mucho menos, solo son advertencias, que se
multiplican y se mandan por Internet con una gran velocidad. No tienen ningún
código oculto ni instrucciones para ejecutar. Funciona de manera muy sencilla:
un usuario recibe un e-mail con la advertencia de algún virus raro, estos
usuarios lo reenvían a otros usuarios para advertirlos, entonces se genera un
tráfico de e-mail sobre una amenaza inexistente. Virus Falsos conocidos: Irina. El virus falso Irina empezó como un
método de publicidad electrónica creada por una compañía que creó un libro
interactivo con el mismo nombre. No pensaron tener tanta repercusión, y
terminaron pidiendo perdón por este hecho. Good Time: Esta advertencia circuló y
circula en Internet hace muchos años. El mensaje creado en 1994, decía que un
virus que rondaba por AOL podía infectar su máquina y borrar el disco rígido con
solo leer el mensaje y que debía ser borrado inmediatamente si este llegaba a
alguna casilla. Penpal Greetings!. Esta advertencia decía
que un virus del tipo gusano se iniciaba a él mismo con solo leer un mensaje,
borraba el disco rígido y se reenviaba a todas las personas de nuestra Cuenta de
correo.
Determinar si existe infección
Realmente nadie puede determinar a ciencia cierta
qué síntomas muestra el sistema cuando está infectado ya que los virus son muy
variados y sus formas de comportamiento también, a esto se suma que en la
actualidad los virus bien programados son mucho más sofisticados que antes y
reconocer la presencia de un virus con un simple vistazo no es una habilidad que
muchos puedan ostentar. Podemos mencionar algunos indicios que delatarían
la presencia de un virus pero la lista no es definitiva: Existen otras manifestaciones que muchos
confunden con síntomas cuando en realidad no lo son. Gráficos poco comunes que
aparecen en la pantalla, mensajes nunca antes vistos, letras que se caen y
rebotan en el fondo de la pantalla y todo otro tipo de cosas similar no son más
que el accionar propio del virus. Los virus fueron programados para ese tipo de
cosas –por más ridículas que parezcan para algunos- y no son consecuencias
secundarias en el sistema debido a que exista un virus. Síntomas más comunes de virus Incluso el mejor software antivirus puede fallar
a la hora de detectar un virus. La educación del personal sobre cuáles son
posibles síntomas de virus informáticos puede ser la diferencia entre un simple
dolor de cabeza y un gran problema. Veamos algunos síntomas: Cómo
proceder ante una infección
Cuando el antivirus logra confirmar la presencia
de un virus, lo primero que siente el usuario es pánico. Luego pensará qué hacer
y se dará cuenta que no tiene idea cómo enfrentarse a un virus informático.
Educar a los usuarios sobre estas cuestiones es tan importante como mantenerlos
actualizados de los últimos virus que aparecen. No intentaremos describir paso a paso la solución
cuando se tiene un antivirus actualizado que posiblemente haga todo por nosotros
y solo nos solicita que tomemos una decisión. En su lugar, nos posicionaremos
desde la perspectiva del antivirus para determinar qué debemos hacer contra un
virus una vez que reconocemos un accionar virósico en el sistema. En algunas
oportunidades no tendremos otra salida más que utilizar una extracción manual
realizada por nosotros mismos. Es muy común este tipo de cosas con los virus de
última horneada que no les dan tiempo a los fabricantes de antivirus a
actualizar sus definiciones de virus. La página de
ViruScan
presenta información sobre los últimos virus aparecidos y la forma de extraerlos
manualmente. Cuando uno mismo se va a hacer cargo de la
eliminación de un virus es importante contar con el disquete de inicio del
sistema operativo limpio de virus para poder arrancar la computadora. Los riesgos que infunden los virus hoy en día
obligaron a que empresas enteras se dediquen a buscar la forma de crear
programas con fines comerciales que logren combatir con cierta eficacia los
virus que ataquen los sistemas informáticos. Este software es conocido con el
nombre de programas antivirus y posee algunas características interesantes para
poder cumplir su trabajo. Como ya dijimos una de las características
fundamentales de un virus es propagarse infectando determinados objetos según
fue programado. En el caso de los que parasitan archivos, el virus debe poseer
algún método para no infectar los archivos con su propio código –para evitar
autodestruirse, en otras palabras-, así es que dejan una marca o firma que los
identifica de los demás programas o virus. Para la mayoría de los virus esta marca
representa una cadena de caracteres que "inyectan" en el archivo infectado. Los
virus más complejos como los polimorfos poseen una firma algorítmica que
modificará el cuerpo del mismo con cada infección. Cada vez que estos virus
infecten un archivo, mutará su forma y dificultará bastante más las cosas para
el software de detección de virus.
Ver Virus polimorfos. El software antivirus es un programa más de
computadora y como tal debe ser adecuado para nuestro sistema y debe estar
correctamente configurado según los dispositivos de hardware que tengamos. Si
trabajamos en un lugar que posee conexión a redes es necesario tener un programa
antivirus que tenga la capacidad de detectar virus de redes. Los antivirus
reducen sensiblemente los riesgos de infección pero cabe reconocer que no serán
eficaces el cien por ciento de las veces y su utilización debería estar
acompañada con otras formas de prevención (Más información). La función primordial de un programa de estos es
detectar la presencia de un posible virus para luego poder tomar las medidas
necesarias. El hecho de poder erradicarlo podría considerarse como una tarea
secundaria ya que con el primer paso habremos logrado frenar el avance del
virus, cometido suficiente para evitar mayores daños. Antes de meternos un poco más adentro de lo que
es el software antivirus es importante que sepamos la diferencia entre
detectar un virus e identificar un virus. El detectar un virus es
reconocer la presencia de un accionar virósico en el sistema de acuerdo a las
características de los tipos de virus. Identificar un virus es poder reconocer
qué virus es de entre un montón de otros virus cargados en nuestra base de
datos. Al identificarlo sabremos exactamente qué es lo que hace, haciendo
inminente su eliminación. De estos dos métodos es importante que un
antivirus sea más fuerte en el tema de la detección, ya que con este método
podremos encontrar virus todavía no conocidos (de reciente aparición) y que
seguramente no estarán registrados en nuestra base de datos debido a que su
tiempo de dispersión no es suficiente como para que hayan sido analizados por un
grupo de expertos de la empresa del antivirus. Identificar un virus supone, primero, lograr su
detección y luego poder determinar de qué virus se trata exactamente. A esta
técnica se la conoce con el nombre de scanning o –en Argentina-
escaneo. Es muy sencilla de entender. El programa antivirus posee una base
de datos con ciertas strings propias de cada virus. Estas strings no son
más que las firmas que mencionamos más atrás en el texto, o sea cadenas de
caracteres que el scanner del antivirus utilizará como huella digital para
identificar de qué virus se trata. El scanner comienza a revisar uno por uno el
código de los archivos almacenados intentando encontrar alguno de estos
fragmentos representativos de los virus que tiene registrados. Con cada una de
las verificaciones no se revisa la base de datos completa ya que resultaría
bastante trabajoso y en una pérdida de tiempo considerable, aunque de hecho el
hacer un escaneo de nuestra unidad de disco rígido lleva algún tiempo. Entonces,
cada antivirus utilizará diferentes técnicas algorítmicas para agilizar un poco
este paso de comparar el código contra su base de datos. Hoy en día la producción de virus se ve
masificada e Internet colabora enormemente en la dispersión de virus de muchos
tipos, incluyendo los "virus caseros". Muchos de estos virus son creados por
usuarios inexpertos con pocos conocimientos de programación y, en muchos casos,
por simples usuarios que bajan de Internet programas que crean virus genéricos.
Ante tantos "desarrolladores" al servicio de la producción de virus la técnica
de scanning se ve altamente superada. Las empresas antivirus están
constantemente trabajando en la búsqueda y documentación de cada nuevo virus que
aparece. Muchas de estas empresas actualizan sus bases de datos todos los meses,
otras lo hacen quincenalmente, y algunas pocas llegan a hacerlo todas las
semanas (cosa más que importante para empresas que necesitan una alta protección
en este campo o para usuarios fanáticos de obtener lo último en seguridad y
protección). La debilidad de la técnica de scanning es
inherente al modelo. Esto es debido a que un virus debería alcanzar una
dispersión adecuada para que algún usuario lo capture y lo envíe a un grupo de
especialistas en virus que luego se encargarán de determinar que parte del
código será representativa para ese virus y finalmente lo incluirán en la base
de datos del antivirus. Todo este proceso puede llevar varias semanas, tiempo
suficiente para que un virus eficaz haga de las suyas. En la actualidad,
Internet proporciona el canal de bajada de las definiciones antivirus que nos
permitirán identificar decenas de miles de virus que andan acechando. Estas
decenas de miles de virus, como dijimos, también influirán en el tamaño de la
base de datos. Como ejemplo concreto podemos mencionar que la base de datos de
Norton Antivirus de Symantec Corp. pesa alrededor de 2MB y es actualizada cada
quince o veinte días. La técnica de scanning no resulta ser la solución
definitiva, ni tampoco la más eficiente, pero continúa siendo la más utilizada
debido a que permite identificar con cierta rapidez los virus más conocidos, que
en definitiva son los que lograron adquirir mayor dispersión. Teniendo en cuenta los puntos débiles de la
técnica de scanning
surgió la necesidad de incorporar otros métodos que complementaran al primero.
Como ya se mencionó la detección consiste en reconocer el accionar de un virus
por los conocimientos sobre comportamiento que se tienen sobre ellos, sin
importar demasiado su identificación exacta. Este otro método buscará código que
intente modificar la información de áreas sensibles del sistema sobre las cuales
el usuario convencional no tiene control –y a veces ni siquiera tiene
conocimiento-, como el master boot record, el boot sector, la FAT, entre las más
conocidas. Otra forma de detección que podemos mencionar
adopta, más bien, una posición de vigilancia constante y pasiva. Esta, monitorea
cada una de las actividades que se realizan intentando determinar cuándo una de
éstas intenta modificar sectores críticos de las unidades de almacenamiento
(mencionados en el primer párrafo de este apartado), entre otros. A esta técnica
se la conoce como
chequear la integridad
y es tratada con mayor detalle más adelante. La técnica de detección más común es la de
análisis heurístico. Consiste en buscar en el código de cada uno de los archivos
cualquier instrucción que sea potencialmente dañina, acción típica de los virus
informáticos. Es una solución interesante tanto para virus conocidos como para
los que no los son. El inconveniente es que muchas veces se nos presentarán
falsas alarmas, cosas que el scanner heurístico considera peligrosas y que en
realidad no lo son tanto. Por ejemplo: tal vez el programa revise el código del
comando DEL (usado para borrar archivos) de MS-DOS y determine que puede ser un
virus, cosa que en la realidad resulta bastante improbable. Este tipo de cosas
hace que el usuario deba tener algunos conocimientos precisos sobre su sistema,
con el fin de poder distinguir entre una falsa alarma y una detección real. La eliminación de un virus implica extraer el
código del archivo infectado y reparar de la mejor manera el daño causado en
este. A pesar de que los programas antivirus pueden detectar miles de virus, no
siempre pueden erradicar la misma cantidad, por lo general pueden quitar los
virus conocidos y más difundidos de los cuales pudo realizarse un análisis
profundo de su código y de su comportamiento. Resulta lógico entonces que muchos
antivirus tengan problemas en la detección y erradicación de virus de
comportamiento complejo, como el caso de los polimorfos, que utilizan métodos de
encriptación para mantenerse indetectables. En muchos casos el procedimiento de
eliminación puede resultar peligroso para la integridad de los archivos
infectados, ya que si el virus no está debidamente identificado las técnicas de
erradicación no serán las adecuadas para el tipo de virus. Hoy en día los antivirus más populares están muy
avanzados pero cabe la posibilidad de que este tipo de errores se de en
programas más viejos. Para muchos el procedimiento correcto sería eliminar
completamente el archivo y restaurarlo de la copia de respaldo. Si en vez de
archivos la infección se realizó en algún sector crítico de la unidad de disco
rígido la solución es simple, aunque no menos riesgosa. Hay muchas personas que
recomiendan reparticionar la unidad y reformatearla para asegurarse de la
desaparición total del virus, cosa que resultaría poco operativa y fatal para la
información del sistema. Como alternativa a esto existe para el sistema
operativo MS-DOS / Windows una opción no documentada del comando FDISK que
resuelve todo en cuestión de segundos. El parámetro /MBR se encarga de restaurar
el registro maestro de booteo (lugar donde suelen situarse los virus) impidiendo
así que este vuelva a cargarse en el inicio del sistema. Vale aclarar que
cualquier dato que haya en ese sector será sobrescrito y puede afectar mucho a
sistemas que tengan la opción de bootear con diferentes sistemas operativos.
Muchos de estos programas que permiten hacer la elección del sistema operativo
se sitúan en esta área y por consiguiente su código será eliminado cuando se usa
el parámetro mencionado. Para el caso de la eliminación de un virus es muy
importante que el antivirus cuente con soporte técnico local, que sus
definiciones sean actualizadas periódicamente y que el servicio técnico sea apto
para poder responder a cualquier contingencia que nos surja en el camino. Como ya habíamos anticipado los comprobadores de
integridad verifican que algunos sectores sensibles del sistema no sean
alterados sin el consentimiento del usuario. Estas comprobaciones pueden
aplicarse tanto a archivos como al sector de arranque de las unidades de
almacenamiento. Para poder realizar las comprobaciones el
antivirus, primero, debe tener una imagen del contenido de la unidad de
almacenamiento desinfectada con la cual poder hacer después las comparaciones.
Se crea entonces un registro con las características de los archivos, como puede
ser su nombre, tamaño, fecha de creación o modificación y, lo más importante
para el caso, el checksum, que es aplicar un algoritmo al código del
archivo para obtener un valor que será único según su contenido (algo muy
similar a lo que hace la función hash en los mensajes). Si un virus inyectara
parte de su código en el archivo la nueva comprobación del checksum sería
distinta a la que se guardó en el registro y el antivirus alertaría de la
modificación. En el caso del sector de booteo el registro puede ser algo
diferente. Como existe un MBR por unidad física y un BR por cada unidad lógica,
algunos antivirus pueden guardarse directamente una copia de cada uno de ellos
en un archivo y luego compararlos contra los que se encuentran en las posiciones
originales. Una vez que el antivirus conforma un registro de
cada uno de los archivos en la unidad podrá realizar las comprobaciones de
integridad. Cuando el comprobador es puesto en funcionamiento cada uno de los
archivos serán escaneados. Nuevamente se aplica la función checksum y se obtiene
un valor que es comparado contra el que se guardó en el registro. Si ambos
valores son iguales el archivo no sufrió modificaciones durante el período
comprendido entre el registro de cheksum antiguo y la comprobación reciente. Por
el otro lado, si los valores checksum no concuerdan significa que el archivo fue
alterado y en ciertos casos el antivirus pregunta al usuario si quiere restaurar
las modificaciones. Lo más indicado en estos casos sería que un usuario con
conocimientos sobre su sistema avale que se trata realmente de una modificación
no autorizada –y por lo tanto atribuible a un virus-, elimine el archivo y lo
restaure desde la copia de respaldo. La comprobación de integridad en los sectores de
booteo no es muy diferente. El comprobador verificará que la copia que está en
uso sea igual a la que fue guardada con anterioridad. Si se detectara una
modificación en cualquiera de estos sectores, se preguntará al usuario por la
posibilidad de reconstruirlos utilizando las copias guardadas. Teniendo en
cuenta que este sector en especial es un punto muy vulnerable a la entrada de
los virus multipartitos, los antivirus verifican constantemente que no se hagan
modificaciones. Cuando se detecta una operación de escritura en uno de los
sectores de arranque, el programa toma cartas en el asunto mostrando en pantalla
un mensaje para el usuario indicándole sobre qué es lo que está por suceder. Por
lo general el programa antivirus ofrece algunas opciones sobre como proceder,
como evitar la modificación, dejarla continuar, congelar el sistema o no tomar
ninguna medida (cancelar). Para que esta técnica sea efectiva cada uno de
los archivos deberá poseer su entrada correspondiente en el registro de
comprobaciones. Si nuevos programas se están instalando o estamos bajando
algunos archivos desde Internet, o algún otro archivo ingresa por cualquier otro
dispositivo de entrada, después sería razonable que registremos el checksum con
el comprobador del antivirus. Incluso, algunos de estos programas atienden con
mucha atención a lo que el comprobador de integridad determine y no dejarán que
ningún archivo que no esté registrado corra en el sistema. Muchos virus tienen la capacidad de "parasitar"
archivos ejecutables. Con esto queremos decir que el virus localizará los puntos
de entrada de cualquier archivo que sea ejecutable (los archivos de datos no se
ejecutan por lo tanto son inutilizables para los virus) y los desviará a su
propio código de ejecución. Así, el flujo de ejecución correrá primero el código
del virus y luego el del programa y, como todos los virus poseen un tamaño muy
reducido para no llamar la atención, el usuario seguramente no notará la
diferencia. Este vistazo general de cómo logra ejecutarse un virus le permitirá
situarse en memoria y empezar a ejecutar sus instrucciones dañinas. A esta forma
de comportamiento de los virus se lo conoce como técnica subrepticia, en la cual
prima el arte de permanecer indetectado. Una vez que el virus se encuentra en memoria
puede replicarse a sí mismo en cualquier otro archivo ejecutable. El archivo
ejecutable por excelencia que atacan los virus es el COMMAND.COM, uno de los
archivos fundamentales para el arranque en el sistema operativo MS-DOS. Este
archivo es el intérprete de comandos del sistema, por lo tanto, se cargará cada
vez que se necesite la shell. La primera vez será en el inicio del sistema y,
durante el funcionamiento, se llamará al COMMAND.COM cada vez que se salga de un
programa y vuelva a necesitarse la intervención de la shell. Con un usuario
desatento, el virus logrará replicarse varias veces antes de que empiecen a
notarse síntomas extraños en la PC. El otro "ente" ejecutable capaz de ser infectado
es el sector de arranque de los discos magnéticos. Aunque este sector no es un
archivo en sí, contiene rutinas que el sistema operativo ejecuta cada vez que
arranca el sistema desde esa unidad, resultando este un excelente medio para que
el virus se propague de una computadora a la otra. Como dijimos antes una de las
claves de un virus es lograr permanecer oculto dejando que la entidad ejecutable
que fue solicitada por el usuario corra libremente después de que él mismo se
halla ejecutado. Cuando un virus intenta replicarse a un disquete, primero
deberá copiar el sector de arranque a otra porción del disco y recién entonces
copiar su código en el lugar donde debería estar el sector de arranque. Durante el arranque de la computadora con el
disquete inserto en la disquetera, el sistema operativo MS-DOS intentará
ejecutar el código contenido en el sector de booteo del disquete. El problema es
que en esa posición se encontrará el código del virus, que se ejecuta primero y
luego apuntará el puntero de ejecución a la nueva posición en donde se
encuentran los archivos para el arranque. El virus no levanta sospechas de su
existencia más allá de que existan o no archivos de arranque en el sector de
booteo. Nuestro virus se encuentra ahora en memoria y no
tendrá problemas en replicarse a la unidad de disco rígido cuando se intente
bootear desde esta. Hasta que su módulo de ataque se ejecute según fue
programado, el virus intentará permanecer indetectado y continuará replicándose
en archivos y sectores de booteo de otros disquetes que se vayan utilizando,
aumentando potencialmente la dispersión del virus cuando los disquetes sean
llevados a otras máquinas. Estos programas residentes en memoria son módulos
del antivirus que se encargan de impedir la entrada del cualquier virus y
verifican constantemente operaciones que intenten realizar modificaciones por
métodos poco frecuentes. Estos, se activan al arrancar el ordenador y por lo
general es importante que se carguen al comienzo y antes que cualquier otro
programa para darle poco tiempo de ejecución a los virus y detectarlos antes que
alteren algún dato. Según como esté configurado el antivirus, el demonio (como
se los conoce en el ambiente Unix) o TSR (en la jerga MS-DOS / Windows), estará
pendiente de cada operación de copiado, pegado o cuando se abran archivos,
verificará cada archivo nuevo que es creado y todos los downloads de Internet,
también hará lo mismo con las operaciones que intenten realizar un formateo de
bajo nivel en la unidad de disco rígido y, por supuesto, protegerá los sectores
de arranque de modificaciones. Las nuevas computadoras que aparecieron con
formato ATX poseen un tipo de memoria llamada Flash-ROM con una tecnología capaz
de permitir la actualización del BIOS de la computadora por medio de software
sin la necesidad de conocimientos técnicos por parte del usuario y sin tener que
tocar en ningún momento cualquiera de los dispositivos de hardware. Esta nueva
tecnología añade otro punto a favor de los virus ya que ahora estos podrán
copiarse a esta zona de memoria dejando completamente indefensos a muchos
antivirus antiguos. Un virus programado con técnicas avanzadas y que haga uso de
esta nueva ventaja es muy probable que sea inmune al reparticionado o reformateo
de las unidades de discos magnéticos. Es muy posible que un programa antivirus muchas
veces quede descolocado frente al ataque de virus nuevos. Para esto incluye esta
opción que no consiste en ningún método de avanzada sino simplemente en aislar
el archivo infectado. Antes que esto el antivirus reconoce el accionar de un
posible virus y presenta un cuadro de diálogo informándonos. Además de las
opciones clásicas de eliminar el virus, aparece ahora la opción de ponerlo en
cuarentena. Este procedimiento encripta el archivo y lo almacena en un
directorio hijo del directorio donde se encuentra el antivirus. De esta manera se está impidiendo que ese archivo
pueda volver a ser utilizado y que continúe la dispersión del virus. Como
acciones adicionales el antivirus nos permitirá restaurar este archivo a su
posición original como si nada hubiese pasado o nos permitirá enviarlo a un
centro de investigación donde especialistas en el tema podrán analizarlo y
determinar si se trata de un virus nuevo, en cuyo caso su código distintivo será
incluido en las definiciones de virus. En la
figura vemos
el programa de cuarentena Quarantine de Norton Antivirus 5.0. Nos permite enviar
los archivos infectados al SARC (Symantec Antivirus Research Center) para su
posterior análisis. Los archivos de definiciones antivirus son
fundamentales para que el método de identificación sea efectivo. Los virus que
alcanzaron una considerable dispersión pueden llegar a ser analizados por los
ingenieros especialistas en virus de algunas de las compañías antivirus, que
mantendrán actualizadas las definiciones permitiendo así que las medidas de
protección avancen casi al mismo paso en que lo hacen los virus. Un antivirus que esté desactualizado puede
resultar poco útil en sistemas que corren el riesgo de recibir ataques de virus
nuevos (como organismos gubernamentales o empresas de tecnología de punta), y
están reduciendo en un porcentaje bastante alto la posibilidad de protección. La
actualización también puede venir por dos lados: actualizar el programa completo
o actualizar las definiciones antivirus. Si contamos con un antivirus que posea
técnicas de detección avanzadas, posibilidad de análisis heurístico, protección
residente en memoria de cualquiera de las partes sensibles de una unidad de
almacenamiento, verificador de integridad, etc., estaremos bien protegidos para
empezar. Una actualización del programa sería realmente justificable en caso de
que incorpore algún nuevo método que realmente influye en la erradicación contra
los virus. Sería importante también analizar el impacto económico que conllevará
para nuestra empresa, ya que sería totalmente inútil tener el mejor antivirus y
preocuparse por actualizar sus definiciones día por medio si nuestra red ni
siquiera tiene acceso a Internet, tampoco acceso remoto de usuarios y el único
intercambio de información es entre empleados que trabajan con un paquete de
aplicaciones de oficina sin ningún contenido de macros o programación que de
lugar a posibles infecciones. Todas estas posibilidades para la protección serán
tratadas con más detalle en la siguiente sección. En la imagen podemos ver la barra de herramientas
de Norton Antivirus 5.0 en la ventana que está en segundo plano. En primer plano
se encuentra abierto el archivo con la lista de virus que puede reconocer.
Debajo de ese cuadro de texto podemos ver el total de 46.861 virus que las
definiciones pueden identificar y la fecha de su última actualización (23/2/00).
Ese total de virus identificables incluye los más comunes y los que son de rara
aparición. Estrategia de
seguridad contra los virus
En la problemática que nos ocupa, poseer un
antivirus y saber cómo utilizarlo es la primer medida que debería tomarse. Pero
no será totalmente efectiva si no va acompañada por conductas que el usuario
debe respetar. La educación y la información son el mejor método para
protegerse. El usuario debe saber que un virus informático es
un programa de computadora que posee ciertas características que lo diferencian
de un programa común, y se infiltra en las computadoras de forma furtiva y sin
ninguna autorización. Como cualquier otro programa necesitará un medio físico
para transmitirse, de ninguna manera puede volar por el aire como un virus
biológico, por lo tanto lo que nosotros hagamos para el transporte de nuestra
información debemos saber que resulta un excelente medio aprovechable por los
virus. Cualquier puerta que nosotros utilicemos para comunicarnos es una posible
vía de ingreso de virus, ya sea una disquetera, una lectora de CD-ROM, un módem
con conexión a Internet, la placa que nos conecta a la red de la empresa, los
nuevos puertos ultrarrápidos (USB y FireWire) que nos permiten conectar
dispositivos de almacenamiento externos como unidades Zip, Jazz, HDDs, etc. Viendo que un virus puede atacar nuestro sistema
desde cualquier ángulo, no podríamos dejar de utilizar estos dispositivos solo
porque sean una vía de entrada virósica (ya que deberíamos dejar de utilizarlos
a todos), cualquiera de las soluciones que planteemos no será cien por ciento
efectiva pero contribuirá enormemente en la protección y estando bien informados
evitaremos crear pánico en una situación de infección. Una forma bastante buena de comprobar la
infección en un archivo ejecutable es mediante la verificación de integridad.
Con esta técnica estaremos seguros que cualquier intento de modificación del
código de un archivo será evitado o, en última instancia, sabremos que fue
modificado y podremos tomar alguna medida al respecto (como eliminar el archivo
y restaurarlo desde la copia de respaldo). Es importante la frecuencia con la
que se revise la integridad de los archivos. Para un sistema grande con acceso a
redes externas sería conveniente una verificación semanal –o tal vez menor- por
parte de cada uno de los usuarios en sus computadoras. Un ruteador no tiene
manera de determinar si un virus está ingresando a la red de la empresa porque
los paquetes individuales no son suficiente cómo para detectar a un virus. En el
caso de un archivo que se baja de Internet, éste debería almacenarse en algún
directorio de un servidor y verificarse con la técnica de scanning, recién
entonces habría que determinar si es un archivo apto para enviar a una estación
de trabajo. La mayoría de los firewall que se venden en el
mercado incorporan sistemas antivirus. También incluyen sistemas de
monitorización de integridad que le permiten visualizar los cambios de los
archivos y sistema todo en tiempo real. La información en tiempo real le puede
ayudar a detener un virus que está intentando infectar el sistema. En cuanto a los virus multipartitos estaremos
cubiertos si tomamos especial cuidado del uso de los disquetes. Estos no deben
dejarse jamás en la disquetera cuando no se los está usando y menos aún durante
el arranque de la máquina. Una medida acertada es modificar la secuencia de
booteo modificando el BIOS desde el programa Set-up para que se intente arrancar
primero desde la unidad de disco rígido y en su defecto desde la disquetera. Los
discos de arranque del sistema deben crearse en máquinas en las que sabemos que
están libres de virus y deben estar protegidos por la muesca de sólo lectura. El sistema antivirus debe ser adecuado para el
sistema. Debe poder escanear unidades de red si es que contamos con una, proveer
análisis heurístico y debe tener la capacidad de chequear la integridad de sus
propios archivos como método de defensa contra los retro-virus. Es muy
importante cómo el antivirus guarda el archivo de definiciones de virus. Debe
estar protegido contra sobreescrituras, encriptado para que no se conozca su
contenido y oculto en el directorio (o en su defecto estar fragmentado y cambiar
periódicamente su nombre). Esto es para que los virus no reconozcan con certeza
cuál es el archivo de definiciones y dejen imposibilitado al programa antivirus
de identificar con quien está tratando. Regularmente deberemos iniciar la máquina con
nuestro disquete limpio de arranque del sistema operativo y escanear las
unidades de disco rígido con unos disquetes que contengan el programa antivirus.
Si este programa es demasiado extenso podemos correrlo desde la lectora de
CD-ROM, siempre y cuando la hayamos configurado previamente. Este último método
puede complicar a más de una de las antiguas computadoras. Las nuevas máquinas
de factor ATX incluso nos permiten bootear desde una lectora de CD-ROM, que no
tendrán problemas en reconocer ya que la mayoría traen sus drivers en firmware.
Si no se cuenta con alguna de estas nuevas tecnologías simplemente podemos
utilizar un disco de inicio de Windows 98 (sistema bastante popular hoy en día)
que nos da la posibilidad de habilitar la utilización de la lectora para luego
poder utilizarla con una letra de unidad convencional. El módulo residente en memoria del antivirus es
fundamental para la protección de virus que están intentando entrar en nuestro
sistema. Debe ser apto para nuestro tipo de sistema operativo y también debe
estar correctamente configurado. Los antivirus actuales poseen muchas opciones
configurables en las que deberá fijarse el residente. Cabe recordar que mientras
más de estas seleccionemos la performance del sistema se verá mayormente
afectada. Adoptar una política de seguridad no implica velocidad en los trabajos
que realicemos. El usuario hogareño debe acostumbrarse a realizar
copias de respaldo de su sistema. Existen aplicaciones que nos permitirán con
mucha facilidad realizar copias de seguridad de nuestros datos (también podemos
optar por hacer sencillos archivos zipeados de nuestros datos y copiarlos en un
disquete). Otras, como las utilidades para Windows 9x de Norton permiten crear
disquetes de emergencia para arranque de MS-DOS y restauración de todos
los archivos del sistema (totalmente seleccionables). Si contamos con una unidad
de discos Zip podemos extender las posibilidades y lograr que todo el sistema
Windows se restaure después de algún problema. Estos discos Zip son igualmente útiles para las
empresas, aunque quizás estas prefieran optar por una regrabadora de CD-Rs, que
ofrece mayor capacidad de almacenamiento, velocidad de grabación, confiabilidad
y los discos podrán ser leídos en cualquier lectora de CD-ROM actual. Una persona responsable de la seguridad
informática de la empresa debería documentar un plan de contingencia en el que
se explique en pasos perfectamente entendibles para el usuario cómo debería
actuar ante un problema de estos. Las normas que allí figuren pueden apuntar a
mantener la operatividad del sistema y, en caso de que el problema pase a
mayores, debería privilegiarse la recuperación de la información por un experto
en el tema. No se deberían instalar programas que no sean
originales o que no cuenten con su correspondiente licencia de uso. En el sistema de red de la empresa podría
resultar adecuado quitar las disqueteras de las computadoras de los usuarios.
Así se estaría removiendo una importante fuente de ingreso de virus. Los
archivos con los que trabajen los empleados podrían entrar, por ejemplo, vía
correo electrónico, indicándole a nuestro proveedor de correo electrónico que
verifique todos los archivos en busca de virus mientras aún se encuentran en su
servidor y los elimine si fuera necesario. Los programas freeware, shareware, trial, o de
cualquier otro tipo de distribución que sean bajados de Internet deberán ser
escaneados antes de su ejecución. El download deberá ser sólo de sitios en los
que se confía. La autorización de instalación de programas deberá determinarse
por el administrador siempre y cuando este quiera mantener un sistema libre de
"entes extraños" sobre los que no tiene control. Es una medida adecuada para
sistemas grandes en donde los administradores ni siquiera conocen la cara de los
usuarios. Cualquier programa de fuente desconocida que el
usuario quiera instalar debe ser correctamente revisado. Si un grupo de usuarios
trabaja con una utilidad que no está instalada en la oficina, el administrador
deberá determinar si instala esa aplicación en el servidor y les da acceso a ese
grupo de usuarios, siempre y cuando el programa no signifique un riesgo para la
seguridad del sistema. Nunca debería priorizarse lo que el usuario quiere frente
a lo que el sistema necesita para mantenerse seguro. Ningún usuario no autorizado debería acercarse a
las estaciones de trabajo. Esto puede significar que el intruso porte un
disquete infectado que deje en cualquiera de las disqueteras de un usuario
descuidado. Todas las computadoras deben tener el par ID de usuario y
contraseña. Nunca dejar disquetes en la disquetera durante el
encendido de la computadora. Tampoco utilizar disquetes de fuentes no confiables
o los que no halla creado uno mismo. Cada disquete que se valla a utilizar debe pasar
primero por un detector de virus. Con escanear los archivos ejecutables será
suficiente. Escanear todos los archivos, por lo general, resulta en una pérdida
de tiempo. Si el disquete no lo usaremos para grabar
información, sino más que para leer, deberíamos protegerlo contra escritura
activando la muesca de protección. La protección de escritura estará activada
cuando al intentar ver el disco a tras luz veamos dos pequeños orificios
cuadrados en la parte inferior. Como vimos a lo largo del trabajo los virus
informáticos no son un simple riesgo de seguridad. Existen miles de
programadores en el mundo que se dedican a esta actividad con motivaciones
propias y diversas e infunden millones de dólares al año en gastos de seguridad
para las empresas. El verdadero peligro de los virus es su forma de ataque
indiscriminado contra cualquier sistema informático, cosa que resulta realmente
crítica en entornos dónde máquinas y humanos interactúan directamente. Es muy difícil prever la propagación de los virus
y que máquina intentarán infectar, de ahí la importancia de saber cómo funcionan
típicamente y tener en cuenta los métodos de protección adecuados para
evitarlos. A medida que las tecnologías evolucionan van
apareciendo nuevos estándares y acuerdos entre compañías que pretenden
compatibilizar los distintos productos en el mercado. Como ejemplo podemos
nombrar la incorporación de Visual Basic para Aplicaciones en el paquete Office
y en muchos otros nuevos programas de empresas como AutCAD, Corel, Adobe. Con el
tiempo esto permitirá que con algunas modificaciones de código un virus pueda
servir para cualquiera de los demás programas, incrementando aún más los
potenciales focos de infección. La mejor forma de controlar una infección es
mediante la educación previa de los usuarios del sistema. Es importante saber
qué hacer en el momento justo para frenar un avance que podría extenderse a
mayores. Como toda otra instancia de educación será necesario mantenerse
actualizado e informado de los últimos avances en el tema, leyendo noticias,
suscribiéndose a foros de discusión, leyendo páginas web especializadas, etc. Bibliografía
y fuentes
Trabajo realizado y enviado por: Publicación enviada por Vanden Bosch Leandro Contactar mailto:lvbosch@usa.net Código ISPN de la Publicación EpZVVyZuuAjavEyzQZ Publicado Saturday 31 de January de 2004 Ultimas Publicaciones en ilustrados.com
ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal. | |||||||||