¿Qué sucede si en nuestra organización tenemos en producción un viejo servidor Red Hat sin soporte? Debido a que RHEL (Red Hat Enterprise Linux) es un producto comercial, es necesario contratar soporte oficial para disponer de actualizaciones. Pero, como muchos sabrán, CentOS es un clon a nivel binario de RHEL. Por lo tanto es posible instalar un paquete de CentOS en un servidor RHEL, siempre que coincidan las versiones.

Ayer se descubrió una grave vulnerabilidad en Bash que permite inyectar comandos en variables de entorno.

Se encontró una falla en la forma en que Bash evalúa ciertas variables de entorno especialmente diseñadas. Un atacante puede utilizar esta falla para evitar restricciones de entorno y lograr ejecutar comandos. Ciertos servicios y aplicaciones permiten que atacantes remotos sin autenticación provean variables de entorno, permitiendo que exploten esta vulnerabilidad.



Como sysadmin, cada vez que surgen este tipo de vulnerabilidades críticas que afectan a todos los sistemas GNU/Linux, se deben actualizar de urgencia todos los servidores de la organización. Ahora bien, ¿qué sucede si en nuestra organización tenemos en producción un viejo servidor Red Hat sin soporte? Debido a que RHEL (Red Hat Enterprise Linux) es un producto comercial, es necesario contratar soporte oficial para disponer de actualizaciones. Si no contamos con soporte, o ha finalizado el contrato, es imposible ejecutar el comando:

[root@grumpyold ~]# yum update
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Update Process
No Packages marked for Update

Simplemente no funciona, porque no se puede conectar a los mirrors.

Pero, como muchos sabrán, CentOS es (o al menos era, no sé qué será ahora que Red Hat lo ha adquirido) un clon a nivel binario de RHEL. Por lo tanto es posible instalar un paquete de CentOS en un servidor RHEL, siempre que coincidan las versiones.

Veamos un ejemplo. Para mitigar esta vulnerabilidad crítica es necesario actualizar el paquete bash en un servidor RHEL 5.5:

[root@grumpyold ~]# lsb_release -a
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Release:        5.5
Codename:       Tikanga

La versión de bash instalada actualmente es la 3.2 release 24.el5, la cual es vulnerable:

[root@grumpyold ~]# yum info bash
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Installed Packages
Name       : bash
Arch       : x86_64
Version    : 3.2
Release    : 24.el5
Size       : 5.1 M
Repo       : installed
Summary    : The GNU Bourne Again shell (bash) version 3.1.
URL        : http://www.gnu.org/software/bash
License    : GPLv2+
Description: The GNU Bourne Again shell (Bash) is a shell or command language
           : interpreter that is compatible with the Bourne shell (sh). Bash
           : incorporates useful features from the Korn shell (ksh) and the C shell
           : (csh). Most sh scripts can be run by bash without modification. This
           : package (bash) contains bash version 3.1, which improves POSIX
           : compliance over previous versions.

Como el ciclo de vida de soporte no ha finalizado (tanto para RHEL como para CentOS 5), seguramente ya se encuentre disponible una actualización de seguridad del paquete bash para resolver esta vulnerabilidad. Entonces es posible instalar la versión actualizada del paquete bash para CentOS 5.5 en nuestro servidor Red Hat Enterprise Linux 5.5 sin soporte.

Desde el sitio oficial de CentOS, seleccionar un mirror (mirrors.centos.org/download/mirrors/):

Por ejemplo, seleccionar el mirror de Facebook y entrar en la carpeta correspondiente a la versión "5":

Luego ingresar a "updates":

Seleccionar la arquitectura, por ejemplo "x86_64" si se trata de una instalación de 64 bit:

Luego entrar en la carpeta "RPMS":

Y finalmente localizar el paquete bash. Se observa que se trata de la versión 3.2.33 y la fecha de modificación del archivo es el 24 de septiembre de 2014, por lo tanto se trata del paquete recién actualizado para parchar la vulnerabilidad:

Copiar el link y descargar el paquete en el servidor Red Hat Enterprise Linux 5.5:

[root@grumpyold ~]# wget http://centos.mirror.facebook.net/5/updates/x86_64/RPMS/bash-3.2-33.el5.1.x86_64.rpm

Para poder instalar el paquete RPM proveniente del repositorio de CentOS, es necesario desactivar la verificación de firmas GPG utilizando la opción --nogpgcheck y utilizar el comando localinstall:

[root@grumpyold ~]# yum --nogpgcheck localinstall bash-3.2-33.el5.1.i386.rpm

Luego de instalar el paquete, tenemos disponible la nueva shell Bash (release 33.el5.1):

[root@grumpyold ~]# yum info bash
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Installed Packages
Name       : bash
Arch       : i386
Version    : 3.2
Release    : 33.el5.1
Size       : 5.0 M
Repo       : installed
Summary    : The GNU Bourne Again shell (bash) version 3.1.
URL        : http://www.gnu.org/software/bash
License    : GPLv2+
Description: The GNU Bourne Again shell (Bash) is a shell or command language
           : interpreter that is compatible with the Bourne shell (sh). Bash
           : incorporates useful features from the Korn shell (ksh) and the C shell
           : (csh). Most sh scripts can be run by bash without modification. This
           : package (bash) contains bash version 3.1, which improves POSIX
           : compliance over previous versions.

Eso es todo, hora seguir leyendo las actualizaciones de +Linuxito en Google Plus.


Tal vez pueda interesarte


Compartí este artículo