Te damos la bienvenida a la comunidad de T!Estás a un paso de acceder al mejor contenido, creado por personas como vos.

O iniciá sesión con
¿No tenés una cuenta?


Ahora mismo, los profesionales de seguridad están luchando para parchear un fallo de seguridad que algunos llaman Shellshock. Es una importante vulnerabilidad relacionada con Bash, el intérprete de comandos (SHELL) que está instalado en millones de computadoras alrededor del mundo. El impacto parece ser superior incluso al bug en OpenSSL 'Heartbleed'

  • En este post, voy primero a dar una explicación de alto nivel de quiénes son vulnerables y qué pueden hacer al respecto.


¿Quiénes son vulnerables?



Bash (del que hablaremos más adelante) está instalado en muchos ordenadores, routers, sistemas integrados de control hogareños, industrial y demás dispositivos. Este es el intérprete de comandos (cmd en Windows) del nuestro querido antiguo sistema operativo Unix. Hoy por hoy es usado también por defecto en las Macs, así como una gran cantidad de servidores web y usuarios que ejecutan sistemas operativos como Linux.

Si en realidad son susceptibles a ataques o no los sistema que tiene Bash, depende de cómo sea usado. Es sabido que muchos servidores Web ya han sido comprometidos, y también que este bug en conjunto del servicio DHCP (usado en casa casa que tenga un router) o OpenSSH (un programa para conectarse remotamente a otra, disponible en casi cualquier servidor) libran una puerta de entrada.

PCs de Apple como MacBooks no parecen estar funcionando con los servicios que utilizan Bash de manera insegura. Eso significa que probablemente no son vulnerables a los cracks provenientes de Internet. Pero no lo sabremos con seguridad hasta que los expertos en seguridad han tenido tiempo para una auditoría cuidadosa.

La mayoría del software Microsoft no utiliza Bash, por lo que los usuarios que ejecutan Windows, las personas con teléfonos con Windows, así como sitios web creados con software de Microsoft, son probablemente a salvo de estos ataques (esta vez ) Además, parece que la mayoría de los teléfonos Android no son vulnerables debido a que utilizan una alternativa Bash (Alquimist Shell o sh a secas).

¿Qué debo hacer para protegerme?

Si sos usuario de Apple:
  • Por desgracia, nada. (A menos que puedas compilar Bash desde el código, aplicar el parche oficial y reemplazar el binario, digo) Es de suponer que Apple lanzará versiones actualizadas de su software pronto. Así que mantenerse atento al servicio de actualización de software de la plataforma, y ​​instalatelo tan pronto como esté disponible.


Si sos usuario de Linux/UNIX:
Parchea ya. Ya están los parches:
  • sudo apt-get update && sudo apt-get upgrade (en debian/ubuntu)
  • yum update bash (redhat/centos/fedora)




"Hay grandes chances que la vulnerabilidad sea utilizado por hackers de moralidad dudosa (o cibercriminales) para crear un gusano que se propaga de manera automática"


El servicio llamado DHCP podría ser vulnerable. Este es un servicio que permite a las computadoras portátiles, tabletas y smartphones, configurar se automáticamente cuando se conectan a una red wifi. Un router wifi malicioso podría usar el bug para introducirse en los ordenadores portátiles de los usuarios y los dispositivos móviles. Así que si usted es un usuario de Mac, puede ser prudente evitar ingresar a redes wifi son de confianza - por ejemplo, en las tiendas de café - hasta que Apple ha publicado una actualización de seguridad.

¿Qué podrían hacer los atacantes con esta vulnerabilidad?

El error puede ser utilizado para crackear servidores vulnerables. Una vez dentro, los atacantes podrían desfigurar sitios web, robar datos de los usuarios, y participar en otras formas de daño.

Hay una buena probabilidad de que los crackers utilizar la vulnerabilidad para crear un gusano que se propaga de manera automática a partir de la máquina vulnerable a la máquina vulnerable. El resultado sería una botnet, una red de miles de ordenadores infectados que operan bajo el control de un solo usuario remoto. Estas botnets - que se crean a menudo en la raíz de las principales vulnerabilidades - se puede utilizar para enviar spam, participar en ataques de denegación de servicio (DoS) en sitios web o robar datos confidenciales.

Mientras escribo esto, los profesionales de seguridad se apresuran a actualizar su software de servidor antes de que los chicos malos tienen tiempo para atacarlo.

¿Qué tan difícil será para solucionar el problema?

Desde una perspectiva técnica, la corrección no debería ser demasiado difícil. Una solución parcial ya se ha puesto a disposición , y una solución completa debe ser liberado pronto.

"Bash ha existido desde la década de 1980, y se ha convertido en un estándar de la industria"


Lo complicado será que, al igual que con la vulnerabilidad Heartbleed a principios de este año, Bash está incrustado en un gran número de diferentes dispositivos, y que tomará mucho tiempo para encontrar y corregir todos ellos.


