Buscar

Linux: Vulnerabilidad GHOST

Se ha detectado una vulnerabilidad importante en la librería GLIBC sobre sistemas Linux: (CVE-2015-0235)

En el siguiente enlace podemos encontrar información detallada sobre el problema:


Tal y como podemos leer en el artículo anterior, esta vulnerabilidad es de gran importancia y afecta a múltiples servicios.

La mayoría de distribuciones de Linux, ya han liberado parche para corregir la vulnerabilidad.

Veamos un pequeño FAQ del problema:

1) ¿Qué permite explotar la vulnerabilidad?

Ejecución remota de código arbitrario sobre cualquier servicio que utilice la librería GLIBC y utilice las funciones: gethostbyname() y gethostbyname2(). 

Es por este motivo que la vulnerabilidad se llama GHOST.

Ya se han realizado pruebas de concepto donde se puede explotar la vulnerabilidad de forma remota enviando un correo electrónico a un servicio de correo que utilice la librería GLIBC como Exim.

2) ¿Qué es la librería GLIBC?

GLIBC significa "GNU C Library", es una librería de C muy extendida y utilizada por muchos servicios.

3) ¿Qué servicios utilizan la librería GLIB?

Sobre nuestro servidor Linux:

[root@LINUX1 /]# lsof | grep libc | awk '{print $1}' | sort | uniq
abrtd
abrt-dump
acpid
atd
auditd
automount
awk
bash
certmonge
crond
dbus-daem
grep
hald
hald-addo
hald-runn
init
irqbalanc
lsof
mingetty
mysqld
mysqld_sa
ntpd
pdns_serv
rpcbind
rsyslogd
sort
sshd
udevd
uniq
vmtoolsd

4) ¿Qué versión de GLIBC tenemos instalada en un sistema RedHat/CentOS?

[root@LINUX1 /]# rpm -qa glibc
glibc-2.12-1.149.el6_6.5.x86_64

5) ¿Qué versiones son vulnerables?

Cualquier versión entre 2.17 a 2.2 que no esté parcheada.

Versiones superiores no están afectadas.

Las distribuciones: RHEL 5,6,7 incluyen GLIBC dentro de este rango de versiones, por lo tanto son vulnerables si no parcheamos.

6) ¿Cómo puedo saber si mi sistema es vulnerable?

Existen muchos códigos fuente en "C" de ejemplo para verificar si nuestro sistema es vulnerable.

Bastará con descargar el código fuente en "C", compilarlo con el comando gcc y ejecutarlo.

Ejemplo:

wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
 
gcc GHOST.c -o GHOST
 
./GHOST

Responde vulnerable o not vulnerable.

Vista de ejecución:

Ejemplo de ejecución verificador vulnerabilidad GHOST

7) ¿Cómo parcheo?

Si disponemos de una distribución de Linux dentro del Life-Cycle y no hemos compilado la librería, será tan sencillo como actualizar utilizando el gestor de paquetes a nivel de repositorio.

Por ejemplo, sobre sistemas RHEL/CentOS:  yum update glibc


8) ¿Debo reiniciar después de parchear?

La forma más fácil de que la versión parcheada de GLIBC empiece a funcionar es reiniciar.

La alternativa es reiniciar todos los servicios que utilicen la librería.

9) Una vez parcheo: ¿Qué versiones de GLIBC debería ver sobre RHEL/CentOS?

La versión será la misma que teníamos, pero estará parcheada, así que cambiarán los últimos dígitos de la versión del paquete.

A partir de las siguientes versiones de paquete de GLIBC, ya son versiones parcheadas:
CentOS 6: glibc-2.12-1.149.el6_6.5
CentOS 7: glibc-2.17-55.el7_0.5
RHEL 5: glibc-2.5-123.el5_11.1
RHEL 6: glibc-2.12-1.149.el6_6.5
RHEL 7: glibc-2.17-55.el7_0.5

Si analizamos el changelog del paquete de glib que hemos instalado, veremos la corrección de la vulnerabilidad:
[root@LINUX1 test]# rpm -q --changelog glibc | grep CVE-2015-0235
- Fix parsing of numeric hosts in gethostbyname_r (CVE-2015-0235, #1183532).
- Fix parsing of numeric hosts in gethostbyname_r (CVE-2015-0235, #1183532).

No hay comentarios:

Publicar un comentario