Origen y evolución del Malware, 1971-1995 (2)

septiembre 14, 2025 on 4:34 pm | In ciberseguridad, colección, hist. informática | Comentarios desactivados en Origen y evolución del Malware, 1971-1995 (2)

Adolfo García Yagüe | En este texto continuamos con el repaso de los primeros años del fenómeno malware. Como en otras ocasiones, os ruego que seáis indulgentes si detectáis alguna omisión o imprecisión. Gracias.

Virus en ficheros .COM y .EXE
Seguimos en 1987, año en el que llegaron las primeras noticias de Vienna y su capacidad para infectar los conocidos ficheros .COM de MS-DOS. Este formato de archivos, que carecían de cualquier encabezado, era una imagen exacta del programa binario que ejecutaba el microprocesador y, al cargarlo en memoria, siempre se ubicaban en la dirección 0x100h ocupando, como máximo, un segmento de 64KB.

Cuando el virus Vienna se encontraba en la memoria de la víctima, buscaba archivos no infectados con la extensión .COM. Para identificar si un archivo ya había sido infectado, el virus realizaba una comprobación de la hora de creación: si los segundos de la marca de tiempo indicaban un valor de 62 segundos, consideraba que el archivo ya estaba infectado y lo ignoraba. Este timestamp de 62 segundos resultó ser una característica ingeniosa ya que, como todos sabemos, no es un valor válido en un reloj real cuyo máximo es de 59 seg.

En cambio, cuando el malware encontraba un archivo limpio, lo abría y sobrescribía sus primeros bytes con una instrucción de salto JMP. Este salto tenía como fin redirigir la ejecución del programa hacia el código malicioso. Después de ejecutar su propio código, el virus devolvía el control al programa original saltando a la dirección donde se encontraba el código sobrescrito. Finalmente, el virus cerraba el archivo .COM y actualiza su hora de creación estableciendo los segundos a 62 para marcarlo como infectado y evitar futuras reinfecciones.

Se especula que este virus fue originario de la ciudad de Viena, pero su autor siempre ha permanecido en el anonimato y lo único que sabemos es que fue descubierto por el austriaco Franz Swoboda, quien indicó que el virus le llegó a través de Ralf Burger, que afirmaba lo contrario… Lo único claro es que fue Bernad Fix quien programó un antídoto para eliminar Vienna y que el propio Burger aprovechó aquel suceso para publicar el polémico “Computer Viruses a high-tech disease” detallando el funcionamiento de Vienna y convirtiéndolo en un virus de referencia para desarrollar nuevas especies… En mi opinión, no es descabellado especular que tras la creación de Vienna se encontraba alguien del entorno del Chaos Computer Club de Alemania. Recordemos que allí, en 1986, Ralf Burger presentó el virus Virden y Bernad Fix a Rush Hour y que ambos virus fueron descritos, junto a otros especímenes, en el libro de Burger.

Estas líneas estarían incompletas si no recordara al famoso virus Jerusalem. Además de por su elaborada y efectiva técnica para infectar ficheros .COM y .EXE, este malware alcanzó los primeros puestos de popularidad debido a sus efectos -dañinos- que se materializaban cada día Viernes 13. Independientemente de la bomba de tiempo que alojaba, la mayor parte de los daños provocados por este virus eran consecuencia la inutilización de los ficheros .EXE que reinfectaba repetidamente. Con cada infección el tamaño de los ficheros se incrementaba 2KB, siendo lo que llamó la atención de sus descubridores de la Universidad Hebrea de Jerusalén.

A diferencia de Vienna, el virus Viernes 13 o Jerusalem tenía la capacidad de permanecer residente en memoria y monitorizaba constantemente las llamadas que hacía cualquier programa a la interrupción 21h, que era el punto de entrada para que MS-DOS realizara funciones básicas, como abrir o cerrar ficheros. Esto le permitía interferir en el acceso a cualquier fichero sin llamar la atención. En aquel instante, insertaba su código de manera similar a lo comentado antes, con la particularidad de que en los ficheros .EXE el virus tenía, además, que saber moverse en el encabezado de estos archivos para identificar el punto de entrada.

