¿Qué es la vulnerabilidad bash CVE-2014-6271 (Shellshock) y cómo la soluciono?

Pregunta:

Recientemente, ha habido noticias sobre "CVE-2014-6271" (ver USN-2362-1 ), que es una vulnerabilidad en Bash. ¿Cómo sé si esto me afecta, cómo puedo solucionarlo y por qué debería importarme?

Esto está diseñado como una respuesta canónica para esta vulnerabilidad, debido a su alcance y gravedad.

Respuesta:

¿Qué es Bash?

Bash es el shell interactivo predeterminado en Ubuntu. Cuando interactúa con la terminal (ya sea a través del emulador de terminal, a través de un tty o ssh), generalmente está escribiendo comandos que bash leerá y ejecutará. Incluso si no usa la terminal en absoluto, todavía tiene Bash.

En Ubuntu, /bin/sh no es bash (es dash). Solo bash se ve afectado por esta vulnerabilidad.

¿Cómo me afecta el exploit?

Bash y el sistema operativo realizan un seguimiento de un conjunto de variables de entorno que describen el usuario que ha iniciado sesión actualmente, dónde buscar programas en el disco duro y otras funciones similares. Al crear una variable de entorno con una estructura específica, un atacante podría ejecutar código la próxima vez que se inicie Bash.

El atacante puede configurar esa variable de entorno de varias formas:

  • Conéctese de forma remota a un servicio como SSH con una configuración específica como git sobre ssh. Como advierte Mitre, el uso de la opción sshd ForceCommand es un vector de ataque. Las cuentas cuyo shell no es bash no se ven afectadas.
  • Engañándote para que establezcas la variable de entorno.
  • Hacer que otro programa establezca una variable de entorno para tener ese valor creado. Por ejemplo, puede tener un servidor web y un script que necesite establecer una variable de entorno con contenido de usuario específico. Incluso si ese script crea el suyo propio y no toca otras variables de entorno, es suficiente. Una sola variable de entorno con cualquier nombre y un valor creado es suficiente para que el exploit tenga éxito .
  • Otras formas que no he mencionado aquí.

Una vez que establezcan esta variable, la próxima vez que se abra bash por cualquier motivo, se ejecutará el código del atacante. Esto es especialmente temible con sudo -s , ya que genera a bash como superusuario (una regla de usuario administrativo que tiene control total sobre los datos y programas de su computadora). Incluso si solo inicia bash como usuario estándar, los archivos de ese usuario se pueden eliminar.

Es importante tener en cuenta que incluso si no usa bash usted mismo, muchos programas generarán bash por sí mismos como parte de su funcionamiento. Incluso en este caso, eres vulnerable. Sin embargo, Ubuntu /bin/sh no es bash, por lo que solo se ven afectados los programas que invocan explícitamente bash y no el shell de scripting predeterminado.

Según Mitre:

vectores que involucran la función ForceCommand en OpenSSH sshd, los módulos mod_cgi y mod_cgid en el servidor HTTP Apache, scripts ejecutados por clientes DHCP no especificados y otras situaciones en las que la configuración del entorno ocurre a través de un límite de privilegios desde la ejecución de Bash.

¿Soy vulnerable?

Use dpkg para verificar la versión de su paquete instalado:

dpkg -s bash | grep Version

Esto buscará información en su paquete bash y filtrará la salida para mostrarle solo la versión. Las versiones fijas son 4.3-7ubuntu1.4 , 4.2-2ubuntu2.5 y 4.1-2ubuntu3.4 .

Por ejemplo, veo:

wlan1-loopback% dpkg -s bash | grep Version
Version: 4.3-7ubuntu1.4

y puedo determinar que no soy vulnerable.

¿Cómo actualizo?

El administrador de actualizaciones estándar le ofrecerá esta actualización. Este es un excelente ejemplo de la importancia de las actualizaciones de seguridad, independientemente del sistema operativo que utilice o del buen mantenimiento que tenga.

El USN Bulletin afirma que se han lanzado nuevas versiones para Ubuntu 14.04 Trusty Tahr, 12.04 Precise Pangolin y 10.04 Lucid Lynx. Si no tiene una de estas versiones LTS, pero tiene una versión relativamente reciente, lo más probable es que pueda encontrar un paquete parcheado.

Primero, compruebe si

Si es vulnerable, primero debe obtener las listas de paquetes más recientes:

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

El primer comando se asegura de que tenga la lista de paquetes más reciente que incluye la versión fija, y el segundo comando instala la versión más nueva (fija) de bash.

Si bien el error solo parece entrar en juego cuando se genera bash, sigue siendo una buena idea reiniciar de inmediato si es posible.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım