Cita

"Those who are willing to pay a penny of security for a penny of usability will eventually have neither"

25 septiembre 2014

Vulnerabilidad grave en la Shell (#Shellshock)


Anoche, cuando estaba a punto de irme a dormir, se me ocurrio darle un último vistazo a Twitter y me encontré con esto:

Un artículo haciéndose eco de una grave vulnerabilidad en la shell (intérprete de comandos) de Linux/Unix/OSX. (Así es que, con Windows, todos tranquilos).

A estas alturas del día, es muy posible que ya hayais oído hablar de ella y hasta es posible que haya salido o vaya salir en los telediarios, como ocurrió con #Heartbleed.

El caso es que dicen que es muy grave y fácil de explotar. Aunque, en el momento de redactar este post, aún no se conocen exploits "in the wild". En principio, afectaría a servidores que usen CGI con la shell de Bash. Pero en esto no hay consenso: hay quien lo ha probado con ksh y le ha funcionado igual y he leído también que no es solo CGI.

En cualquier caso, os lo resumo un poco y os doy algunas referencias, por si queréis saber más (y, como siempre, twitter para estar a la última):

El intérprete de comandos bash permite exportar la definición de funciones de una shell padre a shells hijos, asignándolas a una variable de entorno, que envía al parseador antes de que se ejecute el programa principal en la shell hija.

El problema viene cuando, dentro de la asignación de la variable, tras la definición de la función se añade un comando cualquiera. En vez de dar error, al enviarlo al parseador, el comando se ejecuta. Ahí se puede meter de todo; y, por lo visto, permite la escalada de privilegios.


Una sencilla linea de comandos permite hacer la prueba:

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

Enlace permanente de imagen incrustadaSi la ejecución devuelve:

vulnerable
this is a test

Significa que la shell es vulnerable. 





He encontrado una muy buena explicación del asunto en el blog de lcamtuf (en inglés).

Ya están actualizando las distros más conocidas. Pero ¿qué pasará con el Internet de las cosas y los sistemas embebidos. Varias cosas usan Linux, están conectadas a internet y no se parchean tan a menudo. Supongo que es también por eso que dicen que nos encontramos ante una vulnerabilidad peor que #heartbleed. Otra razón es que con #heartbleed un atacante podía espiar, pero nunca ejecutar cosas en nuestro equipo. 

Se han asignado dos CVS (CVE-2014-6271 / CVE-2014-7169) porque los parches de la primera no lo corrigen totalmente. Recomendación para administradores: actualizar y, cuando el nuevo parche esté publicado, volver a actualizar.

Un ejemplo de cómo se podría explotar, lo podéis ver en el blog de Elevenpaths.

Y, por lo visto, también hay quien se dedica ya a escanear internet en busca de equipos vulnerables.

En fin, veremos en qué queda todo.

Actualización (03-oct): ¿Windows tampoco se salva de estas cosas?


https://twitter.com/FioraAeterna/status/517791046835920897/photo/1

Más referencias:








No hay comentarios:

Publicar un comentario

A penny for your thoughts