viernes, 30 de junio de 2000

Diversas vulnerabilidades en la familia *BSD

Las últimas versiones de los kernel de diversos miembros de la familia
*BSD son vulnerables a varios ataques de denegación de servicio
(Denial of Service) y seguridad.
*BSD es una familia de kernel Unix "Open Source", formados
principalmente por "NetBSD", "FreeBSD" y "OpenBSD". Son, en cierta
medida, comparables al popular Linux, cada uno de ellos con sus
virtudes y defectos.

En las versiones recientes de varios kernel *BSD se han encontrado las
siguientes vulnerabilidades:

* Ataque de denegación de servicio a través de la red.

Un atacante malicioso puede enviar datagramas especialmente
formateados, que pueden causar corrupción de datos en el sistema y
"kernel panic".

* La versión Alpha de FreeBSD no dispone de los dispositivos
"/dev/random" y "/dev/urandom".

Estos dispositivos proporcionan valores aleatorios obtenidos a partir
de entropía recogida en el sistema (actividad de disco y memoria,
pulsación de teclas, interrupciones, movimiento del ratón, etc).
Dichos valores aleatorios de alta calidad son utilizados como fuentes
de datos, típicamente, en aplicaciones criptográficas.

El problema es que la versión Alpha no incorpora dichos dispositivos,
por lo que muchas aplicaciones con componente criptográfico (lo cual
incluye servicios como la protección SSL de los servidores web) o bien
no funcionarán, o utilizarán valores aleatorios de muy baja calidad
(lo que puede comprometer la seguridad de claves, certificados, etc).

Una vez que el usuario instale una versión kernel actualizada, se
recomienda regenerar todas aquellas claves y certificados que se
hubieran podido crear bajo el kernel antiguo.

* La implementación "libdes" de NetBSD genera clavea de muy baja
calidad si no existe el dispositivo "/dev/urandom".

Si el kernel NetBSD se compila sin la opción "pseudo-device rnd", no
existirán los dispositivos "/dev/random" ni "/dev/urandom", y la
librería "libdes" generará claves de baja calidad.

* Ataque de denegación de servicio a través de sockets.

Escribiendo un datos con un determinado tamaño, FreeBSD produce un
"kernel panic". NetBSD y OpenBSD no se "caen", pero el soporte de red
dejará de funcionar.

* Denegación de servicio a través del sistema IPC de semáforos.

El sistema IPC (Inter Process Communication) permite la
intercomunicación de procesos a través de recursos compartidos, como
memoria o semáforos. El ataque consiste en bloquear la tabla de
semáforos, de forma que los procesos que empleen semáforos se
paralizarán.
Toda la familia *BSD ha sido actualizada ya; los usuarios que utilicen
esos kernel en sus máquinas deben acudir al web correspondiente y
asegurarse de que cuentan con una versión kernel moderna. En algunos
casos también se publican "parches" (posibles ya que el kernel es
"open source"), para que los usuarios puedan proteger sus sistemas
sin necesidad de instalar un kernel nuevo, con los posibles problemas
de integración que ello pudiera provocar.

Más información:
OpenBSD
FreeBSD
NetBSD
Remote denial-of-service in IP stack
Parche para el ataque IP
IP options processing Denial of Service
FreeBSD Alpha Port Lack Of /dev/random and /dev/urandom vulnerability
Multiple Vendor *BSD Denial of Service Vulnerability
Multiple Vendor BSD Semaphore IPC Denial Of Service Vulnerability



Jesús Cea Avión
jcea@hispasec.com