Primera generación de antivirus
A esas alturas los sufridos usuarios nos defendíamos como podíamos y la mayor parte de las ocasiones optábamos por el “fuego purificador” de un buen formateo. Este borrón y cuenta nueva era una práctica habitual hasta que llegaron las primeras copias -piratas, eso si- de programas antivirus.

Hasta el año 1988 no conocí un antivirus “de amplio espectro” con capacidad de detectar varios virus. En cambio, si llegó hasta mí algún programa que servía de vacuna frente a un tipo de virus particular e, incluso, algunos eran capaces de identificar ese malware y extirparlo. Como digo, eran remedios muy específicos y solo eran efectivos frente a un determinado código y cualquier variación, por pequeña que fuera, los hacia inútiles cuando no catastróficos inutilizando totalmente el archivo que se intentaba sanar.

El producto más popular de esta primera generación de antivirus fue ViruScan de McAfee Associates. Tras esta compañía estaba el excéntrico, pero visionario, John David McAfee (1945-2021) cuyo currículo incluía experiencia previa en compañías como la NASA, Univac, Xerox y Lockheed… Precisamente, en 1987 y durante su paso por esta última empresa conoció la existencia de Brain. Como hobby programó un antivirus para, posteriormente, distribuirlo a través de BBS en modalidad shareware. Ante el éxito de ViruScan, John McAfee dejaría su empleo en 1989 para profesionalizar los servicios que se ofrecerían a través de McAfee Associates, como la prestación de soporte telefónico, acceso a actualizaciones del producto a través de Compuserve, un modelo de registro y suscripción, y el desarrollo de un canal de ventas.

En esencia, aquellos antivirus se basaban en la identificación de firmas o una secuencia de códigos que permitían reconocer cada tipo de malware. Para ello, el fabricante de la solución debía dotar al producto de tantas firmas como virus fuera capaz de detectar, lo que exigía una actualización constante. Esta actualización, en la mayoría de los casos, no resultaba ni sencilla ni económica para, por ejemplo, un usuario español. La citada base de datos de firmas constituía el núcleo central del sistema del cual se alimentaban tres motores independientes: uno para el análisis de la memoria RAM; otro para los discos flexibles y el disco duro a bajo nivel; y un tercero para analizar el sistema de ficheros para ser capaz de examinar directorios completos o archivos específicos.

Normalmente, los primeros productos lanzados al mercado no eran capaces de limpiar un fichero colonizado y se limitaban marcarlo como infectado, borrarlo o ponerlo en cuarentena. En este sentido, todos los fabricantes insistían en la necesidad de tener y mantener copias de respaldo actualizadas.

De aquellos años, además del citado McAfee, me viene a la cabeza el sofisticado The Norton Antivirus (1990) de Symantec y su intuitiva interfaz de usuario (recordar, estamos en MS-DOS) junto con la posibilidad de actualizar manualmente las firmas conforme van apareciendo nuevos virus y su capacidad -más o menos eficiente- para extirpar el código malicioso de un fichero infectado. Pero, en mi opinión y dejándome llevar por el orgullo patrio, las dos soluciones antivirus con mayor repercusión en España fueron Anyware (1989) de Carlos Jiménez, y Artemis (1990) de Mikel Urizarbarrena, fundador de Panda Security.

Polimorfismo y virus Cascade
La ciberseguridad, salvando las distancias, es una carrera armamentística y la lucha contra el malware es un buen ejemplo de ello. Como era de suponer, era cuestión de tiempo que los métodos de detección basados en firmas quedaran obsoletos porque a alguien se le ocurriría la forma de alterar el código de un virus con cada copia y así, la apariencia de toda su descendencia, sería distinta e imposible de detectar mediante firmas conocidas.

Esta capacidad, llamada polimorfismo, está en la base de aquellos virus que, empleando alguna técnica de cifrado, consiguen alterar su apariencia para convertirlos en únicos. No es menos importante la ofuscación que consiguen de su código, complicando de esta forma el análisis de su funcionamiento.  Aunque pueda parecer que hay similitudes con el actual malware Ransomware -por aquello del cifrado- no hay que confundirlo. Estamos hablando de técnicas de cifrado muy elementales, de finales de los ´80, cuyo objetivo no era el cifrado masivo de ficheros y directorios, simplemente alterar el propio código para pasar desapercibido.

