Récemment, il y a eu des nouvelles concernant "CVE-2014-6271" (voir USN-2362-1 ), une vulnérabilité de Bash. Comment savoir si cela me concerne, comment puis-je régler le problème et pourquoi devrais-je m'en soucier?
Ceci est conçu comme une réponse canonique à cette vulnérabilité, en raison de sa portée et de sa gravité.
Réponses:
Qu'est ce que Bash?
Bash est le shell interactif par défaut d'Ubuntu. Lorsque vous vous connectez au terminal (via l'émulateur de terminal, sur un terminal ou sur ssh), vous tapez généralement des commandes qui
bash
liront et s'exécuteront. Même si vous n'utilisez pas du tout le terminal, vous avez toujours Bash.Sur Ubuntu, ce
/bin/sh
n'est pas bash (c'est tiret). Seule bash est affectée par cette vulnérabilité.Comment l'exploit m'affecte-t-il?
Bash et le système d'exploitation suivent un ensemble de variables d'environnement qui décrivent l'utilisateur actuellement connecté, où rechercher des programmes sur le disque dur et d'autres fonctions similaires. En fabriquant une variable d’environnement avec une structure spécifique, un attaquant pourrait éventuellement exécuter du code au prochain démarrage de Bash.
L'attaquant peut définir cette variable d'environnement de plusieurs manières:
ForceCommand
option sshd est un vecteur d’attaque. Les comptes dont le shell n'est pas bash ne sont pas affectés.Une fois qu'ils ont défini cette variable, la prochaine fois que vous l'
bash
ouvrez pour une raison quelconque , le code de votre attaquant sera exécuté. Cela est particulièrement inquiétantsudo -s
, car il se produit en tant que super-utilisateur (une règle d'utilisateur administratif qui contrôle totalement les données et les programmes de votre ordinateur). Même si vous ne démarrez que bash en tant qu'utilisateur standard, les fichiers de cet utilisateur peuvent être supprimés.Il est important de noter que même si vous n'utilisez pas bash vous-même, de nombreux programmes le feront tous seuls dans le cadre de leur fonctionnement. Même dans ce cas, vous êtes vulnérable. Cependant, Ubuntu
/bin/sh
n’appartenant pas à bash, seuls les programmes appelant explicitement bash et non le shell de script par défaut sont concernés.Selon Mitre:
Suis-je vulnérable?
Utilisez dpkg pour vérifier la version de votre paquet installé:
Cela recherchera des informations sur votre
bash
paquet et filtrera la sortie pour ne vous montrer que la version. Les versions fixes sont4.3-7ubuntu1.4
,4.2-2ubuntu2.5
et4.1-2ubuntu3.4
.Par exemple, je vois:
et peut déterminer que je ne suis pas vulnérable.
Comment puis-je mettre à jour?
Le gestionnaire de mise à jour standard vous proposera cette mise à jour. Ceci est un excellent exemple de l'importance des mises à jour de sécurité, quel que soit le système d'exploitation utilisé ou la qualité de la maintenance.
Le USN Bulletin indique que de nouvelles versions ont été publiées pour Ubuntu 14.04 Trusty Tahr, 12.04 Precise Pangolin et 10.04 Lucid Lynx. Si vous ne possédez pas l'une de ces versions LTS, mais une version relativement récente, vous serez probablement en mesure de trouver un package corrigé.
Tout d'abord, vérifiez si vous
Si vous êtes vulnérable, vous devez d’abord récupérer les dernières listes de paquets:
La première commande vérifie que vous disposez de la liste de packages la plus récente comprenant la version corrigée, et la seconde commande installe la version la plus récente (corrigée) de bash.
Bien que le bogue ne semble entrer en jeu que lorsque bash est créé, il est toujours judicieux de redémarrer immédiatement si cela est réalisable.
la source
J'ai volé ça chez Hacker News . Si vous avez des problèmes avec votre mise en pension comme moi (Odroid-XU), cela devrait fonctionner si vous souhaitez appliquer un correctif / construire à partir des sources.
Puis lancez:
Et si vous obtenez:
Alors vous êtes tous bons!
ATTENTION: make install va installer bash
/usr/local/bin
, il/bin/bash
n'est donc pas modifié et peut être appelé à partir de curl !!la source
Remarque: le correctif de sécurité pour CVE-2014-7169 a été publié en tant que mise à jour de sécurité standard. Il n’est pas nécessaire d’ajouter d’autres PPA pour recevoir ce correctif. Seul le suivant est nécessaire.
Pour vous assurer que bash est corrigé correctement, exécutez la commande suivante
Si vous êtes sur 14.04 LTS, vous devriez voir un résultat de:
Si vous utilisez la version 12.04 LTS, votre sortie devrait être:
la source
Si vous êtes sur 11.04: utilisez les étapes ci-dessous (cela a fonctionné pour moi)
si ce n'est pas téléchargé patch requis, installez le paquet ftp
Pour voir si le correctif a été appliqué:
la source
J'utilise Natty 11.04, qui est EOL (et j'ai mis à jour /etc/apt/sources.list pour utiliser old-releases.ubuntu.com), je dois donc compiler à partir des sources. Je voulais construire un fichier .deb, donc au moins le paquet géré est "conscient" que la version bash n'est pas celle par défaut. Je ne réussis pas à 100% - cependant, le paquet est enregistré comme "plus récent" et le
bash
binaire finit par être corrigé. Voici ce que j'ai fait:Maintenant, dans le (sous) répertoire
bash-4.2/
, il y a: un fichierbash-4.2.tar.xz
, qui doit être décompressé pour accéder à labash
source; et un sous-répertoire appelédebian
.J'ai apporté les modifications suivantes pour éviter les dépendances sur
texlive
: dansbash-4.2/debian/control
:... et dans
bash-4.2/debian/rules
:Pour changer de version, dans ce
bash-4.2/
répertoire, faites:... et remplissez les notes dans le journal des modifications lorsque cela vous est demandé. Cela garantira que le .deb (et les métadonnées associées) est appelé (dans mon cas)
bash_4.2-0ubuntu3patchCVE1_i386.deb
.Ensuite, vous pouvez essayer de construire avec
dpkg-buildpackage -us -uc
oudebuild
commande. Remarque - l'un ou l'autre va décompresser le code source à partir du zip - annulant ainsi les patchs que vous avez pu avoir! Néanmoins, exécutez l’une de celles-ci une fois pour que le source soit décompressé et construit (la notedebuild
peut toujours échouer à la fin en raison de texlive, mais elle devrait décompresser et générer le source).Ensuite, appliquez les patchs; notez que vous devriez utiliser
-p1
ici, car vous êtes actuellement dans lebash-4.2/
répertoire:Reconstruisez ensuite la version corrigée en lançant:
Cela reconstruirait l'exécutable; pour le tester:
Pour construire les fichiers .deb, exécutez:
Cela enregistrera les fichiers .deb dans le répertoire parent. pour lister leur contenu:
Pour installer le .deb:
Cependant, pour quelque raison que ce soit, ce .deb contient un binaire non corrigé (?!), Je devais donc aussi:
... et après cela, le test a commencé à passer correctement pour moi:
la source