antivirus
Óptima protección antivirus: Soluciones de seguridad en Internet de G Data para PC.

viernes, 26 de septiembre de 2014

Arreglar en Ubuntu el exploit del bash "Shell Shock"

Todos los Linux, al igual que en otros sistemas derivados de Unix (OS X también, como comentamos en un post previo), están afectados por el exploit "Shell Shock". En todos los sistemas conviene actualizarlo a la versión siguiente que ya no sea vulnerable.

Nuestro sistema será vulnerable si al ejecutar lo siguiente en una ventana de terminal:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos muestra el mensaje:
vulnerable
this is a test


En ese caso, merece la pena que lo arreglemos.

Para ello tenemos que bajar los fuentes del bash, aplicarle un parche de seguridad, compilarlo, e instalarlo.

Para ello, debemos tener el gcc instalado en la máquina, lanzar un terminal y ejecutar las siguientes órdenes (directamente se puede hacer copy&paste sobre el terminal):

cd
mkdir src
cd src
 # descargamos los fuentes del bash
wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
 # descargamos los parches
for i in $(seq -f "%03g" 0 25); do wget     http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i; done
tar zxvf bash-4.3.tar.gz
cd bash-4.3
 # aplicamos los parches
for i in $(seq -f "%03g" 0 25);do patch -p0 < ../bash43-$i; done
 # compilamos e instalamos
./configure && make
sudo make install
 # limpiamos
cd ..
cd ..
rm -r src

Una vez actualizado, si volvemos a ejecutar el script:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos debería devolver el mensaje:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test


Y eso significará que nuestro sistema ya no es vulnerable al exploit  ;)

Arreglar en OS X el exploit del bash "Shell Shock"

Dado que el bash 3.2 (la versión que viene con OSX) es vulnerable al exploit llamado "Shell Shock" (CVE-2014-6271 y CVE-2014-7169), conviene actualizarlo a la versión siguiente (mientras Apple crea una actualización y se nos instala a través del App Store.

Nuestro sistema será vulnerable si al ejecutar lo siguiente en una ventana de terminal:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos muestra el mensaje:
vulnerable
this is a test


En ese caso, merece la pena que lo arreglemos.

Para ello tenemos que bajar los fuentes del bash desde la página de Apple, aplicarle un parche de seguridad, compilarlo, y sustituir los ejecutables del bash y sh en /bin

Para ello, debemos tener el XCode instalado en la máquina, lanzar un terminal y ejecutar las siguientes órdenes (directamente se puede hacer copy&paste sobre el terminal):

cd
mkdir bash-fix
cd bash-fix
curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
cd bash-92/bash-3.2
curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0    
cd ..

xcodebuild

sudo cp /bin/bash /bin/bash.old
sudo cp /bin/sh /bin/sh.old

build/Release/bash --version
build/Release/sh --version

sudo cp build/Release/bash /bin
sudo cp build/Release/sh /bin

sudo chmod a-x /bin/bash.old /bin/sh.old



Si ahora volvemos a ejecutar el script:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos debería devolver el mensaje:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test


Y eso significará que nuestro sistema ya no es vulnerable al exploit  ;)