Shellshock mise à jour manuelle de bash sous Release 2 OVH...
Vous n'avez pu échapper à cette information rendue publique ce 24 septembre. Le bug Shellshock, fait la une de toute la presse, spécialisée ou non. Et pourtant, cette vulnérabilité de bash n'est pas nouvelle: elle est semble-t-il présente depuis... vingt-deux ans !
La création de sites Internet ne se limite donc pas au code HTML, CSS, PHP, à l'utilisation de CMS... Il faut aussi - parfois - plonger dans ces "sombres fenêtres" pour une pincée d'administration des systèmes...
La source de Shellshock est bash, le shell le plus couramment utilisé sous Linux, MAC OSX... L'exploitation de cette vulnérabilité et ses impacts restent sujets à débats d'experts, mais bon soyons prudents. Et donc - par précaution - mettre à jour de bash, s'avère indispensable pour contenir Shellshock.
Rien de bien compliqué, mais une petite synthèse nous semblait intéressante... Commençons par le test "à la mode" :
# env x='() { :;}; echo vulnerable Shellshock' bash -c 'echo hello' vulnerable Shellshock hello
Bon cette plateforme est bonne pour une mise à jour ! Voyons un peu où en est notre serveur :
# ls -lai /bin/*sh* 360545 -rwxr-xr-x 1 root root 779248 nov 28 2008 /bin/bash 360563 lrwxrwxrwx 1 root root 4 oct 29 2012 /bin/rbash -> bash 360549 lrwxrwxrwx 1 root root 4 oct 29 2012 /bin/sh -> bash
A priori, aucun shell alternatif, et sh est un alias à bash. Quid de cette version de bash ?
# bash --version GNU bash, version 3.2.17(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc.
En effet cette version - comme beaucoup d'autres - est réputée vulnérable ! Reste maintenant à procéder - au plus vite - à la mise à jour de bash. Chez OVH, en Release 3 vous n'avez à effectuer qu'un simple "update" via :
# yum update
Si vous être en Release 2 OVH, vous pouvez passer les derniers patch via cette commande :
# wget ftp://ftp.ovh.net/made-in-ovh/release/patch-all.sh -O patch-all.sh; sh patch-all.sh
Parfois, sous Release 2 d'OVH, cette mise à jour n'est pas possible ou pas souhaitée, vous pouvez alors opter pour une mise à jour manuelle. L'exemple ci-après illustre la mise à jour pour une version 64 bits en Release 2 OVH :
# wget -nv ftp://ftp.ovh.net/made-in-ovh/release/2.33-2.34/bash-static_64 -O /bin/bash-static 14:22:27 URL: ftp://ftp.ovh.net/made-in-ovh/release/2.33-2.34/bash-static_64 [1744432] -> "/bin/bash-static" [1] # chmod a+x /bin/bash-static # mv -f /bin/bash /bin/bash.insecure # ln -sf bash-static /bin/bash
Reste maintenance à reprendre nos premières commandes, pour voir où nous en sommes :
# env x='() { :;}; echo vulnerable Shellshock' bash -c 'echo hello' bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' hello # ls -lai /bin/*sh* 381047 lrwxrwxrwx 1 root root 11 sep 27 14:22 /bin/bash -> bash-static 360545 -rwxr-xr-x 1 root root 779248 nov 28 2008 /bin/bash.insecure 381046 -rwxr-xr-x 1 root root 1744432 sep 27 14:22 /bin/bash-static 360563 lrwxrwxrwx 1 root root 4 oct 29 2012 /bin/rbash -> bash 360549 lrwxrwxrwx 1 root root 4 oct 29 2012 /bin/sh -> bash # bash --version GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Chaque distribution dispose - ou disposera - de sa propre procédure. Sous debian, la mise à jour est là aussi simple :
# apt-get update # apt-get upgrade
Ou bien pour la seule mise à jour de bash :
# apt-get install -y bash
ATTENTION, votre fichier /etc/apt/sources.list
doit être valide pour les mises à jour de sécurité pour wheezy ou squeeze. Sous Wheezy, le mien ressemble à ceci :
## Debian Wheezy - dépôts officiels deb http://ftp.fr.debian.org/debian/ wheezy main deb http://ftp.fr.debian.org/debian/ wheezy-updates main deb http://security.debian.org/ wheezy/updates main
Pour
Squeeze, il faut - si ce n'est déjà fait - ajouter à votre fichier /etc/apt/sources.list
le squeeze-lts repository squeeze-lts. Mon sources.list
ressemble à ceci :
## Debian Squeeze - dépôts officiels deb http://ftp.fr.debian.org/debian/ squeeze main deb http://ftp.fr.debian.org/debian/ squeeze-updates main deb http://security.debian.org/ squeeze/updates main deb http://ftp.us.debian.org/debian/ squeeze-lts main non-free contrib
Bon, et bien pour cette fois, c'est réglé. A suivre lors de la prochaine "maxi vulnérabilité"...
En savoir plus :
- Shellshock : patcher n’est qu’un premier pas…
- Actualité relative au bulletin d’alerte CERT-FR sur le site de l'ANSSI
- La "tâche" des "travaux" chez OVH...
- Une peu de documentation sur les "sources" de debian...
- Le patch pour bash 4.3
- Shellshock la mise à jour de bash pour Mac OS X (Enfin) disponible...
Un peu de technique :