Todas las ramas del sistema Unix BSD se encuentran afectadas por un
agujero de seguridad que ha estado presente en su código desde hace un
cuarto de siglo sin haber sido detectado y utilizado… o al menos esto
es lo que se piensa.
Todo empezó hace unos pocos días cuando Marc Balmer, desarrollador
del proyecto OpenBSD, recibió un mensaje de correo electrónico de un
usuario que se quejaba de un problema con Samba cuando trataba de
acceder a los ficheros almacenados en un servidor Unix desde MS-DOS.
Samba es la implementación del protocolo SMB para sistemas Unix (Linux,
Mac OS X, Solaris,…) que permite a éste entenderse con máquinas Windows
e intercambiar recursos cómo ficheros o utilizar impresoras. La tarea
de Marc en OpenBSD consiste inicialmente en ocuparse de ciertos
aspectos de la estabilidad del sistema cuando ejecuta cambios entre las
aplicaciones que está ejecutando, pero al ser un usuario de Samba él
mismo se interesó por el tema y realizó las pruebas correspondientes.
Lo que descubrió a continuación ha dejado perpleja a la comunidad de
desarrolladores de software.
Puesto en contacto con los desarrolladores de Samba, estos
explicaron a Balmer que el código fuente utiliza una función común a
todas las variantes de la rama BSD de Unix para acceder a los ficheros
del servidor. Un bug presente en éste código sería el causante del
fallo experimentado por el usuario.
Investigando un poco más, el programador llegó a la conclusión que
el fallo había estado presente en el código desde la concepción de éste
y su inclusión en la versión 4.2 de BSD en el lejano año de 1983
(lejano en términos informáticos, claro). Los detalles técnicos del
problema son explicados por Balmer en su weblog[1].
En todo éste “curioso” asunto solamente queda un tema por resolver:
¿realmente el bug ha estado todo ese tiempo ahí sin ser descubierto y
utilizado, o bien ha sido explotado durante algún tiempo (incluso años)
por grupos de hackers/crackers sin ser descubiertos? Pese a que el bug
haya podido permanecer oculto, una explotación masiva de estos agujeros
de seguridad es detectable aunque sus causas puedan no ser
establecidas, así es que si la comunidad hacker lo hubiera detectado
con anterioridad, sin lugar a dudas hubiera salido a la luz de alguna
manera. El peor temor es que lo haya aprovechado algún cracker (hacker
que asalta sistemas informáticos solamente por interés propio, sin
observar las reglas éticas y morales del hacking) para colarse
esporádicamente en algún sistema comprometedor cómo computadoras
gubernamentales o grandes servidores de Internet. Es una incógnita que
probablemente estará ahí durante mucho tiempo.
Tampoco hay pruebas fehacientes de que éste bug pueda ser explotable
para un ciberataque. No todos los problemas del software conllevan un
problema de seguridad.
La forma de corregir éste fallo es, en palabras de Balmer, trivial,
y expone la solución al final de la entrada correspondiente de su
weblog[1], la misma en la que explica la historia del descubrimiento
del ya famoso bug.
http://www.vnode.ch/fixing_seekdir