OK, vamos a lo técnico. ¿Qué es Bash?

Bash es sinónimo de Bourne-Again Shell. Es un programa informático que permite a los usuarios escribir los comandos y los ejecuta. Si sos un usuario de Mac OS X, podes comprobarlo. Podés ir al Finder, abrir la carpeta Aplicaciones (en el menú "Ir", luego en la carpeta Utilidades y, a continuación, "Terminal". Se parece a esto:



Se puede ver en la barra de título que dice "bash", lo que indica que el programa se ejecuta dentro de esta ventana de terminal es el shell Bash. El intérprete de comandos comprende una amplia variedad de comandos. Por ejemplo, "cd" es sinónimo de "cambio de directorio", y le dice al intérprete de comandos para navegar a una nueva carpeta en su disco duro. Al escribir "ls" lista los contenidos del directorio actual, mientras que "echo" imprime el texto a la pantalla.

Bash ha existido desde la década de 1980, y se ha convertido en un estándar de la industria. A día de hoy, es una de las maneras más populares para los administradores de sistemas, programadores y otros usuarios expertos en tecnología para ejecutar comandos complejos en las computadoras.

Debido a que el shell Bash es completamente basado en texto, que es particularmente útil para administrar de forma remota un ordenador. Ejecutar un intérprete de comandos en un servidor en la otra mitad del mundo se siente exactamente igual que ejecutar el intérprete de comandos en el equipo local. Los profesionales de TI utilizan shells remotos como Bash ampliamente para configurar, diagnosticar, reparar y actualizar los servidores sin tener que desplazarse físicamente a su ubicación. Como resultado, Bash es una característica estándar en casi todos los servidores que ejecutan un sistema operativo no hecho por Microsoft.

¿Cuál es el error de Bash que descubrieron esta semana?

Bash tiene una característica que los usuarios pueden configurar "variables de entorno" y recuperarlos más tarde. Funciona de esta manera:



Este es un ejemplo trivial, pero las variables de entorno resultan ser una característica muy útil al ejecutar comandos complejos.

¿Cuál es el error? Aquí hay una pequeña variación en el ejemplo anterior:



El "env" comando establece una variable de entorno (en este caso COLOR = red), y luego ejecuta un comando basado en ese entorno. Aquí, es la ejecución de un segundo shell Bash que a su vez se hace eco de la cadena "Mi color favorito es $ COLOR." Debido a que el shell se ejecuta en un entorno donde COLOR = red, imprime "Mi color favorito es el rojo."

El exploit funciona así:



Observe que el comando "echo Odio los colores" no utiliza la variable $color en absoluto. Así que si Bash estaría trabajando correctamente, el comando "echo vulnerable" debería ser ignorado - es simplemente un texto al azar en una variable que nunca se utiliza. Así que la palabra "vulnerable" no debería estar en la salida.

Pero la cadena maliciosa '() {:;}; echo vulnerable " se ejecuta. Y lo peor "echo vulnerable" se ejecturaría como root (Administrador) si el programa que llama a Bash tiene esos permisos (cómo por ej. un servidor web o un servicio DHCP).

Por supuesto, en un ataque real, los chicos malos harían algo mucho más aterrador que imprimir la palabra "vulnerable". Utilizarían este mismo mecanismo para hacer que tu equipo ejecutara spyware, enviar sus archivos privados a un servidor remoto, enviar spam, o hacer otras cosas malas...



¿El atacante no debe tener acceso físico a la computadora para llevar todo esto adelante? Eso suena feo.

Si Bash fuera sólo un mecanismo para aceptar comandos de los usuarios humanos, esto no sería un problema tan grande. El problema es que Bash también se ha convertido en una forma popular para los programas de ordenador para invocar otros programas informáticos.

Por ejemplo, cuando se carga una página web con contenido dinámico en él, la manipulación de la solicitud puede utilizar Bash para acceder a la información solicitada (mediante cgi por ejemplo). Así, mientras que la mayoría de la gente nunca usan Bash directamente, todos estamos utilizandolo constantemente - indirectamente - cuando navegamos por la web.

¿Hay alguien ya aprovechando este bug?

. De hecho, a un día de su descubrimiento ya se intentó tirar abajo sistemas del Departamento de Defensa de yanquilandia.
http://www.itnews.com.au/News/396197,first-shellshock-botnet-attacks-akamai-us-dod-networks.aspx
http://www.bbc.com/news/technology-29375636

¿Cómo probar si lo tengo?

En una maquina con Bash:
Lo abris, y pones.

  • x='() { :;}; echo soy_vunerable' bash


Si se imprime soy_vulnerable, estás al horno. Parcheá ya tu sistema.
Si te imprime:
  • bash: aviso: x: ignoring function definition attempt
  • bash: error al importar la definición de la función para `x'


ya estás parcheado.