02 noviembre 2013

25 años del gusano Morris.

Parece increíble que ya hayan pasado 25 años desde que Robert Tappan Morris creara el que se considera el primer gusano de Internet. Aunque más increíble es aún, estudiar su código y darse cuenta de lo poco que ha cambiado la arquitectura de los gusanos desde este primer diseño.

Las habilidades de Robert Tappan se comprenden sabiendo que es el hijo de Robert Morris, uno de los autores de UNIX y trabajador de la National Computer Security Center,  división de la NSA. 

El bicho explotaba vulnerabilidades en distintos servicios, como un fallo en el modo debug de sendmail, un buffer overflow en fingerd y una incorrecta configuración del rsh/rexec que permitía saltar entre equipos sin validación. Además de los clásicos usuarios y contraseñas débiles. 

Estos fallos son propios de sistemas Unix y VAX, que realmente son lo poco que había conectado a Internet en aquella época. En total, se calcula 6.000  de los 60.000 sistemas que formaban Internet se infectaron. Hoy en día ese mismo 10% de equipos supondría 400.000 sistemas solo en España.

El fallo de sendmail se explotaba siguiendo esta conversación.

Conversación sendmail vulnerable 5.59

El buffer overflow del fingerd tenía una shellcode que invocaba a execve("/bin/sh", 0,0)

payload del exploit de fingerd
Para explotar el servicio de rsh/rexec, tan solo tenía que verificar contra los sistemas que iba acumulando en su base de datos.

Para el ataque de usuarios y contraseñas usaba 3 algoritmos distintos: 
  1. El primero con pruebas obvias: contraseña = usuario, contraseña = usuariousuario y contraseña = emanresu
  2. Usando un diccionario propio del sistema (/usr/dict/words)
  3. Usando un diccionario hardcodeado en el código.
Fragmento de contraseñas que probaba el gusano Morris

El proceso se ocultaba matando al padre que lo había creado y cifrando y borrando el fichero del sistema. 

Para propagarse insertaba nuevos hosts basados en las conexiones establecidas (sacadas de un netstat), la lectura de ficheros como /etc/hosts.equiv y otros algoritmos

Desgraciadamente, el método de propagación era excesivamente agresivo y el gusano causó la degradación y caída de servidores. Lo que este primer juego acabo considerándose un ataque contra el gobierno de los Estados Unidos (casi nada).

A Morris la broma le costó tres años de libertad condicional, 400 horas de trabajo social y una multa de 10.050 dólares. No mucho, teniendo en cuenta el impacto real que tuvo el malware en los servidores. Curiosamente, esta sentencia fue la primera en considerar el término "Internet".

Uno de los efectos inmediatos de la infección, fue la creación por parte de DARPA (Defense Advanced Research Projects Agency) del CERT/CC para dar respuesta a otros problemas similares. 

Feliz aniversario. Cuanto hemos aprendido y que poco hemos avanzado.

Referencias.

4 comments :

Angelhc dijo...

Pues eso, genial y hace 25 años.
Felicidades Mr.Morris.

Fran dijo...

UNa pena que sea en los madriles y no en Sevilla, sino iría de cabeza :)

Miguel Brante dijo...

Una pena que sea en España y no en Chile, sin embargo Lorenzo fue un
gusto tenerte por acá en el 8.8, se agradecería montón nos puedas apoyar con promover a que estos eventos se dejen caer más seguido por estos lados, saludos!

drobot dijo...

Para ser el primero no estuvo nada mal, eso sí fue marcar tendencia.