Los viejos errores son los mejores errores

Durante el fin de semana, David Maynor publicó una nota en su blog que afirmó que el llamado servidor Telnet en el sistema operativo Sun Solaris 10/11 no requiere ninguna habilidad, ningún conocimiento de exploits, y puede ser programado para ataques masivos.





Telnet es un programa de la década de 1970 que permite a las personas iniciar sesión de forma remota en una computadora. Por lo general, está deshabilitado porque los nombres de usuario y las contraseñas se envían sin utilizar encriptación (que era ilegal exportar desde los Estados Unidos en ese entonces). Pero aunque el programa se ha abandonado en gran medida, Sun todavía envía sus sistemas operativos Solaris 10 con el servidor Telnet y los programas cliente.

En cualquier caso, el servidor Telnet toma el nombre de usuario proporcionado por la persona que intenta iniciar sesión y proporciona esta información a lo que se conoce como programa de inicio de sesión. El trabajo del programa de inicio de sesión es solicitar el nombre de usuario y la contraseña del usuario. Normalmente hace esto, y si la contraseña es correcta, el usuario puede iniciar sesión.

Lo que descubrió Maynor es que un atacante puede intentar iniciar sesión con un nombre de usuario como -fbin. El -fbin se pasa al programa de inicio de sesión, que malinterpreta el -f como un comando del sistema operativo para iniciar la sesión del usuario en la cuenta especificada sin pedir una contraseña. Entonces, el exploit se ve así:



% telnet -l -fbin 192.168.1.110
Intentando 192.168.1.110…
Conectado a 192.168.1.110.
El carácter de escape es '^]'.
Último inicio de sesión: dom 11 de febrero 02:02:23 desde 192.168.1.102
sun Microsystems Inc. SunOS 5.10 Genérico Enero de 2005
$ id
uid = 2 (bin) gid = 2 (bin)

(Puedes leer todos los detalles sangrientos aquí )

Lo que es realmente sorprendente es que esta vulnerabilidad se publicó por primera vez informó por el Equipo de Respuesta a Emergencias Informáticas en 1996. Aparentemente, el error fue reintroducido por algún programador que no estaba familiarizado con la historia. Me han dicho que desde entonces se ha solucionado en Solaris 11.



Entonces, ¿qué pasa aquí? Muchas cosas.

  1. Cuando los ingenieros de Sun arreglaron esto en Solaris 11, también deberían haberlo arreglado en Solaris 10.
  2. En este punto, Sun ni siquiera debería enviar un servidor Telnet.
  3. Y si van a enviar un servidor, realmente deberían validarlo. Aunque no tengo forma de saber qué sucedió en Sun, supongo que no se molestaron en probar el servidor porque está deshabilitado de forma predeterminada.

Al hablar con un consultor de seguridad en la RSA Security Trade Show la semana pasada, me dijeron que los errores de seguridad corregidos en los servidores de producción de los sistemas bancarios se reintroducen con frecuencia cuando se envían nuevas versiones. Esta es una buena noticia para los consultores de seguridad, por supuesto. Pero también explica por qué al crimen organizado le resulta tan fácil ganar dinero rápidamente en Internet.

esconder