IntermediohistoriavirusDOSpolimorfismoantivirus

La Edad de Oro de los Virus DOS: Cuando el PC No Tenía Defensas (1989-1995)

Entre 1989 y 1995, miles de virus para DOS surgieron en una era sin protección de memoria ni antivirus efectivos. Cascade, Jerusalem, Dark Avenger, polimorfismo y el nacimiento de la industria antivirus.

MalwareIntel Research··18 min lectura
Serie: Historia del Malware — Parte 4

El escenario perfecto: por qué DOS no podía defenderse

Para entender la explosión de virus entre 1989 y 1995, hay que entender qué era DOS. No qué hacía, sino qué no hacía.

MS-DOS (Microsoft Disk Operating System) era un sistema operativo de un solo usuario, una sola tarea, sin protección de memoria, sin separación de privilegios y sin sistema de permisos de archivos. Todo programa que se ejecutaba tenía acceso completo y sin restricciones a todo el hardware de la máquina: memoria, disco, puertos de E/S, tabla de interrupciones.

El procesador Intel 8086/8088 (y sus sucesores en modo real) no distinguía entre código privilegiado y código de usuario. No existía el concepto de kernel mode versus user mode que hoy damos por sentado. Un virus tenía exactamente los mismos privilegios que el sistema operativo.

CaracterísticaDOSSistemas modernos
Protección de memoriaNingunaDEP, ASLR, segmentación
PrivilegiosTodo en Ring 0Kernel mode vs. user mode
Permisos de archivoAtributo read-only (ignorable)ACLs, propietarios, grupos
UsuariosUno, sin autenticaciónMulti-usuario con login
Residencia en memoriaTSR, sin controlProcesos aislados con MMU
Acceso a discoINT 13h directoCapas de abstracción, drivers firmados

En este entorno, escribir un virus era trivial. Cualquier programa podía abrir un ejecutable, inyectar código al final, modificar el punto de entrada y cerrarlo. Sin alertas, sin permisos denegados, sin logs. El sistema no tenía mecanismo alguno para detectar o impedir esa modificación.

TSR: el arma secreta de los virus residentes

DOS tenía una funcionalidad llamada TSR (Terminate and Stay Resident). Un programa TSR finalizaba su ejecución visible pero dejaba una porción de su código cargada en memoria, enganchada a una o más interrupciones del sistema. Esta técnica, diseñada para utilidades como controladores de ratón o relojes en pantalla, resultó ideal para los virus.

Un virus TSR interceptaba la interrupción INT 21h (servicios DOS) o INT 13h (acceso a disco). Cada vez que un programa legítimo abría un archivo o accedía al disco, el virus interceptaba la llamada, infectaba el archivo objetivo y luego pasaba el control a la rutina original. El usuario no percibía nada: la operación se completaba normalmente, pero el archivo quedaba infectado.

Flujo de un virus TSR:

1. Usuario ejecuta programa infectado
2. Virus se instala en memoria (TSR via INT 27h o INT 21h/AH=31h)
3. Virus engancha INT 21h (servicios de archivo)
4. Usuario abre cualquier .COM o .EXE
5. INT 21h interceptada -> virus infecta el archivo
6. Control pasa al handler original de INT 21h
7. Archivo se abre normalmente (usuario no nota nada)

Los pioneros: virus que definieron una era

Cascade (1987-1988): el primer virus cifrado

Cascade, también conocido como Falling Letters o 1701/1704 (por su tamaño en bytes), fue el primer virus que utilizaba cifrado para ocultar su código. Originario de Alemania, se propagó extensamente por Europa y luego a Estados Unidos.

Su mecanismo de cifrado era simple: aplicaba una operación XOR con una clave fija a su cuerpo principal, dejando sin cifrar solo una pequeña rutina de descifrado al inicio. Cuando un antivirus escaneaba el archivo infectado, no encontraba el código del virus en texto plano, sino una secuencia aparentemente aleatoria de bytes.

El payload de Cascade era visual y memorable: las letras de la pantalla comenzaban a "caer" una por una hasta acumularse en la parte inferior, como una cascada de caracteres. Era más espectáculo que destrucción, pero marcó un precedente técnico fundamental. Si un virus podía cifrarse, la detección por firmas simples (buscar una secuencia fija de bytes) ya no era suficiente.

Jerusalem / Friday the 13th (1987): destrucción programada

Descubierto en la Hebrew University de Jerusalén en 1987, Jerusalem fue uno de los primeros virus con un payload destructivo deliberado. Se activaba cada viernes 13 y borraba todos los programas que el usuario ejecutaba ese día.

