Presentamos la historia de un primitivo virus contada por su autor. En
1981 recien empezaban a aparecer las PC, y ya existían los virus
informáticos, basados en una máquina popular en ese momento, la Apple
II. Joe Dellinger, estudiante de la universidad A&M de Texas,
probablemente jamás se imaginó que lo que hizo casi como un juego iba a
convertirse, pocos años después, en un problema a nivel mundial.
Cuando era estudiante universitario en la universidad A&M de Texas (eso
fue en 1981) había una activa comunidad de usuarios de Apple II en mi
residencia universitaria (Shuhmacher) con una increíble cantidad de
copias piratas de juegos. Observé que la mayoría estaban dañados de
diferentes formas, pero casi siempre se podía jugar con ellos a pesar de
eso. (Por ejemplo, había un conocido juego llamado "Star Trek" en BASIC
que ocasionalmente tenía basura en sentencias que no eran críticas, como
REM y PRINT, los juegos de guerra espacial muy frecuentemente tenían
basura aleatoria que reemplazaba algunos dibujos de naves, etc.) Decidí
que podía explicar esto como una especie de "evolución".
Para que la evolución se produzca hacen falta mutación y selección
natural. En realidad, había "mutación" causada por gente que intentaba
modificar los juegos; lo que es más importante aún, había computadoras y
disquettes enfermos que deformaban en forma accidental muchas copias de
estos juegos.
La gente seguía utilizando los disquettes de los juegos hasta que
literalmente se desintegraran. Mi Apple II, de un modelo antiguo, era
muy poco confiable y solía colgarse cada 30 minutos de todo tipo de
interesantes formas. Por lo común unos pocos golpecitos bien dados la
ponían nuevamente en funcionamiento. La "Selección Natural" entraba en
escena con las acciones de los usuarios de "reproducir" o bien "matar"
copias de los juegos. Por ejemplo, si no se podía jugar con la copia del
juego que uno tenía se intentaba conseguir otra copia de ese mismo juego
reproduciendo esta copia y matando la otra. Como había espacio limitado
para juegos en los discos, también había una gran competencia entre las
diferentes especies de programas.
Esta idea de programas que habitan una especie de biosfera de la
computadora llevó naturalmente al concepto de un "Virus de Computadora",
como un resultado accidental probable de dicha evolución. Mis
experimentos comenzaron cuando intenté averiguar cual era el cambio
mínimo que haría al DOS virósico. Pensaba en algo así como un prion, una
especie de proto-virus. Recuerdo que la respuesta para el DOS 3.3 era de
aproximadamente 16 bytes, que estaba dentro de los límites de lo que
sucedería naturalmente si las Computadoras Apple II, en manos de gente
que copiara programas de juegos aleatoriamente, existieran durante
algunos millones de años. El próximo paso lógico era intentar determinar
como sería un programa evolucionariamente óptimo. Obviamente el programa
sería más exitoso si no confiara en la buena voluntad de los humanos
para reproducirse, pero asimismo no es una buena idea dañar al huésped
(o darle a los humanos una razón para gastar energías intentando matarlo
a uno). Por ello que el virus ideal se extendería por sí mismo sin
causar ningún tipo de daño o "síntoma", si pudiese evitarlo.
Traté estas ideas con amigos, muchos de ellos también usuarios de
Computadoras Apple. Hasta ese momento ninguno de ellos había escuchado
lo que era un "virus de computadora". (Muchos usuarios de Apple que
conocía se burlaban de la idea de que algo así pudiera existir). Bien,
en ese momento crear un virus sonaba como un proyecto realmente
interesante y era un buena excusa para aprender el lenguaje de máquina
del procesador 6502. Por lo tanto, en nuestro (poco frecuente) tiempo
libre, un grupo de nosotros comenzó a trabajar sobre mi "programa
evolucionariamente óptimo". Finalizamos nuestro primer intento, la
"Versión 1 del Virus" a comienzos de 1982. El Virus 1 era infeccioso
pero aún causaba síntomas en mi computadora a pesar de nuestros mejores
esfuerzos, por ello que lo dejamos en estricta cuarentena y continuamos
experimentando con él.
Unos meses más tarde terminamos el diseño del Virus 2. Parecía no causar
serios daños, por ello procedí con el próximo paso en mis experimentos y
lo solté en mis propios discos. El objetivo era determinar con qué
velocidad dicho programa se diseminaría por mis propios discos si seguía
utilizando mi computadora en forma normal. Tenía otra buena razón para
querer asegurarme de que el virus era totalmente inocuo. De hecho casi
todo el código del Virus 2 era para verificar diferentes tipos de
situaciones peligrosas: un DOS no convencional, discos no
convencionales, programas que alteran el DOS, etc. En estos casos los
virus o no infectarían o bien se desconectarían inmediatamente del DOS,
y se "suicidarían".
Los usuarios de Apple II de la Universidad A&M de Texas estaban muy
interesados en mi "investigación", por eso les di también copias del
Virus 2 a varios amigos que querían jugar con él. La idea del virus de
computadoras se extendió rápidamente; muchos otros comenzaron a trabajar
en los suyos propios propios, "menos aburridos" (léase dañinos).
Afortunadamente, (por lo que yo supe) se pasaban la mayor parte del
tiempo intentando idear bomas interesantes para que los virus produjesen
síntomas "divertidos", en lugar de intentar decididamente crear un virus
maligno activo.
Al comienzo mantuvimos el Virus 2 cuidadosamente en cuarentena, pero
despues de unos pocos meses de no haber presentado síntomas dañinos, nos
descuidamos y sucedió lo inevitable. Supe por primera vez que el Virus 2
se había escapado por uno de mis amigos de la universidad que se había
graduado y mudado a la universidad UIUC para continuar sus estudios. Me
informó que en ese lugar todas las copias de un juego llamado "Congo"
habían dejado de funcionar misteriosamente. Cuando la gente quería
obtener una nueva copia que funcionara, se encontraba con que las copias
anteriores, que andaban, ahora dejaban de hacerlo. Mi amigo se dio
cuenta de lo que había sucedido y me informó acerca de ello.
Inmediatamente diseñamos un programa "inmunizador" y lo distribuimos en
UIUC; el utilitario standard de Apple II "master create" fue suficiente
como desinfectante. Sin embargo, nunca estuvimos seguros de haber matado
todas las copias que se habían escapado del Virus 2 en UIUC.
Estaba desilusionado porque el Virus 2 era un fracaso, y comencé a
diseñar el Virus 3. Resultó ser que el Virus 2 causaba problemas porque
agrandaba el sector 1 del DOS en 256 bytes, ¡una significativa cantidad
de memoria!, para albergar el código extra. Unos pocos programas se
destruirían en forma extraña por esta razón. (La solución era
simplemente bootear desde un disco no infectado y luego correr los
programas). Entonces, el objetivo para el Virus 3 era que no ocupara
lugar ni en la memoria ni en el disco. Después de pensar un poco se nos
ocurrió una solución: la mayor parte del núcleo del Virus 3 se alojaba
en la memoria no protegida sobre la que se podía escribir libremente.
Una pequeña rutina oculta y a salvo dentro de agujeros en la tabla de
conversión de lectura-escritura del DOS hacía un triple control del
código sin protección antes de ejecutarlo. Este código era una verdadera
pesadilla; algunos bytes en la tabla cumplían doble función: como
valores de información críticos para el DOS y como códigos de operación
ejecutables para el virus. El Virus 3 fue un éxito; nunca nos
encontramos con ningún programa cuyo comportamiento se viera afectado
por su presencia. La peor parte de diseñar un virus de DOS fue que cada
vez que cometía un error, el DOS dejaba de funcionar, y entonces debía
re-ubicar manualmente los bytes que tenía escritos en folletos de
propaganda. Utilizar un ensamblador no era en absoluto la solución, ya
que todo el proceso constaba de sólo 300 bytes y se desintegraba en
pequeños pedacitos en varios sectores del DOS. Tenía gran cantidad de
JMPs por todos lados, un código de modificación propia y otras
pesadillas similares, todo esto para hacerlo lo más pequeño posible.
Cuanto más grande era y más expuesto estaba a la memoria, más trabajo
tenía para reproducirse y más posibilidades existían de que algo
inesperado sucediera.
Finalmente, no sé lo que sucedió. Debido a que el Virus 3 de hecho era
completamente invisible, luego de un tiempo perdimos el interés y lo
dejamos en el olvido. Nuevamente intentamos poner el virus en cuarentena
pero en el invierno de 1983, poco después de graduarme y mudarme a
Stanford, un chequeo reveló su existencia en varios discos de mis
amigos, que ellos suponían no estaban infectados. Sin embargo, en ese
momento no creían que valiese la pena sacarlo, y por eso se expandió sin
control. A esa altura, también en A&M, el interés por los virus había
desaparecido. Sólo tuve noticias de mi virus una vez más: durante 1984
mi amigo en UIUC me informó que un virus maligno estaba atacando
computadoras Apple y que estaba causando mucho daño, inicializando
discos aleatoriamente. Algunos discos tenían una especie de inmunidad
contra el Virus Maligno; sin embargo, cuando dichos discos estaban
infectados por el virus se colgaban en el momento de bootear (que era
mejor que aparentar un booteo normal y luego causar mayores daños).
¡Resultó ser que los discos inmunes eran aquellos que previamente habían
sido infectados por el Virus 3!