inicio

Sep 25, 2014
|

Descubierta una vulnerabilidad crítica en Bash, comprueba si estás afectado.

Después de los problemas de seguridad generados a raíz de la vulnerabilidad con OpenSSL, lo que motivóque muchos administradores debieran parchear sus servidores rápidamente, además de renovar los certificados SSL, en el día de ayer se dio a conocer una vulnerabilidad que afecta Bash (Bourne again shell).

Como todos sabéis se trata del intérprete de comandos por defecto que utilizamos en la mayoría de distribuciones GNU/Linux, además de en otros sistemas Unix, por lo que dicha vulnerabilidad afecta a una gran cantidad de equipos de Internet.

Sistema afectado por shellshock

 

¿En qué consiste?

El agujero de seguridad detectado por Stephane Schazelas, permite la creación de variables de entorno con valores diseñados para el propósito que el autor desee, antes de realizar la llamada a la shell mediante bash.  Como informan a través del blog de seguridad de Red Hat, lo habitual el uso que podría hacerse de la vulnerabilidad  sería en Servidores Apache mediante la ejecución de scripts CGI o en clientes DHCP que invocan un shell para configurar el sistema, etc.

 

¿A qué sistemas operativos o distribuciones afecta?

La vulnerabilidad afecta a las versiones que van desde la 1.14 a la 4.3 de GNU Bash, por lo que lo habitual es que esté instalado en:

  • Red Hat Enterprise Linux (versiones 4 a 7)
  • Fedora
  • CentOS desde las versiones 5 a la 7.
  • Ubuntu desde la 10.04 LTS hasta la actual 14.04 LTS.
  • Debian.
  • Resto de sistemas UNIX (Solaris, BSD,…)

 

¿Cómo compruebo si estoy afectado?

Debemos tener en cuenta que si únicamente utilizas una distribución de escritorio, y no los usas como servidor web, considero que pese a que tu sistema esté afectado por esta vulnerabilidad, el problema no es tan crítico, aunque por supuesto recomiendo actualizar.

La forma de comprobar si dicho sistema está protegido es bastante simple. Para ello a través de la línea de comandos será necesario ejecutar la siguiente instrucción:

env x='() { :;}; echo ¿Estoy afectado?' bash -c "echo Sí, debes actualizar"

 

Si el sistema está afectado nos aparecerá:

env x='() { :;}; echo ¿Estoy afectado?' bash -c "echo Sí, debes actualizar"
¿Estoy afectado?
Sí, debes actualizar

En el caso que no lo esté obtendremos:

bash: aviso: x: ignoring function definition attempt
bash: error al importar la definición de la función para `x'
Sí, debes actualizar

 

 

¿Cómo actualizo mi sistema?

Parece ser que las diferentes actualizaciones que inicialmente lanzaron a lo largo del día de hoy eran parches parciales, aunque finalmente todas las distribuciones ya han puesto a nuestra disposición el correspondiente paquete final para ello. Simplemente será necesario actualizar el sistema con un «sudo apt-get update && sudo apt-get upgrade» para Ubuntu o Debian, o bien «yum update» para CentOS.

Concretamente he realizado la actualización en dos servidores, uno con CentOS 6 y otro con Ubuntu Server 14.04 LTS, además de en mi pc con Ubuntu Gnome 14.04 LTS. El resultado ha sido que para los servidores ya parece que se ha parcheado completamente, aunque no y también para la versión de escritorio.


Para comprobar si la actualización que hemos instalado es la completa, debemos usar lo siguiente:

env X='() { (a)=>' sh -c "echo ¿sigo siendo vulnerable?"; bash -c "echo Sí, todavía lo eres"


Si no estamos afectados, tras instalar todos los updates veremos:

root@server:~# env X='() { (a)=>' sh -c "echo ¿sigo siendo vulnerable?"; bash -c "echo Sí, todavía lo eres"
sh: X: línea 0: error sintáctico cerca del elemento inesperado `='
sh: X: línea 0: `X () { (a)=>'
sh: error al importar la definición de la función para `X'
¿sigo siendo vulnerable?
Sí, todavía lo eres


En el caso de tener la actualización parcial se verá:

env X='() { (a)=>' sh -c "echo ¿sigo siendo vulnerable?"; bash -c "echo Sí, todavía lo eres"
¿sigo siendo vulnerable?
Sí, todavía lo eres  

 

Reflexión

He de decir que me parece increíble la rapidez de respuesta que han tenido  para dar solución al problema, tanto desde las diferentes distribuciones como desde los propios desarrolladores, al igual que ocurrió con el ya mencionado OpenSSL.

Por otra parte, lamentablemente no se conoce la magnitud de este agujero, ya que ha estado ahí desde hace varios años, y por lo tanto existe la posibilidad de que haya sido explotado con no muy buenas intenciones.

The following two tabs change content below.
Fundador y administrador del blog. Gran fan de todo lo relacionado con la tecnología y de GNU/Linux en particular.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies