Historia Unix - Antiguos programas y el primer malware en forma de gusano

Escrito por Adrian Ali el 24 de enero de 2023, usando OpenBSD Release 7.2 contacto: adrianali arroba fortix.com.ar

Introducción

Con este articulo doy inicio a una serie de post relacionados a la historia de los sistemas Unix y todo el folklore que existe alrededor. No son artículos técnicos, ni necesariamente verdaderos, son solo historias contadas por gente como nosotros, historias que sucedieron en antiguos centros de computos, muy probablemente de noche, con un sysadmin agotado tras un día de trabajo muy exigente, tratando de hacer un restore a un backup que es de vida o muerte y que por alguna causa se demora eternamente, quizás mirando fijo a ese "login:" que nos lleva entre sueños a la reflexión, quizás ahí nacen estas historias.

La historia

Como se conecta el primer malware con uno de los primeros programas en correr en Unix?

Uso asiduamente la utilidad "bc" en la linea de comandos, para realizar de forma rápida cálculos o conversiones de números hexadecimales a decimales, binarios, etc. La cuestión que aprendiendo sobre la utilidad "bc" (en mi desktop OpenBSD) leyendo el man, veo:

bc is actually a preprocessor for dc(1), which it invokes automatically.

Me da curiosidad sobre "dc" y pido el man y leo:

AUTHORS The original version of the dc command was written by Robert Morris and Lorinda Cherry.

Me sonaba el apellido "Morris" pero no con algo relacionado a Unix y entonces me acorde de:

El gusano Morris

https://es.wikipedia.org/wiki/Gusano_Morris

pero resulta que si había relación porque el creador del gusano es:

Robert Tappan Morris

https://es.wikipedia.org/wiki/Robert_Tappan_Morris

que es hijo de:

Robert Morris

https://es.wikipedia.org/wiki/Robert_Morris_(cript%C3%B3grafo)

el creador de "dc" como dice la pagina del man, él trabajo en los laboratorios Bell y fue creador de la utilidad Unix:

dc

https://en.wikipedia.org/wiki/Dc_(computer_program)

este programa "dc" es el que realiza los cálculos para "bc", esto siempre fue así en los Unix y hoy en día en los BSDs. No así en los Linux que usan las utilidades GNU, como "bc" fue estandarizado por POSIX, GNU reescribió "bc" para que sea autónomo y no use "dc".
Porque es importante "dc", mas allá de tener una utilidad para programación de scripts y la realización de cálculos, "dc" tiene un merito histórico, es la utilidad o programa más antiguo que sobrevive en Unix, incluso mas antiguo que el lenguaje C, palabras de Ken Thompson:

dc is the oldest surviving Unix language program. When its home Bell Labs received a PDP-11, dc written in B was the first language to run on the new computer, even before an assembler.

quien iba a decirlo, el padre creo la primera utilidad Unix y el hijo el primer malware! :D