De nuevo volvemos a Centroeuropa, concretamente a Alemania, y allí encontramos las primeras señales del virus Casacade (1987), también conocido como 1701 y 1704 por el tamaño que añadía a los ficheros infectados, y otros tantos nombres con los que se identificó a sus mutaciones. Haciendo uso de una comparación biológica, podemos afirmar que el virus Cascade fue un salto evolutivo al incorporar un sencillo mecanismo que le permitía ser polimórfico. Afortunadamente, este virus no fue infalible frente a la mayoría de antivirus de primera generación, pues su algoritmo de cifrado podía ser identificado mediante firma, pero el resto del código del virus se encriptaba y éste era diferente en cada copia. Sin duda, aquello fue un comienzo y señaló el camino por donde evolucionaría el malware y las herramientas de detección.

Cascade infectaba ficheros .COM y aunque inicialmente estaba programado para atacar solo a equipos clónicos PC y excluir a máquinas IBM, su rutina para identificar al fabricante de dicho PC mediante el copyright de la BIOS no consideró las posibles variantes que hacía IBM en cada versión, por lo que afectó a casi a cualquier PC. Paradójicamente, sería la propia IBM de Bélgica uno de los mayores damnificados de esta plaga, teniendo que desarrollar un antídoto para frenar sus “simpáticos” efectos tras comprobar como a sus empleados se les caían -literalmente- los caracteres de sus monitores.

Como he comentado, en el código de Cascade existía una rutina de encriptación basada en la operación lógica XOR, fácilmente implementable a nivel ensamblador. En los primeros especímenes de 1701, la clave para el cifrado y posterior descifrado se correspondía con la longitud original del archivo infectado. Recordar que este mecanismo encriptación solo se aplicaba al payload del malware para ocultar su código frente miradas indiscretas y la descrita identificación a partir de firmas.

Este cambio de tendencia en el desarrollo de malware, unido a un incremento exponencial de virus y variantes, hizo insostenible seguir basando únicamente las capacidades de detección en una base de datos de firmas conocidas. Pensemos en la dificultad para mantener actualizado ese gigantesco repositorio de firmas y lo más complicado, desarrollar un motor lo suficientemente rápido para analizar decenas o cientos de ficheros contra esta base de datos de firmas.

Vacunación y primeros antivirus heurísticos
Bajo las técnicas de vacunación los antivirus fueron incorporando capacidades para identificar cambios inesperados en un fichero, como aquella basada en guardar el checksum o suma de verificación de cada archivo en una base de datos, para, si un malware alteraba ese fichero poder detectarlo, aunque no se conociese la identidad del artefacto responsable del cambio. Otra capacidad de detección muy básica consistía en conocer la fecha de creación original y la longitud del fichero víctima y, una vez más, ante un cambio no esperado se generaba una alerta.

Un paso más allá en la detección de agentes malignos desconocidos, y aproximándonos más al término heurístico, consistía en analizar -en tiempo real- el comportamiento de un posible malware e identificar ciertas acciones sospechosas, como las llamadas a la interrupción 13h para hacer accesos al sistema de almacenamiento a través de la BIOS. Recordar que por heurístico entendemos una forma de encontrar una solución de una manera rápida y, a veces, no del todo perfecta y óptima.

Como digo, estas técnicas, aunque efectivas, no eran perfectas y podían generar falsos positivos porque, por ejemplo, el funcionamiento de algunas aplicaciones precisaba hacer cambios en sus respectivos archivos e, incluso, algunos sistemas anticopia hacían un uso legítimo de la interrupción 13h, como aquella consistente en la detección de una marca láser en la superficie del disco. También, para sacar el máximo partido a estos mecanismos de vacunación, era necesario trabajar con ordenadores que tuvieran disco duro y que fuesen rápidos porque, de lo contrario, era inviable en un sistema con solo diskettes. [Continuará]

Introducción a la Ciberseguridad | Origen y evolución del Malware, 1971-1995 (1) | Origen y evolución del Malware, 1971-1995 (y 3)

Sin comentarios

Sorry, the comment form is closed at this time.



© 1999-2026 A.G.YAGÜE - Se autoriza el uso según terminos Creative Commons BY-NC-SA
Powered by WordPress