Posted inSoftware

Shellshock: un bug en Bash tan grande como Heartbleed

Shellshock es una vulnerabilidad que se ha descubierto en los sistemas derivados de Unix, lo que incluye a OS X y Linux. Es parecida a Heartbleed, la vulnerabilidad de Open/SSL que nos aterró a todos hace unos meses y que a día de hoy, sigue sin haber sido parcheada en miles de sistemas. Sin embargo, según algunos expertos, Shellshock puede ser mucho más peligroso y lo peor de todo, existe desde hace dos décadas.

"Este problema es especialmente peligroso, ya que hay múltiples formas de que Bash sea llamada por una aplicación" - Consultoría de seguridad de Red Hat.</q class=alignleft>

Esta vulnerabilidad de seguridad en la GNU Bourne Again Shell (Bash, la shell usada por defecto en multitud de distribuciones Linux y sistemas Unix, podría dejar a dichos sistemas en peligro bajo ciertos determinados tipos de ataques. Ha sido bautizada con el nombre de Shellshock por Robert Graham, un investigador de seguridad, y parece que ha calado hondo, pero el nombre oficial de este Bug es "CVE-2014-6271: remote code execution through bash (ejecución de código remotamente mediante Bash)".

Este error, descubierto por Stephane Schazelas el miércoles 24 de septiembre del 2014, está relacionado con la forma en la que Bash procesa las variables de entorno que le son pasadas del sistema operativo o por un programa que llame a un script basado en Bash. Si Bash ha sido configurada como la shell por defecto del sistema, puede ser usada por atacantes contra servidores vía peticiones web, sesiones telnet o por cualquier otro programa que use Bash para ejecutar scripts.

Los peligros de Shellshock

Esta seria vulnerabilidad permite que un servidor al que se accede remotamente pueda ser controlado mediante un simple script, saltándose toda la seguridad. En el siguiente enlace se muestran las versiones de Bash que pueden verse afectadas. Además, podemos ver las razones por las que se ha calificado a esta falla en la seguridad con una peligrosidad de 10 sobre 10 (CVSS Severity 10/10).

Lo más importante que debéis saber es que este fallo deja a merced de ataques remotos los sistemas que no hayan sido parcheados. Bash es normalmente usada por servidores web, así que en teoría puede usarse para tomar el control completo de páginas que usamos día tras día. Los dispositivos que estén conectados a Internet como las cámaras también pueden ser vulnerables, pero lo peor de todo sería que un atacante usara esta vulnerabilidad para sustraer información personal de tu máquina.

La razón principal de que se esté comparando a Shellshock con Heartbleed es por que la cantidad de dispositivos afectados es inmensa. Bash está dentro de tantos sistemas y lleva desde tanto tiempo, que la vulnerabilidad en la seguridad que provoca Shellshock posiblemente jamás pueda ser completamente erradicada. Este es un ejemplo de software vulnerable que ha sido propagado en el mundo tecnológico durante años y años.

¿Está mi sistema afectado?

shockshell

Para probar si nuestro sistema ha sido afectado por Shellshock, seguiremos los pasos que nos han mostrado nuestros compañeros de alt1040. Lo único que haremos será escribir el siguiente comando en la terminal:

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


Si el sistema es vulnerable, bash nos devolverá lo siguiente:

vulnerable
this is a test


Y al contrario, un sistema no afectado (o parcheado) nos devolverá:

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


Si estáis afectados sabed que los parches están llegando. De todas formas os dejo enlazada una guía para Mac Os X en la que se detallan los pasos para actualizar la shell Bash y parchearla.

Posted inSeguridad, Tecnología

Shellshock: numerosos dispositivos Unix en peligro

Shellshock es una vulnerabilidad de los intérpretes de comandos Bash. Es una vulnerabilidad presente desde hace muchos años, pero ha sido descubierta hoy y afecta a millones de dispositivos Linux, Unix, Mac etc.

Bash (Bourne again shell), es una shell de UNIX, la cual es una de las herramientas más usadas e instaladas en los sistemas Unix, incluyendo Linux y Mac, en todo mundo. Desde su creación hace más de 30 años, Bash ha evolucionado de ser un simple intérprete de comandos a tener usos muy potentes y variopintos.

En los sistemas Unix, las variables de entorno proveen el acceso a ciertos tipos de comportamiento del software instalado en el sistema. Suelen ser un nombre de variable con un valor asignado. Es común que programas puedan ejecutar un intérprete de comandos bash en segundo plano, o que el intérprete esté disponible en el acceso remoto de la máquina vía ssh por ejemplo.

La vulnerabilidad es simple, pero terroríficaGracias a la vulnerabilidad Shellshock se pueden crear variables de entorno con contenido especialmente ideado antes de que se invoque la shell. Estas variables pueden contener código, que sería ejecutado al comenzar a invocar la shell. El nombre de las variables no importa, son contenedores de información, en este caso, código malicioso.

Como los lenguajes de programación, Bash, pese a ser un intérprete de comandos, tiene funciones implementadas y es posible insertar dichas funciones en las variables de entorno. La vulnerabilidad Shellshock llega cuando se añade código extra al final de las definiciones dentro de la variable de entorno, algo como el ejemplo que propone Redhat:

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

Red Hat ya ha parcheado la vulnerabilidad Shellshock. Si tu intérprete Bash está parcheada deberías ver el siguiente mensaje:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' this is a test

Red Hat no cree que el parche afecte la retro-compatibilidad de los millones de scripts en bash que pueda haber en el mundo. Pero, por supuesto, frenará la inyección de código que intenten crear variables de entorno como he descrito arriba.

Los parches están llegando, pero habrá miles de dispositivos que nunca se parchearán

En algunas distros Linux han comenzado a llegar los parches que subsanan la incidencia, los usuarios de OS X deberán esperar. Shellshock es una vulnerabilidad terrible, sobre todo por los millones de dispositivos que están con la versión de Bash vulnerable y que nunca se actualizarán ni parchearán y que pueden contener información sensible o depender de ello.

Hay cientos de ejemplos: NAS, Routers, Firewalls... incluso todos los dispositivos iOS con Jailbreak. Miles de dispositivos sin pantalla de los que nadie se suele acordar y que nos podrán dar un buen disgusto en el futuro de no solventar dicha vulnerabilidad. No hay que ser alarmista, el agujero de seguridad está muy extendido, pero las posibilidades de que nos generen un ataque por esta vulnerabilidad son escasas. No obstante os recomiendo parchear cuanto antes.