Jerusalem era un virus residente en memoria que infectaba tanto archivos .COM como .EXE. Se enganchaba a INT 21h y a INT 08h (timer tick). Cada vez que se ejecutaba un programa, Jerusalem lo infectaba. Pero tenía un defecto notable: infectaba los archivos .EXE repetidamente, añadiendo su código una y otra vez sin verificar si ya estaban infectados. Los archivos crecían hasta volverse inmanejables, lo que a menudo delataba la infección antes de la fecha del payload.

Jerusalem generó decenas de variantes. Su código circuló ampliamente y sirvió como base de aprendizaje para una generación de programadores de virus.

Vienna: el virus que se hizo open source

Vienna fue un virus simple de apenas 648 bytes que infectaba archivos .COM. Su importancia no fue técnica sino cultural: su código fuente completo fue publicado en el libro "Computer Viruses: A High-Tech Disease" (1988) de Ralf Burger, y posteriormente en innumerables BBS.

Esta publicación fue enormemente controvertida. Los investigadores argumentaban que entender el código era necesario para crear defensas. Los críticos señalaban que el código funcional de un virus, disponible para cualquiera, era una receta para el desastre. Ambos tenían razón. La publicación del código de Vienna alimentó directamente la creación de cientos de variantes y enseñó a una generación de adolescentes cómo funcionaba la infección de archivos.

Infección de archivos: COM versus EXE

Los virus de DOS necesitaban entender los dos formatos de ejecutable del sistema para infectarlos correctamente.

Archivos .COM

El formato .COM era extremadamente simple: un bloque de código puro que se cargaba en el offset 100h del segmento de memoria. Sin cabecera, sin metadatos. La ejecución comenzaba siempre en el primer byte del archivo.

Para infectar un .COM, un virus podía:

  • Prepending: insertar su código al principio, desplazando el código original. Simple pero cambiaba el tamaño del archivo de forma obvia.
  • Appending: añadir su código al final y sustituir los primeros bytes por un JMP (salto) a su código. Al terminar, restauraba los bytes originales y saltaba al inicio real. Era la técnica más común.
  • Cavity: buscar zonas de bytes nulos o de relleno dentro del archivo original e inyectar su código allí, sin cambiar el tamaño del archivo. Mucho más difícil de detectar.

Archivos .EXE (formato MZ)

Los archivos .EXE tenían una cabecera estructurada (firma "MZ", tabla de reubicación, punto de entrada CS:IP, tamaño). Infectar un .EXE requería más sofisticación:

  1. Leer la cabecera MZ
  2. Guardar el punto de entrada original (CS:IP)
  3. Añadir el código viral al final del archivo
  4. Modificar CS:IP en la cabecera para que apunte al virus
  5. Actualizar los campos de tamaño en la cabecera
  6. Al ejecutarse, el virus hace su trabajo y salta al CS:IP original
AspectoInfección .COMInfección .EXE
ComplejidadBajaMedia-Alta
Tamaño típico del virus200-800 bytes1-4 KB
Detección por tamañoFácil (archivo crece)Menos obvia (cabecera actualizada)
Técnica habitualJMP + appendModificar cabecera MZ
Riesgo de corrupciónBajoAlto (tabla de reubicación)

Dark Avenger: el genio que aterrorizó a los investigadores

El capítulo de los virus DOS no se puede contar sin hablar de Dark Avenger, seudónimo de un programador búlgaro que entre 1988 y 1993 redefinió lo que un virus podía hacer.

Bulgaria en los años 80 y 90 era un caso particular. El país tenía una sólida tradición de educación técnica, hardware de bajo coste (clones de PC fabricados localmente), acceso limitado a software legal y una legislación que no contemplaba los delitos informáticos. Sofía fue bautizada como la "fábrica de virus" por la comunidad antivirus internacional.

Fast infector: la innovación que cambió las reglas

El primer virus notable de Dark Avenger, simplemente llamado "Dark Avenger" o "Eddie" (1989), introdujo la técnica de infección rápida (fast infector). Los virus anteriores infectaban archivos cuando se ejecutaban. Dark Avenger infectaba archivos simplemente cuando eran abiertos para lectura, incluyendo operaciones de copia, backup o escaneo antivirus.

La implicación era devastadora: ejecutar un antivirus que escaneara archivos podía infectar toda la máquina en lugar de limpiarla. Cada archivo que el scanner abría para verificar quedaba infectado. Los investigadores tardaron en comprender por qué las infecciones parecían multiplicarse al intentar eliminarlas.

Mutation Engine (MtE, 1991): polimorfismo como servicio

La contribución más influyente de Dark Avenger fue el Mutation Engine (MtE), distribuido en 1991. No era un virus, sino un módulo enlazable: un OBJ que cualquier programador de virus podía incorporar a su creación para hacerla polimórfica automáticamente.

El MtE generaba una rutina de descifrado diferente en cada replicación. No solo cambiaba la clave de cifrado (que sería trivial de manejar), sino que reestructuraba el código del descifrador: usaba registros diferentes, insertaba instrucciones basura (NOPs, operaciones redundantes), cambiaba el orden de las operaciones y variaba la longitud de la rutina.

El resultado: cada copia de un virus que usaba MtE era diferente a nivel de bytes. No había una firma estática que detectara todas las variantes. Los antivirus tuvieron que evolucionar de la detección por firmas a la emulación de código y el análisis heurístico.

La era del polimorfismo

1260/V2P (Mark Washburn, 1990): el primer polimórfico intencional

Mark Washburn, un investigador de seguridad estadounidense, creó 1260 (también llamado V2P, Variable Encryption) como una demostración de concepto. Quería probar que los antivirus basados en firmas estáticas tenían una debilidad fundamental.

1260 cifraba su cuerpo con una clave diferente en cada infección y generaba un descifrador variable, intercalando instrucciones basura entre las instrucciones reales. Fue el primer virus diseñado deliberadamente para ser polimórfico, anticipando lo que Dark Avenger convertiría en un kit reutilizable con MtE.

Tequila (1991): polimorfismo con estilo

Tequila, originario de Suiza, fue el primer virus polimórfico que se propagó ampliamente in the wild. Era un virus multipartito (infectaba tanto el sector de arranque como archivos .EXE) y utilizaba cifrado con claves variables.

Su payload era llamativo: después de un número determinado de infecciones, mostraba un fractal de Mandelbrot en pantalla. Era una demostración técnica: calcular y renderizar un fractal en un virus de pocos kilobytes demostraba la habilidad del autor.

Whale (1990): exceso de ingeniería

Whale merece mención por ser la antítesis de la elegancia. Con 9 KB (enorme para la época), implementaba más de 30 capas de cifrado y múltiples técnicas anti-debugging. Era un monstruo técnico, pero tan grande y complejo que contenía numerosos bugs, corrompía frecuentemente los archivos que infectaba y era lento en propagarse.

Whale demostró que más cifrado no equivale a mejor virus. Los antivirus lo detectaban precisamente por su tamaño anómalo y sus patrones de comportamiento torpe. La comunidad de virus lo consideró un fracaso técnico, pero los investigadores lo estudiaron extensamente por la variedad de técnicas que implementaba.

Cronología de la Edad de Oro (1987-1995)

AñoVirus / EventoInnovación
1987CascadePrimer virus con cifrado (XOR)
1987Jerusalem / Friday the 13thPrimer virus destructivo con fecha de activación
1988"Computer Viruses: A High-Tech Disease" (Burger)Publicación del código fuente de Vienna
1988Dark Avenger "Eddie"Fast infector (infección al leer archivos)
1989Datacrime / Columbus DayPánico mediático internacional
19901260 / V2P (Mark Washburn)Primer virus polimórfico intencional
1990Whale9 KB, 30+ capas de cifrado, exceso de ingeniería
1991TequilaPrimer polimórfico multipartito in the wild
1991Mutation Engine (MtE, Dark Avenger)Motor polimórfico como kit reutilizable
1991Norton AntiVirus 1.0Symantec entra en el mercado antivirus
1991Dir-II / BywayInfección por cluster (manipulación de FAT)
1992MichelangeloPánico mediático masivo (tema del próximo artículo)
1992Phalcon/Skism, NuKEGrupos organizados de escritura de virus con e-zines
1993DAME, TPEMás motores polimórficos disponibles públicamente
1994OneHalfCifrado progresivo del disco duro
1995Concept (Word macro)Primer virus de macro, fin de la era DOS pura

Grupos de escritura de virus: la escena underground

Los virus de DOS no surgieron en el vacío. A principios de los 90, una escena underground organizada producía virus, motores polimórficos, tutoriales y publicaciones electrónicas (e-zines).

Phalcon/Skism (Estados Unidos)

Activo entre 1991 y 1993, Phalcon/Skism publicó "40Hex", una e-zine técnica que incluía código fuente de virus, tutoriales de infección y análisis de técnicas antivirus. 40Hex fue posiblemente la publicación más influyente de la escena, documentando técnicas que antes solo circulaban de forma privada.

NuKE (Canadá)

El grupo NuKE, liderado por "Rock Steady", publicó virus, herramientas de hacking y su propia e-zine. Fueron más agresivos que Phalcon/Skism en la distribución de código y herramientas directamente utilizables.

La fábrica búlgara

Sofía, Bulgaria, produjo una concentración desproporcionada de virus entre 1988 y 1993. Además de Dark Avenger, autores como "TP" y otros operaban en un entorno donde la escritura de virus no estaba penalizada legalmente y la comunidad técnica local la veía como un desafío intelectual. Vesselin Bontchev, investigador búlgaro de antivirus, documentó extensamente este fenómeno desde dentro, proporcionando análisis invaluables desde la perspectiva del defensor.

29A (España, fundado 1995)

El grupo 29A, fundado en España, llegaría a ser el grupo de virus más técnicamente avanzado del mundo en los años siguientes. Su e-zine se publicó entre 1996 y 2008 e incluyó pruebas de concepto de virus para plataformas que iban más allá de DOS: Windows 95/NT, Linux, y eventualmente los primeros virus para móviles. Aunque su período de mayor influencia queda fuera de este artículo, sus raíces están en la escena DOS de mediados de los 90.

BBS y disquetes: la propagación antes de Internet

En la era pre-Internet, los virus tenían dos vectores principales de propagación:

Disquetes. El vector número uno. Software comercial pirateado, juegos shareware, utilidades del sistema, todo circulaba en disquetes de 3.5 pulgadas (1.44 MB) y antes en disquetes de 5.25 pulgadas (360 KB / 1.2 MB). Un disquete infectado en una oficina podía contaminar decenas de máquinas. Las universidades eran focos especiales: laboratorios con decenas de PCs y cientos de estudiantes intercambiando disquetes.

Los virus de sector de arranque (boot sector) eran particularmente efectivos en este contexto. Bastaba con dejar un disquete infectado en la unidad A: y reiniciar el PC. La BIOS intentaba arrancar desde el disquete antes que del disco duro, el virus se cargaba en memoria y luego infectaba el disco duro. El usuario podía no darse cuenta durante semanas.

BBS (Bulletin Board Systems). Las BBS eran servidores accesibles por módem (1200-14400 baudios) donde los usuarios subían y descargaban archivos, participaban en foros y enviaban mensajes. Eran el Internet antes de Internet. Un archivo infectado subido a una BBS popular podía propagarse a cientos de usuarios en cuestión de días.

Los sysops (administradores de BBS) fueron los primeros en adoptar antivirus de forma sistemática. Muchos implementaban escaneo automático de los archivos subidos, pero los virus polimórficos complicaron esta defensa.

El nacimiento de la industria antivirus

La explosión de virus para DOS creó un mercado que no existía antes. En pocos años, la detección de virus pasó de ser un hobby de investigadores a una industria multimillonaria.

Los pioneros

John McAfee (1987). McAfee Associates, fundada en 1987, fue una de las primeras empresas dedicadas exclusivamente a la detección de virus. McAfee comenzó distribuyendo su software como shareware a través de BBS, un modelo de distribución que encajaba perfectamente con el problema que intentaba resolver. VirusScan, su producto principal, se convirtió en el estándar de facto en entornos corporativos DOS.

Peter Norton / Symantec (1991). Norton AntiVirus 1.0 (NAV) se lanzó en 1991 bajo el sello de Peter Norton Computing, ya adquirida por Symantec. NAV combinaba detección por firmas con una interfaz más accesible para el usuario doméstico, algo que McAfee no priorizaba.

Dr. Solomon's (1988). Alan Solomon, investigador británico, creó Dr. Solomon's Anti-Virus Toolkit, conocido por su precisión técnica y bajas tasas de falsos positivos. Su "Virus Encyclopedia" fue la referencia más completa de la época. Network Associates (McAfee) adquirió Dr. Solomon's en 1998.

F-Prot (1989). Frisk Software, de Islandia, desarrolló F-Prot, uno de los pocos antivirus que ofrecía una versión gratuita para uso personal. Su motor de detección era respetado por la comunidad técnica.

Evolución de las técnicas de detección

GeneraciónTécnicaFuncionamientoLimitación
1a (1987-1989)Firmas estáticasBuscar secuencia fija de bytesInútil contra cifrado y polimorfismo
2a (1990-1992)Firmas con wildcardsPatrones con bytes comodínInsuficiente contra MtE y motores avanzados
3a (1992-1994)Emulación de códigoEjecutar el virus en sandbox virtual para obtener el cuerpo descifradoLenta, consumía recursos
4a (1993-1995)HeurísticaDetectar comportamientos sospechosos (hooking de INT, escritura en ejecutables)Falsos positivos frecuentes

