Nuevo Bug en Bash con el nombre de Shellshock
Hoy no se habla de otra en los blogs de seguridad y de Linux, un nuevo bug afecta de forma masiva a todos aquellos dispositivos que hagan uso de Bash. La amenaza de seguridad no queda reducida a servidores o ordenadores personales que usen alguna distribución Linux con Bash, sino que existen multitud de dispositivos que hacen uso de Bash (videocámaras, routers, etc). Este nuevo Bug en Bash con el nombre de Shellshock es incluso más grave que el conocido Hearbleed de OpenSSL.
Bash es la terminal por defecto en la gran mayoría de sistemas operativos Linux y OS X, por lo que el alcance de este bug es amplísimo. Lo más recomendable es actualizar cuanto antes tu sistema operativo, que según he podido comprobar, las distribuciones Ubuntu, Debian, CentOS y Slackware ya han solucionado el problema (no he podido probar más distribuciones, pero imagino que la mayoría ya han sido actualizadas).
Análisis de un nuevo Bug en Bash con el nombre de Shellshock
En esta parte del artículo voy a tratar de explicar brevemente como funciona el bug en Bash Shellshock y además como hacer una comprobación sencilla para verificar si nuestro sistema operativo es vulnerable o no.
La vulnerabilidad de Bash reside en que permite crear variables de entorno diseñadas con un código específico que será ejecutado en el momento en que se llame a la shell en Bash. Esto lo entenderemos mejor al ver el siguiente código que nos sirve para determinar si nuestro servidor es vulnerable o no:
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Ese código lo pegamos en nuestra shell y si como resultado obtenemos lo siguiente, nuestro servidor será vulnerable:
vulnerable this is a test
En este caso tenemos que actualizar inmediatamente nuestro sistema operativo.
Si tras ejecutar el código anterior el mensaje que nos muestra es el siguiente, nuestro sistema estará actualizado y no será vulnerable:
bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' this is a test
La información original sobre el bug la encontráis en el siguiente enlace.
Según me he podido informar en foros y blogs de seguridad, lo que está dando más problemas son scripts CGI que hacen alguna llamada a la shell en bash. Lo que están haciendo los hackers es escanear de forma masiva scripts CGI, tratando de introducir el código vulnerable en las cabeceras de la petición HTTP (User-Agent, Cookie, Referer, Host, etc…).
Estamos si lugar a duda ante un nuevo bug que dará mucho de que hablar y que seguramente ocasione más de un disgusto a algún sysadmin.