Origen y evolución del Malware, 1971-1995 (y 3)
septiembre 26, 2025 on 5:05 pm | In ciberseguridad, colección, hist. informática | Comentarios desactivados en Origen y evolución del Malware, 1971-1995 (y 3)Adolfo García Yagüe | Hacia el final de la década de los 80, las únicas herramientas con las que contaban las empresas para defenderse de una infección, era una suscripción a un buen antivirus, la aplicación estricta de políticas que prohibieran el uso de software no corporativo, y la existencia de copias de seguridad actualizadas… por si acaso. No había mucho más dónde elegir.
Malware en Redes Corporativas
El incidente sufrido por IBM con el virus Cascade, nos permite recordar el riesgo al que se enfrentaba cualquier organización con una red de área local (LAN) en la que sus usuarios compartían impresoras, disponían de almacenamiento centralizado o, simplemente, intercambiaban archivos. Como hemos comentado en otros artículos, la mayoría de estas redes LAN se articulaban sobre NetBIOS, que era una extensión del sistema operativo MS-DOS para ofrecer soporte de red. Como sabéis, con el despliegue de estas redes se pretendía que el usuario tuviera acceso a unas unidades de red que podían ser privadas o compartidas entre compañeros. Esto significaba, que si un virus ya se encontraba presente en el equipo del usuario, también tendría acceso a cualquier carpeta y fichero existente en las unidades remotas X:, Y: o Z:, por ejemplo. Es decir, para que una infección se propagase, no era necesario intercambiar un disquete con un colega, pues el virus se podía mover libremente en todo el entramado de la Red LAN.
Por otra parte, hasta la popularización de las mencionadas redes locales, en algunas organizaciones, la forma más habitual de trabajar contra un recurso central era a través del teleproceso ofrecido por un miniordenador y mainframe. Normalmente estos ordenadores funcionaban veinticuatro horas al día en instalaciones acondicionadas, la mayoría inexpugnables, y era en estos sistemas donde residía cualquier base de datos y allí se ejecutaban todas las aplicaciones de negocio o mensajería. Desde un usuario, en el caso de IBM, el acceso a estos sistemas estaba limitado al uso de una aplicación mediante un “terminal tonto” SNA 3270 o 5250 o, desde un PC, a través de la correspondiente emulación de terminal. En resumen, un usuario común no tenía ningún acceso al sistema operativo o los procesos que corrían dentro de la máquina central, por lo que era poco probable que un virus pudiese infectar al sistema. Además, recordemos, que el código de un malware para MS-DOS y el microprocesador Intel 8086 no tendría ningún efecto, por ejemplo, en un sistema MVS de IBM… aunque Bernad Fix, también conocido como Foxi, coqueteó con un virus para sistemas MVS/370 de IBM.
Por último, hay que recordar a los sistemas basados en UNIX y TCP/IP. Con una filosofía distinta a las comentadas anteriormente, este sistema operativo se utilizaba principalmente en el ámbito académico e Internet y, comparativamente, su empleo en el entorno empresarial estaba menos extendido, aunque en sectores como el ingenieril, era bien conocido gracias a su potencia y flexibilidad.
Un sistema corriendo UNIX, al igual que sucede en su descendiente GNU Linux, consta de decenas o cientos de servicios en ejecución y, para delicia de un malware o atacante, es habitual que alguno de estos servicios sea accesible remotamente a través de TCP/IP para, por ejemplo, intercambiar archivos (FTP), acceder vía terminal (Telnet) o enviar un correo electrónico (SMTP)…
Gusano Morris
Un sábado de noviembre de 1988, el programa Informe Semanal abrió uno de sus reportajes alertando “…en la red de comunicaciones auspiciada por el sistema de defensa americano y conectada con el programa más famoso y espectacular del presidente Reagan, conocido como Guerra de las Galaxias, el joven Robert Morris había introducido un virus informático…”. A continuación, en ese mismo espacio de televisión, uno de los españoles que mejor entendía los entresijos de la red afectada, José A. Mañas profesor de la Universidad Politécnica de Madrid (UPM), daba unas pinceladas sobre los virus informáticos y comentaba el suceso…
Tras esta introducción, quedé perplejo por su aparente magnitud y trascendencia. Aunque un año un año antes había leído sobre ARPANET en un artículo firmado por el propio Robert E. Kahn (1938), no fui capaz de dar sentido a lo escuchado y entender de qué se trataba. Lo único que me quedó claro es que en el incidente se vio afectado un futurista programa militar estadounidense del que conocíamos su existencia por los medios.
Meses más tarde supe que muchas instituciones académicas y científicas alrededor del mundo estaban conectando sus redes a través de TCP/IP y que, la mayoría de sus máquinas, eran sistemas UNIX… y que un tal Robert Tappan Morris (1965), a días de cumplir 24 años, había tumbado todo ese tinglado…
También conocí que el agente patógeno no era un virus, sino un gusano al que se había bautizado con el nombre de su autor. Es decir, se trataba de un código maligno con capacidad para propagarse a través de esa red mundial sin necesidad infectar e intercambiar ficheros. Ah, se me olvidaba, nuestro protagonista era hijo de Robert H. Morris, uno de los creadores de Darwin (1961) y, además, en el momento del incidente, papá Morris trabajaba en la NSA (National Security Agency)… alucinante… todo quedaba en casa…
Siguiendo un orden basado en la probabilidad de éxito, el gusano Morris podía emplear cuatro vectores diferentes en su intento de colonizar remotamente un objetivo:
- sendmail, a través del puerto TCP 25. Servicio para envío y recepción de correos. El gusano se aprovechaba del modo de depuración (activo por defecto) para ejecutar comandos arbitrarios sin autentificación. Probabilidad de éxito alta.
- fingerd, TCP 79. Demonio que permitía conocer remotamente el nombre de los usuarios y el estado de su sesión. Morris se aprovechaba de una vulnerabilidad de fingerd en la distribución UNIX Berkeley (BSD) permitiendo la ejecución remota de código. Probabilidad de éxito alta.
- rsh, TCP 514. Este servicio permitía la ejecución remota de comandos, sin contraseña, y estaba basada en autenticaciones de confianza que se configuraban en el archivo .rhost. Morris buscaba aquellos archivos .rhost que carecían de un permiso de acceso restrictivo para conocer las máquinas y usuarios que tenían concedido el acceso. Probabilidad media.
- rexec, TCP 512. Este servicio permitía la ejecución remota de comandos con contraseña. A diferencia de rsh, en rexec si era necesario introducir un nombre de usuario y una contraseña. El gusano Morris sorteaba esta barrera probando, una a una, diferentes contraseñas para cada nombre de usuario con palabras generadas a partir de un diccionario y/o permutaciones de estas. Probabilidad baja.
Trascurridas unas horas tras su liberación, el 2 de noviembre de 1988, el gusano Morris ya había logrado infectar a más de 6000 sistemas y se estimaba que unas 60000 máquinas se encontraban a su alcance… Recordar que en aquel año se contabilizaban en Internet, aproximadamente, 500 redes estadounidenses y no más de 100 redes internacionales (entre las que se encontraba la UPM). Precisamente, y según la declaración de Robert Morris tras su detención, justificó su acción diciendo que aquello era solo un experimento para intentar conocer la población y envergadura de Internet, y que se le fue de las manos…
La realidad es que este gusano, intencionadamente o no, contenía un error en su programación lo que permitió la reinfección de sus víctimas, ocasionando el agotamiento y el colapso de los sistemas afectados. Para atajar la crisis provocada por Morris, la mañana del 3 de noviembre se pusieron al frente expertos de la Universidad de Berkeley, el MIT y la Universidad de Purdue, y juntos lograron desentrañar su funcionamiento y desarrollar los parches necesarios para corregir el incidente.
Esta respuesta reactiva e improvisada, aunque efectiva, puso de manifiesto la necesidad de establecer algún tipo de coordinación y protocolo para gestionar futuras crisis. Por este motivo, tras el suceso, inició su andadura en la Universidad Carnegie Mellon el primer CERT o Computer Emergency Response Team y, entre sus atribuciones, quedaba la dirección de la respuesta ante un incidente de seguridad, además de analizar amenazas y vulnerabilidades.
Otra consecuencia del gusano de Morris fue la incorporación en los sistemas UNIX de capacidades para establecer filtros IP, como los TCP Wrappers (1990) e IPFilter (1992). En esta línea de protección conviene recordar el caso de ciertos routers, como los de Cisco Systems, que incluirían a partir de 1993 la posibilidad de establecer ACL (Access Control Lists). Inmediatamente después, gracias al servicio ipfw de UNIX, se desarrolla el concepto Firewall y aparecen las primeras soluciones específicas de seguridad, como FireWall-1 de Check Point que se apoyaba en estaciones Sun Microsystems y su sistema operativo Solaris.
Junto a estos avances, en algunas organizaciones cuyos servicios eran especialmente sensibles se fue un paso más allá en materia de ciberseguridad. Estas compañías eran conscientes del riesgo que representaba un adversario motivado y, por ello, se esforzaron en levantar barreras para proteger sus datos y cifrar sus comunicaciones. Esta preocupación aumentaba si contaban con una red de sucursales o delegaciones, o si formaban parte de una red bancaria internacional como SWIFT.
Más allá del trastorno y los cambios que provocó, el gusano de Morris puso en evidencia la realidad de los sistemas, dejando importantes lecciones que, en mi opinión, podrían formar parte de unos ficticios (pero todavía vigentes) Diez Mandamientos de la Ciberseguridad:
- No expondrás información que pueda ser aprovechada por un atacante (nombre y tipo de los sistemas empleados, nombre de usuarios, correos…).
- Corregirás cualquier vulnerabilidad de un sistema y/o sus programas.
- Siempre bastionarás un sistema y no dejarás desatendidas configuraciones por defecto.
- No dejarás servicios innecesarios expuestos y sin protección alguna.
- No dejarás ningún fichero de configuración y passwords a la vista de un atacante.
- No utilizarás passwords débiles y las sustituirás periódicamente.
- Establecerás controles para detectar y frenar reintentos al ingresar una contraseña.
- y cifrarás todo, comunicaciones y datos… aunque en 1988 esto no estaba al alcance de la mayoría de los sistemas.
- …
Con estas líneas daría por terminado el repaso al origen y primeros años del fenómeno malware. No obstante, es obvio que la cosa no acabó en 1995 y, en muchos sentidos, lo verdaderamente interesante empezaría a partir de aquel año. Permitirme recordar: Internet llega a los hogares; el correo electrónico se convierte en una popular herramienta de comunicación; las empresas adoptan masivamente redes LAN; aparece Windows 95, con todas sus luces y sombras; el uso de macros embebidas en los documentos ofimáticos; empezamos a usar teléfonos GSM, agendas y ordenadores de bolsillo con conexión a Internet… y los malotes se dan cuenta de que la propiedad de virus y gusanos para replicarse de forma sigilosa no tiene por qué ser un fin, sino que puede ser un medio para desarrollar ataques más sofisticados… Pero esto es otra historia que contaré en futuros textos…
Introducción a la Ciberseguridad | Origen y evolución del Malware, 1971-1995 (1) | Origen y evolución del Malware, 1971-1995 (2)
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)
© 1999-2026 A.G.YAGÜE - Se autoriza el uso según terminos Creative Commons BY-NC-SA
Powered by WordPress








