Cómo reparar y proteger un servidor Linux contra la vulnerabilidad del fantasma Glibc # CVE-2015-0235

Se ha encontrado un grave problema de seguridad en la biblioteca de C de GNU (Glibc) llamado a fantasma.

¿Cómo puedo arreglar la vulnerabilidad al fantasma y proteger mi servidor Linux contra el ataque?

¿Cómo puedo verificar que mi servidor se ha protegido contra la vulnerabilidad del fantasma Glibc ?

1_reparar_servidor_linux.jpg

 

¿Cuál es el error de programación de seguridad del "FANTASMA"?

Desde el bugzilla RHEL:

Un desbordamiento de búfer basada en heap ha sido encontrado en nss_hostname_dígitos_dots(), que es utilizado por la llamada de función glibc gethostbyname() y gethostbyname2(). Un atacante remoto podría utilizar esta fallo para ejecutar código arbitrario con los permisos del usuario ejecutando la aplicación.

Una lista de correo de entrada con más detalles, incluyendo un análisis en profundidad la vemos aquí.

 

¿Qué versión de la biblioteca (Glibc) C utiliza mi sistema Linux?

La forma más fácil de comprobar el número de versión es ejecutar el siguiente comando:

ldd --version

 

Salidas de la muestra de RHEL/CentOS Linux v6.6:
ldd (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Salidas de la muestra de Ubuntu Linux 12.04.5 TTE:
ldd (Ubuntu EGLIBC 2.15-0ubuntu10.9) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Salidas de la muestra de Debian Linux v7.8:
ldd (Debian EGLIBC 2.13-38+deb7u6) 2.13
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

 

Una lista de las distros de Linux

RHEL (Red Hat Enterprise Linux) versión 5.x, 6.x y 7.x

CentOS Linux versión 5.x, 6.x y 7.x Linux Ubuntu versión 10,04 , 12,04 LTS versión Debian Linux 7.x

Linux Mint Fedora Linux 13.0 versión 19 o más SUSE Linux Enterprise 11 y más (también OpenSuse Linux 11 o versiones anteriores).

SUSE Linux Enterprise Software Development Kit 11 SP3 SUSE

Linux Enterprise Server 11 SP3 para VMware SUSE

Linux Enterprise Server 11 SP3 SUSE

Linux Enterprise Server 11 SP2 LTSS SUSE

Linux Enterprise Server 11 SP1 LTSS SUSE

Linux Enterprise Server 10 SP4 LTSS SUSE

Linux Enterprise Desktop 11 SP3

Arch Linux glibc versión <= 2,18 -1

 

Control de la vulnerabilidad del FANTASMA

Puede probar o reproducir el error de programación usando el código de C siguiente:
 2_reparar_servidor_linux.jpg

 

retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);

 

 

Compilar y ejecutar lo siguiente:
$ gcc ghosttest.c -o ghosttest
$ ./ghosttest

 

¿Cómo lista todos los paquetes/aplicaciones vulnerables depende de glibc?

Escriba el siguiente comando lsof:

lsof | grep libc | awk '{print $1}' | sort | uniq

 

Salidas de la muestra de mi Debian Linux v7.x nas:

 

Fije la vulnerabilidad del FANTASMA en CentOS/RHEL/Fedora/Scientific Linux
 3_reparar_servidor_linux.jpg

 

Escriba el siguiente comando yum como usuario root:

sudo yum clean all

sudo yum update

 

Por último, reinicie RHEL/SL/Fedora/CentOS Linux server, escriba el siguiente comando:
sudo reboot

4_reparar_servidor_linux.jpg

 

 

Arreglar la vulnerabilidad fantasma en un Ubuntu Linux

Escriba el siguiente comando apt-get como usuario root:
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
## only run dist-upgrade on a Ubuntu if you want to upgrade kernel too
##sudo apt-get dist-upgrade

 

Por último, reiniciar el servidor Linux Ubuntu escribiendo el comando siguiente:
sudo reboot

5_reparar_servidor_linux.jpg

 

 

Fijar la vulnerabilidad fantasma en un Linux Debian:
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
##No need to do dist-upgrade (see man page: man apt-get)
##sudo apt-get dist-upgrade

 

Por último, reiniciar el servidor Linux Debian escribiendo el comando siguiente:
sudo reboot

Fijar la vulnerabilidad fantasma en un SUSE Linux Enterprise:

Para instalar esta actualización de seguridad uso SUSE YaST online update. O utilizar los siguientes comandos como por su versión:

SUSE Linux Enterprise Software Development Kit 11 SP3

zypper in -t patch sdksp3-glibc-10206

SUSE Linux Enterprise Server 11 SP3 for VMware

zypper in -t patch slessp3-glibc-10206

SUSE Linux Enterprise Server 11 SP3

zypper in -t patch slessp3-glibc-10206

SUSE Linux Enterprise Server 11 SP2 LTSS

zypper in -t patch slessp2-glibc-10204

SUSE Linux Enterprise Server 11 SP1 LTSS

zypper in -t patch slessp1-glibc-10202

SUSE Linux Enterprise Desktop 11 SP3

zypper in -t patch sledsp3-glibc-10206

 

Finalmente ejecutar para todas las versiones de linux SUSE para actualizar la fecha:
zypper patch

¿Cómo puedo verificar que mi sistema Linux ya no es vulnerable después del reinicio?

Método #1: La forma más fácil de comprobar la vulnerabilidad es ejecutar el siguiente comando para verificar que está ejecutando una versión actualizada de Glibc:

$ ldd --version

Método 2: ejecutar las instrucciones que se indican en la sección anterior llamada GHOST vulnerability check (método genérico para todos los sistemas basados en Linux) .ing una versión actualizada de la Glibc:

Método #3: Si eres suscriptor RHN ver Red Hat Access Lab: herramienta de fantasma (sólo para sistemas de RHEL/CentOS/SL - link de descarga):
 7_reparar_servidor_linux.jpg

 

 

 

Salidas de la muestra de servidor remendado RHEL v6.8:
bash rhel-GHOST-test.sh
Installed glibc version(s)
- glibc-2.12-1.149.el6_6.5.x86_64: not vulnerable
- glibc-2.12-1.149.el6_6.5.i686: not vulnerable

© 2016 SISTIC – SOS Informatica Soluciones TIC Salamanca. Todos los derechos reservados