Los primeros organismos predatorios autorreplicantes nunca pudieron escapar de los confines de la problemática mainframe IBM 7090 de los laboratorios Bell de AT&T en Nueva Jersey. Esas vestias eran los guerreros digitales en un juego de gladiadores llamado Darwin". Levy, Steven. Artificial Life: The Quest for a New Creation 1992 DARWIN era un juego de programación inventado por Victor Vyssotsky en Agosto de 1961. La versión inicial fue implementada por Douglas McIlroy en la IBM 7090 de los Laboratorios Bell. El objetivo del juego era escribir un programa que eliminara todos los oponentes y se convirtiera en el replicador más prolífico. Los programas se cargaba en un área de la memoria de núcleo de ferrite conocida como "la arena". Cada especie tenía un punto de comienzo definido y un número de locaciones protegidas. Las epsecies menores tenían una ventaja por ejecutarse primero. El "árbitro" de DARWIN proveía funciones para analizar memoria, resevarla, y matar oponentes. Las funciones se llamaban por medio de una dirección de memoria, y la identidad de la especie que llamaba. Si la dirección de memoria estaba protegida, se transfería el control al programa en dicha dirección. Darwin is a programming game invented by Victor Vyssotsky in August 1961. The initial version was implemented by Douglas McIlroy on an IBM 7090 at Bell Labs. The aim of the game is to write a program to eliminate all opponents and be the most prolific replicator. Specification Programs are loaded into an area of memory known as the arena. Each species has a defined starting point and a number of protected locations. The smallest species has the advantage of running first. Darwin's Umpire provides functions to probe memory, reserve memory and kill opponents. Functions are called with an address and the identity of the calling species. If the address is protected, control transfers to the program at address. Function Description probe(address,id) Return the start/end of the memory block at address and the identity of its owner claim(address,id) Reserve memory at address. Must be preceded by a probe kill(address,id) Deletes the program at address. Must be preceded by a probe The complete specification is available in Darwin, a Game of Survival of the Fittest among Programs [mirror]. Details are also available for the ISU Darwin System. History VIRUS COREWARS: Las "Guerras del Núcleo" se refiere a una tipología o especie de juego para los sistemas de tiempo compartido y múltiples usuarios. Se originaron en 1961 en el Bell Labs como un juego de programación que tenía el sentido de evaluar la resistencia de los primeros mainframes con sistemas operativos de tiempo compartido (los primeros capaces de ejecutar tareas en segundo plano). Para ello tres programadores, Victor Vyssotsky, Robert Morris (padre) y Douglas McIlroy desarrollaron un programa llamado DARWIN. Consistía en una rutina "árbitro", y la arena del coliseo consistía en la memoria de núcleo de los mainframes IBM 7090. Los jugadores debían escribir software basado en un set de instrucciones minimalistas que corriese en el Sistema Operativo Compatible Timesharing System original. La idea lúdica era que tuviesen la menor cantidad de instrucciones posibles (MINIMALISMO). El fin era para apoderarse de la "arena" en forma de memoria alocada del mainframe, todo ello haciendo uso de la posibilidad de explotar la "retención" de magnetismo típica de la memoria de núcleo de ferrite. Los tres ingenieros jugaron varias rondas de DARWIN. El programa más pequeño capaz de replicarse, encontrar y matar otros programas resultó tener 30 instrucciones. McIlroy intentó con un programa inmortal de 15 instrucciones que podía cazar y matar, pero la inmortalidad le vino a costa de no poder reproducirse. Robert Morris en cambio creó un programa con el que finalmente pudo ganar la justa: uno de 44 instrucciones con estrategia adaptativa. Cuando el programa de Morris encontraba la locación de memoria superior de un programa ajeno, analizaba un poco por encima del mismo (usando un offset). Si encontraba que dicha locación no estaba protegida, la reservaría para usar el mismo offset a posteriori). De lo contrario utilizaría otro offset. En conclusión podemos decir que La idea de las COREWARS se usaba como una propuesta lúdica y teórico practica, pero dieron el origen de múltiples condiciones de los virus: la noción de replicarse, apoderarse de recursos de un huésped (y por extensión, del operador), la de funcionar con independencia del creador, y finalmente el espíritu lúdico. CREEPER y REAPER Ya para 1971 McIlroy había podido presentar variaciones de este singular torneo que podían correr en la Atlas Titan de la universidad de Cambridge, y las mainframes IBM System/360. Pero el advenimiento de las redes de datos, especialmente la ARPANET, produce una nueva conceptualización lúdicas basada en las viejas COREWARS. Se trataban ya de los primeros virus. Entre los más conocidos estaba el CREEPER de 1971, de Bob Thomas, que corría bajo el sistema TENEX de la reciente PDP-10 de la Digital Equipment. El CREEPER era un programa surrepticio sólo en su técnica de difusión pero no era malicioso; era fanfarrón e imprimía en bucle en las teletipos el mensaje "Soy el CREEPER, ATRAPAME SI PUEDES". Ray Thomlinson modificó a CREEPER para que no sólo "viajara" a través de las redes de datos gracias a las facilidades de scripting que tenía el TENEX, y además para que se "autoreplicara" y enviase copias de si mismo. Esta es la versión que podríamos ya describir como GUSANO REPLICANTE. Para no causar graves incordios, creó al REAPER, otro gusano encargado de buscar y eliminar el al CREEPER (con lo que podríamos decir que era el primer virus-antivirus, o sobre el modelo de antígeno). GUSANO DE MORRIS Este es conocido como "el primer virus de Internet", el "Gran Gusano" o el "gusano RTM". Fue desarrollado un 17 de octubre pero de 1988 por "RTM" Robert Tappan Morris (si, ¡el Hijo del Robert Morris (padre), el del DARWIN!). Funcionaba en las computadoras mainframe PDP y VAX que corrían UNIX. Usaba exploits de seguridad sobre los programas SENDMAIL y FINGER, sobre los servicios de LOGIN sin contraseña, o por ejecuciones de shell remoto para replicarse. Si bien analizaba sus nuevos anfirtriones en busca de infecciones previas "para no pisarse la manguera entre bomberos", cometió errores de programación que lo hacían más infeccioso de lo deseado, especialmente porque temió el uso de programas tipo REAPER que lo cazaran... Terminó haciendo que su gusano RTM fuese extremadamente infeccioso y poco subrepticio. Las cargas en el sistema y las redes obligaron a "apagar internet" el 2 de noviembre de 1988. Se dice que Morris (h) intentó obfuscar su gusano propagándolo en el MIT en lugar de hacerlo desde Cornell, su alma mater. Esto le valió el costo de su condena, ya que agregaba la humana condición de "culo sucio". Aunque lo cierto es que terminó avisando - de forma anónima - y a la gente de Hardvard. Fue descubierto por particularidades en el código del gusano. Morris adujo en el juicio que quería demostrar lo inadecuado de las medidas de seguridad actuales en las redes de computadoras que podían provocarse explotando defectos que EL habia descubierto. Pero tenía poco sentido que lo hubiese hecho desde sistemas ajenos al suyo, si eso era realmente el caso. Fue condenado a 3 años de prisión y se convirtió en el primer convicto por abuso de computadoras.