La carrera armamentista entre virus polimórficos y antivirus durante esta era forzó avances en emulación, análisis de comportamiento y heurística que sentaron las bases de los motores antimalware modernos. El Mutation Engine de Dark Avenger fue un punto de inflexión: obligó a la industria a abandonar la detección por firmas como técnica única y adoptar enfoques multicapa.

Técnicas avanzadas: stealth e INT hooking

Virus stealth

Los virus stealth iban un paso más allá de la simple infección. No solo infectaban archivos sino que ocultaban activamente los signos de infección. La técnica más común era interceptar INT 21h y filtrar las llamadas del sistema:

  • Si un programa (o antivirus) pedía el tamaño del archivo infectado, el virus restaba su propio tamaño del valor devuelto.
  • Si un programa intentaba leer el contenido del archivo, el virus descifraba y devolvía el contenido original, limpio.
  • Si un programa leía el sector de arranque, el virus devolvía una copia del sector original, no el infectado.

El resultado: un archivo infectado parecía limpio cuando se examinaba con herramientas estándar de DOS. Solo un antivirus que evitara las interrupciones del sistema (leyendo el disco directamente a través de puertos de E/S o INT 13h) podía detectar la infección real.

El juego del gato y el ratón con INT 21h

Estado normal:
  INT 21h → handler original DOS

Virus instalado:
  INT 21h → handler del virus → handler original DOS

Antivirus intenta evitar:
  Lee vector INT 21h original de la tabla de interrupciones
  Pero el virus ya modificó la tabla al instalarse

Virus más avanzado:
  Hookea también INT 13h (acceso a disco bajo nivel)
  Hookea INT 01h/INT 03h (anti-debugging)
  Monitoriza cambios en la tabla de interrupciones

Esta escalada de engaño y contra-engaño entre virus y antivirus en la tabla de interrupciones de DOS fue un precursor conceptual de las técnicas de rootkit que dominarían la siguiente década.

El fin de una era

La Edad de Oro de los virus DOS terminó no porque los virus fueran derrotados, sino porque la plataforma cambió debajo de ellos.

Windows 3.1 (1992) seguía ejecutándose sobre DOS, así que los virus DOS continuaron funcionando. Pero Windows 95 (agosto de 1995) introdujo un cambio fundamental: aunque mantenía compatibilidad con aplicaciones DOS, el sistema operativo implementaba modo protegido, memoria virtual y (parcialmente) separación de procesos. Las técnicas de hooking de interrupciones que funcionaban en DOS real eran difíciles o imposibles de replicar en el entorno Win32.

Al mismo tiempo, el virus Concept (agosto de 1995) inauguró una nueva era: los virus de macro para Microsoft Word. Ya no hacía falta entender ensamblador ni formatos de ejecutables. WordBasic (y luego VBA) ofrecía un lenguaje de alto nivel con acceso al sistema de archivos. El vector cambió de ejecutables a documentos. La plataforma cambió de DOS a Windows. Y la superficie de ataque se multiplicó.

Pero las lecciones de la era DOS permanecieron. El cifrado, el polimorfismo, la evasión de detección, los virus residentes en memoria, la infección rápida: todas estas técnicas evolucionaron y se adaptaron a Windows, luego a Internet, luego a los dispositivos móviles. Los conceptos que Dark Avenger, los autores de Jerusalem y Cascade, y los grupos como Phalcon/Skism desarrollaron en máquinas 8086 con 640 KB de RAM siguen siendo relevantes (en forma evolucionada) en el malware de 2026.

Lo que viene después

El siguiente artículo de esta serie cubre Michelangelo y el pánico mediático de 1992: cómo un virus relativamente simple de sector de arranque generó la primera histeria colectiva sobre virus informáticos, con predicciones de millones de ordenadores destruidos que resultaron enormemente exageradas, y cómo ese episodio definió la relación entre la industria antivirus y los medios de comunicación durante décadas.


Fuentes y referencias

  • Solomon, A. "Dr. Solomon's Virus Encyclopedia." S&S International, 1995.
  • Bontchev, V. "The Bulgarian and Soviet Virus Factories." Proceedings of the 1st International Virus Bulletin Conference, 1991.
  • Ludwig, M. "The Little Black Book of Computer Viruses." American Eagle Publications, 1991.
  • Szor, P. "The Art of Computer Virus Research and Defense." Addison-Wesley, 2005.
  • Cohen, F. "Computer Viruses: Theory and Experiments." DOD/NBS 7th Conference on Computer Security, 1984.
  • VX Heaven Archive (Historical archive via Wayback Machine)
  • Virus Bulletin Conference Papers Archive
  • MITRE ATT&CK: Software

Preguntas frecuentes

Artículos relacionados

Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.