LINUX

Cómo parchear el error Shellshock Bash en RedHat / CentOS, Fedora y Ubuntu

Stephane Schazelas ha descubierto recientemente un error de seguridad muy grave en GNU Bourne Again Shell (Bash) que permite a los atacantes explotar una máquina ejecutando código remoto. Shellshock (el nombre de este error de seguridad) puede causar serios problemas a su sistema porque hace posible engañar a bash para que ejecute un programa que se suponía que no debía hacerlo.

Según un aviso de seguridad de Red Hat, este problema es muy peligroso, ya que permite a los atacantes tomar el control de todos los dispositivos en red que ejecutan bash si logran aprovechar la vulnerabilidad. Dado que muchos servidores web confían en el shell bash para ejecutar scripts para realizar sus tareas, existe una probabilidad muy alta de que sean un objetivo para los atacantes que desean robar datos, derribar sitios o apoderarse de bases de datos.

¿Qué es un shell bash?

El shell Bash conocido como Bourne Again Shell fue inventado por Brian Fox con el propósito de reemplazar el Bourne Shell en sistemas Unix. Un shell de comandos se utiliza para ayudar al usuario o administrador de un sistema a ejecutar programas, automatizar tareas y escribir scripts. Algo muy bueno del shell Bash es el hecho de que puede escribir comandos de forma interactiva en él y esperar la salida. Por ejemplo, cuando escribe el comando ls en su terminal, enumerará todos sus archivos y carpetas dentro del directorio de trabajo actual.

Como muchos otros shells de Unix, Bash soporta tuberías, comodines de nombre de archivo, varibales, sustitución de comandos, itración y tiene una característica muy agradable llamada historia que realiza un seguimiento de los comandos que usa durante su trabajo con el shell.

¿Quién es vulnerable al error Shellshock?

Lamento decirlo, pero si su sistema utiliza el Intento shell es seguro que es vulnerable al error de seguridad Shellshock. También debo mencionar que un tipo llamado Robert Graham publicó una imagen en Twitter que muestra que su Mac OS X es vulnerable al error de seguridad Shellshock.

Después de algunas solicitudes hechas en comentarios por sus seguidores, más tarde respondió que tcsh, ksh, sh y zsh en Mac OS X son vulnerables al error de bash.

Cómo saber si su sistema es vulnerable al error Shellshock

No es difícil descubrir si su sistema es vulnerable a este grave error de seguridad que se aprovecha de su sistema y puede permitir que los atacantes exploten su máquina. Pero tampoco es fácil para principiantes, así que asegúrese de leer los siguientes pasos con atención.

1. Abra una terminal en su máquina. (CTRL + ALT + T) en Ubuntu.

2. Una vez abierta la terminal, copie y pegue las siguientes instrucciones. No necesita ser un superusuario para ejecutar las instrucciones, así que simplemente cópielas y péguelas.

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Si su sistema es vulnerable al error de seguridad Shellshock, verá la siguiente salida impresa en su pantalla después de ejecutar el comando anterior.

vulnerable
this is a test

De lo contrario, un sistema no afectado (o parcheado) imprimirá el siguiente resultado.

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

¿Cómo funciona el Shellshock?

El error de seguridad de Shellshock aprovecha el concepto de variable de entorno en Bash, una variable que se usa para pasar valores específicos a instancias invocadas de bash. Uno puede agregar fácilmente comandos arbitrarios en una versión actualizada de bash shell después de la variable de entorno y el sistema ejecutará estos comandos. Parece tan fácil. De hecho lo es. Según los investigadores de seguridad, esta vulnerabilidad no es compleja, sino que es muy fácil de explotar.

Los atacantes pueden ejecutar cualquier comando que deseen pasando sus comandos después de la descripción de las variables de entorno y tomar el control del sistema.

Actualizaciones

Aún no hay una actualización efectiva completa sobre este error grave en Bash, pero muchas distribuciones de Linux como Fedora, Ubuntu 10.04 LTS, 12.04 LTS y 14.04 LTS Debian han puesto a disposición una versión parcheada de Bash para que los usuarios la descarguen.

Con el fin de arregla la vulnerabilidad del shockshell en tu Ubuntu o una máquina Debian, necesita actualizar a la última versión a través de apt-get.

sudo apt-get update && sudo apt-get install --only-upgrade bash

Usuarios de CentOS, Red Hat y Fedora puede actualizar fácilmente a la última versión de bash usando el siguiente comando.

sudo yum update bash

Nota : Según redhat, la solución actual está incompleta pero insta a los usuarios a parchear el paquete más reciente con fecha del 28 de septiembre de 2014 a las 1:46 p. m.

Una vez que se actualice el shell bash en su sistema, asegúrese de verificar nuevamente la vulnerabilidad de su sistema ejecutando el comando en la sección anterior. No es necesario reiniciar después de la revisión, ya que los nuevos procesos usarán el nuevo código, pero si el sistema usa funciones de bash exportadas, se recomienda reiniciar los servicios afectados.

Encuentre qué proceso pids usa la función exportada anterior, luego use ps -axuf o pstree -p o systemctl status para encontrar el nombre del proceso. Luego puede reiniciar ese servicio en particular.

$ grep -l -z ‘[^)]= () {‘/ proc /[1-9]* / environment | cortar -d / -f3

Código obsoleto de bash escrito por Robert Graham es un poco interesante de leer.

Actualización de Redhat: con fecha del 29 de septiembre, corrección CVE-2014-7169

Redhat sugiere probar el siguiente comando para verificar el error de Shellshock

env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"

Si ve el resultado a continuación, está abierto al error shellshock

$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test

Si ve algo como a continuación, el código sigue siendo vulnerable a otro problema (CVE-2014-7169) que se encontró después de que se introdujo el error Shellshock

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash: error importing function definition for `BASH_FUNC_x()'
test

La salida a continuación muestra que todo está bien

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test

A continuación, compruebe si tiene el problema «CVE-2014-7169»

cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>' bash -c "echo date"; cat /tmp/echo

Tiene un problema si es como a continuación con la fecha de su sistema publicada

bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 11:49:58 GMT 2014

Estás bien con el problema «7169»

date
cat: /tmp/echo: No such file or directory

Nota : Si actualizó bash dos días antes, puede ser bueno actualizar nuevamente 🙂

Con fecha 01 de octubre de 2014 – Lanzamiento de Bash 4.2.051 que soluciona un problema de desbordamiento del búfer.

FYI: – Rob Fuller (mubix) inició pruebas de código de concepto que se puede utilizar para explotar Shellshock en Github y tiene exploits contra DHCP, SSH, OSX, SIP, Qmail, Pure-FTPd, OpenVPN y Oracle.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar