Comprobar vulnerabilidades con un script

por:

Linux, Windows, Mac, todos los sistemas operativos tiene vulnerabilidades y a medida que pasa el tiempo, se van actualizando con paquetes, parches o actualizaciones, y renovando contenido para hacerlo menos vulnerable, y a su vez desgraciadamente, hay más gente intentando descubrir las vulnerabilidades restantes.

Esto hace que, hace no mucho, se ha conocido una nueva vulnerabilidad sobre Shellshock que las personas que tengan su sistema operativo actualizado, ya no se han de preocupar, pero por si acaso, aquí explicaremos de que va esa vulnerabilidad, como comprobar si tu sistema Linux es vulnerable, y como solucionarlo.

¿Qué es Shellshock?

Shellshock es una vulnerabilidad que ofrece a usuarios no registrados, poder asignar variables de entorno Bash, es decir, que puedan acceder de forma remota a tu ordenador, o a cualquier ordenador que ejecute comandos en Bash, sin tener permisos.

Este Shellshock, se empezó a descubrir aproximadamente en Septiembre del 2014, pero hasta hace relativamente poco no se ha sabido como defenderse de él perfectamente. Shellshock ha llegado a afectar desde  a Oracle, hasta los servidores de Yahoo, entre muchos otros servidores importantes, hay que tener en cuenta que actualmente, el 51% de los servidores son mantenidos bajo sistemas operativos Unix, así que lo podemos considerar una vulnerabilidad importante y algo a lo que dar importancia.

¿Como comprobar que nuestro sistema es seguro ante los Shellshock?

Primero de todo, crearemos un script en Bash, con el siguiente contenido, y lo ejecutaremos. Para ello lo único que tenemos que hacer es crear un archivo, copiar el siguiente contenido y darle permisos de ejecución con:

$ chmod +x nombreFichero

Código del script:

#!/bin/bash
exec 2> /dev/null
directoriotest="/tmp/bashtests.$RANDOM"
mkdir $directoriotest; cd $directoriotest
echo -n "VULNERABILIDAD 1:"
env x='() { :;}; echo -n No protegido' bash -c "echo Protegido" > out
grep -q Vulnerable out && echo "No protegido" || echo "Protegido"
echo -n "VULNERABILIDAD 2: "
X='() { (a)=>\' bash -c "echo date" > out
[ -e echo ] && echo "No protegido" || echo "Protegido" 
echo -n "VULNERABILIDAD 3: "
( bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' )
&&
echo "Protected" || echo "Vulnerable"
echo -n "VULNERABILIDAD 4: "
( (for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; d$
&& echo "Protegido" || echo "No protegido"
rm -rf $directoriotest

 

Seguramente en nuestro sistemas que tengamos actualizados, no saldría nunca que es vulnerable. Pero en otros como las versiones de Ubuntu 12.04 muy usadas en servidores, si no se ha procedido a actualizar podría saltar el error.

Mi sistema no es seguro, ¿Qué hago?

ACTUALIZAR! No puedes hacer nada más, a parte de tener cuidado, y tener siempre tu sistema actualizado, siempre hay que recordar que todos los sistemas operativos tienen vulnerabilidades y cada vez que salen actualizaciones, consideramos que muchas de esas vulnerabilidades se han corregido, pero no se descarta la posibilidad que salgan más. Mantener nuestro sistema actualizado de forma usual, no nos asegura una protección al 100% pero nos garantiza que los errores ya conocidos, no van a poder se explotables por terceras personas.

2 comentarios en “Comprobar vulnerabilidades con un script”

  1. Agustí Montes

    La mayor vulnerabilidad de todo sistema operativo se encuentra entre la silla y el teclado. Y ese joputa no se actualiza xD

    Responder
    • SomosBinarios

      La verdad es que el usuario siempre es el punto crítico en un sistema y la formación, el quitarle los malos hábitos y demás es en muchos casos simple y llanamente imposible.

      Responder

Deja una Respuesta