Archivo por meses: septiembre 2014

Todo era alegría en Bash hasta que Shellshock

El jueves de la semana pasada salió a la luz un fallo de seguridad que afecta a Bash, el intérprete de comandos detrás de muchos sistemas con Linux y Mac OS X.

El bug se produce porque, a la hora de definir variables de entorno, utilizando una sintaxis determinada se consigue ejecutar código que a su vez se almacena dentro de la variable, algo que lógicamente no debería estar permitido. Veamos un ejemplo:

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

Con este comando se ejecuta una nueva shell de Bash, pasándole una definición de una variable que contiene un método que no hace nada y un comando justo después de la definición, que se ejecuta justo cuando la variable se define.

Algunas televisiones partidarias de shells alternativas piensan que Bash es un bug en sí mismo

Algunas televisiones partidarias de shells alternativas piensan que Bash es un bug en sí mismo. Fuente: @crazybob

Este bug permite realizar varios ataques ya probados: escalada de privilegios de un usuario normal, ejecución de comandos en shells de SSH restringidas… ¿Un user agent de un navegador llamado () { :;}; rm -rf /? ¿Por qué no?. Las consecuencias podrían ser desastrosas.

Como pasó en la época del Heartbleed y OpenSSL, mucha gente ha centrado ahora su mirada en Bash y se han encontrado nuevos fallos de seguridad relacionados y no relacionados. En los servidores (y equipos de escritorio que administramos) del centro, Bash se actualiza regularmente con las actualizaciones de seguridad de las distribuciones, que ya han publicado varias versiones nuevas que van corrigiendo todos estos fallos.

En la Wikipedia van sintetizando toda la nueva información que va surgiendo, con enlaces a las fuentes interesantes, así que recomendamos echar un vistazo a su artículo si queréis más información sobre este tema. La página ShellShocker.net también resume toda la información y ofrece recursos para probar los sistemas y parchear Bash de forma manual, muy útil para sistemas antiguos.