Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Responsable .NET

    Linux et Unix affectés par une faille critique dans Bash
    Linux et Unix affectés par une faille critique dans Bash
    la vulnérabilité pourrait constituer une plus grande menace que Heartbleed

    La découverte d’une nouvelle faille critique qui affecte Linux et Unix vient à nouveau secouer l’univers de la sécurité informatique.

    La vulnérabilité toucherait le populaire interpréteur en ligne de commande Bash (Bourne-Again shell). Découverte par le chercheur en sécurité Stephane Chazelas, la faille toucherait toutes les versions antérieures à la version 4.3.

    Cette faille, selon les experts en sécurité, pourrait constituer une plus grande menace que la faille Heartbleed, qui avait été découverte en avril dernier dans l’outil de sécurité OpenSSL. Bash est utilisé comme Shell par défaut dans de nombreux systèmes d’exploitation Unix, y compris OS X, et Linux.

    La faille pourrait donc affecter de nombreux PC, Mac, serveurs et routeurs. En cas d’exploit, un pirate pourrait prendre le contrôle intégral de ces équipements, accéder à des informations confidentielles, procéder à des modifications sur l’OS, etc. Selon les chercheurs en sécurité, les serveurs Web, dont Apache en particulier, pourraient être compromis via des scripts CGI (Common-Gateway Interface) ou des requêtes HTTP qui font appel à Bash. OpenSSH et DHCP sont également touchés sur les machines qui utilisent Bash.

    La faille, qui serait présente dans Bash depuis pratiquement 22 ans, réside au niveau de la manipulation des variables d’environnement dans Bash. Avec des variables spécialement conçues, un pirate pourrait utiliser cette vulnérabilité pour exécuter à distance des commandes Shell.

    « Heartbleed permettait aux pirates d’espionner un ordinateur, mais pas d’en prendre le contrôle », explique Dan Guido, PDG du cabinet de sécurité Trail of Bits. « La méthode d’exploitation de cette faille est également beaucoup plus simple. Avec un simple copier/coller d’une ligne de code, vous pouvez obtenir de bons résultats. »

    Pour pirater un équipement à distance, le pirate devrait donc être en mesure d’injecter des données dans les requêtes des applications qui appellent des commandes Shell Bash. Les conséquences peuvent être désastreuses pour un serveur si les applications nécessitent des scripts exécutés avec des permissions root. « Si c’est le cas, votre agresseur pourrait assassiner votre serveur », mettent en garde les experts en sécurité.

    Une preuve de faisabilité qui utilise des scripts CGI pour exécuter du code avec les mêmes privilèges que le serveur Web est déjà disponible sur Internet. Vous pouvez vérifier si votre système est vulnérable en exécutant les commandes suivantes dans votre Shell. Si le mot « busted » est affiché à l’écran, alors votre système est vulnérable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    env X="() { :;} ; echo busted" `which bash` -c "echo completed"
    Des correctifs pour cette faille auraient déjà été publiés pour toutes les versions de Bash affectées. Il est conseillé de les appliquer sur tous les systèmes disposant de Bash. Actuellement, il semblerait que seuls Red Hat et Debian aient proposé des patchs pour leur OS. Apple ne s’est pas encore manifesté en ce qui concerne OS X.


    Source : SecLists


    Et vous ?

    Qu'en pensez-vous ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Expert confirmé
    c'est juste une faille comme une autre
    déjà pour pouvoir l'utiliser il faudrait que toutes les couche au paravent ne soient pas sécurisées donc peut probable
    la méthode d'exploitation est d'une importance cruciale pour ce genre de faille, si l'on ne passe pas les premières lignes de sécurité ça ne feras strictement rien
    Rien, je n'ai plus rien de pertinent à ajouter

  3. #3
    Membre actif
    Version 4.2 de bash, commande testée, patch non appliqué, résultat négatif. Il faudrait que je teste sur une machine avec une plus vieille version de bash mais sur mes serveurs Debian apparemment pas de faille.

  4. #4
    Expert éminent
    J'ai l'impression qu'avec la montée des OS à base d'Unix aussi bien a titre pro qu'a titre perso (Ubuntu, android, ...), on va voir plus de failles apparaitre. Ce qui en soit n'est pas un mal. Cela ne fait en tout cas, pour moi, que confirmer ce que j'avais lu dans un article, sur Oracle et son PDG (ex??) qu'il fallait exploiter l'Open Source.

    Les entreprises l'ont utilisées en se posant que rarement des questions sur la vrai sécurité pendant des années. Maintenant qu'on se plonge un peu plus dans le code, on voit apparaitre les failles, mais au moins, maintenant, elles participent à améliorer le code grâce à l'organisation dédiée suite à Heartbleed.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  5. #5
    Membre actif
    A relativiser tout de même... il me semble que setter des variables d'environnement depuis un serveur web lui même exécuté en root c'est déjà une faille de sécurité en soi !
    Développeur / Formateur
    Tutoriels AngularJS / Node.js sur ma chaîne Youtube : http://www.youtube.com/user/DevDuFutur

  6. #6
    Membre habitué
    Elle n'est à craindre que si le client peut exécuter des lignes de commande dans l'environnement du serveur ...

  7. #7
    Rédacteur

    Citation Envoyé par Hinault Romaric Voir le message

    La vulnérabilité toucherait le populaire interpréteur en ligne de commande Bash (Bourne-Again shell). Découverte par le chercheur en sécurité Stephane Chazelas, la faille toucherait toutes les versions antérieures à la version 4.3.

    (...)

    Selon les chercheurs en sécurité, les serveurs Web, dont Apache en particulier, pourraient être compromis via des scripts CGI (Common-Gateway Interface) ou des requêtes HTTP qui font appel à Bash. OpenSSH et DHCP sont également touchés sur les machines qui utilisent Bash.
    Pour information, bash (/bin/bash) est le shell par défaut des utilisateurs sous GNU/Linux pas des services:
    Par exemple, www-data sur debian et dérivés utilise /bin/sh et non /bin/bash comme les utilisateurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    www-data:x:33:33:www-data:/var/www:/bin/sh
    Ensuite, pour être utilisée, il faudrait
    1. que sur notre site on execute des commande sh via un system() ou autre commande serveur
    2. que l'on utilise dans notre apple une variable accessible à l'utilisateur et qui n'ait pas été protégé
    Pour rappel, le point 1 est déjà assez rare

    Note: sh sous debian like est un alias vers dash http://fr.wikipedia.org/wiki/Debian_Almquist_shell
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lrwxrwxrwx 1 root root       4 mars  14  2014 sh -> dash
    Alors que /bin/bash est bien le bash en questino dans l'article
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -rwxr-xr-x 1 root root  924892 mars  30  2013 bash
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #8
    Membre extrêmement actif
    Pour ceux disant qu'une faille côté applicative est nécessaire, on pourrait le croire selon la news mais c'est faux. Il y a des vecteur d'attaques direct.

    Cf:
    http://seclists.org/oss-sec/2014/q3/650

    Le meilleur vecteur d'attaque est le script CGI. Si un script CGI est en place, on peut l'appeler avec des données modifiés dans la requêtes (afin d'insérer le code malicieux). Or, les headers de la requêtes sont mapé dans des variables d'environnement (spécification de CGI). Et donc le code malicieux se retrouve dans une variable d'environnement, code qui sera exécuté.

    J'ai vu un code d'exploit passant par un script CGI.

  9. #9
    Membre régulier
    Je ne prends pas cette faille à la légère, ce n'est pas qu'une faille applicative à Bash !

    Quelle entreprise n'a pas un serveur Apache avec un mod_cgi ou mod_cgid installé dessus ?

    On pense bien souvent que Bash n'est qu'un shell local, ce qui n'est pas le cas. Il est souvent utilisé par les serveurs Apache notamment pour exécuter des scripts CGI (contenu dynamique). Des requêtes web conçues spécialement pour cibler une application CGI vulnérables pourraient lancer du code sur le serveur.

    D’après ce que j'ai compris d'autres attaques seraient aussi possible à partir de OpenSSH ou via un serveur DHCP malveillant.
    Bref pour moi c'est loin d’être trivial !

  10. #10
    Membre habitué
    La comparaison avec Heartbleed, c'est du FUD.
    Les CGI ce n'est pas OpenSSL (qui lui est utilisé absolument partout).

    On reste dans un domaine vraiment limité, il faut utiliser des scripts CGI sous Bash et que les paramètres passés au CGI ne soient pas filtrés.

    Toutefois c'est bien plus facile à exploiter.

  11. #11
    Membre éclairé
    Sur ubuntu server www-data est positionné comme tel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

  12. #12
    Membre habitué
    Sur un serveur RedHat 5.11 avec mise à jour automatique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     ~]$ bash -version
    GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.
     ~]$ env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    busted
    completed
     ~]$ env X="() { :;} ; echo busted" `which bash` -c "echo completed"
    busted                                                                                                                                        
    completed
    Après la mise à jour du bash avec à la commande "yum update bash"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ~]$ bash -version
    GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.
    ~]# env X="() { :;} ; echo busted" `which bash` -c "echo completed"  
    /bin/bash: warning: X: ignoring function definition attempt
    /bin/bash: error importing function definition for `X'
    completed
    ]# env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    /bin/sh: warning: X: ignoring function definition attempt
    /bin/sh: error importing function definition for `X'
    completed
    Apparemment ce n'est pas nécessairement un problème de version mais de correctif.

  13. #13
    Membre averti
    Je n'ai pas compris la faille...

    Je ne parviens pas à faire quoi que ce soit dont je n'aurais pas les droits par ce moyen :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MT07600S@zed337p0 ~$ env X="() { :;} ; ls /appli/projects" `which bash` -c "echo completed"
    ls: /appli/projects: Permission denied
    Segmentation fault
    MT07600S@zed337p0 ~$ ls /appli/projects
    ls: /appli/projects: Permission denied
    MT07600S@zed337p0 ~$ sudo su - webadm
    [webadm@zed337p0 ~]$ ls /appli/projects
    devApache  devMysql  wiki
    Pourtant mon environnement semble vulnérable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MT07600S@zed337p0 ~$ env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    busted
    completed
    Je dois passer par un autre compte pour accéder à ce répertoire sur le même serveur. Je reste incapable de réaliser quoi que ce soit dont je n'aurais pas les droits.

    Après s'il s'agit d'une faille sur l'exécution de code à l'affectation à l'environnement, c'est plus un problème sur les double quote et donc une "feature" indésirable plus qu'un bug.

  14. #14
    Membre éprouvé
    Il y avait une énorme faille de sécurité dans le libc de linux il y a 4 ans, qui permettait de passer root. Genre dans la lib que 99.9% des applications utilisent… C'est bizarre à l'époque la masse populaire n'en a vraiment pas vraiment été effrayé/scandalisé. Les gens concernés ont juste fait un mise à jour quoi. Je me demande ce qu'il s'est passé depuis 4 ans pour que le public soit aussi sensible sur ces questions d'un coup.

  15. #15
    Expert éminent sénior
    Citation Envoyé par palnap Voir le message
    A relativiser tout de même... il me semble que setter des variables d'environnement depuis un serveur web lui même exécuté en root c'est déjà une faille de sécurité en soi !
    Je trouve, moi-même, l'actualité un peu alarmiste.
    J'ai l'impression qu'on découvre que toute application peu avoir des failles et qu'on panique .

    Il existe énormément de possibilités sous Linux pour gérer les droits des utilisateurs très finement, pour confiner des processus, etc.
    Alors oui, si on exécute tout en tant que root, il ne faut pas s'étonner d'avoir des failles .

    Enfin bref, ça fera un argument supplémentaire pour les trolls pro-windows .
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  16. #16
    Membre régulier
    C'est bien, cela va conforter la disparition programmée de ce shell quoique fortement méprisable, que j'ai remplacé voilà longtemps par zsh, éminemment supérieur au pénultième ...

  17. #17
    Membre extrêmement actif
    Citation Envoyé par Grimly Voir le message
    Je n'ai pas compris la faille...

    Je ne parviens pas à faire quoi que ce soit dont je n'aurais pas les droits par ce moyen :

    [...]

    Je dois passer par un autre compte pour accéder à ce répertoire sur le même serveur. Je reste incapable de réaliser quoi que ce soit dont je n'aurais pas les droits.

    Après s'il s'agit d'une faille sur l'exécution de code à l'affectation à l'environnement, c'est plus un problème sur les double quote et donc une "feature" indésirable plus qu'un bug.
    Ce n'est pas une faille du type privilege escalation, mais un remote code execution. C'est à dire que quelqu'un qui n'est pas logué sur ton serveur, peut exécuter du code. Pour cela il faut trouver un service distant qui tourne sur le serveur et qui modifie les variables d'environnement, et permettant de contrôler le contenu inscrit dans ces variables. CGI se prête à cela. Regarde mon premier post ainsi que celui de _Von_

    Citation Envoyé par laerne Voir le message
    Il y avait une énorme faille de sécurité dans le libc de linux il y a 4 ans, qui permettait de passer root. Genre dans la lib que 99.9% des applications utilisent… C'est bizarre à l'époque la masse populaire n'en a vraiment pas vraiment été effrayé/scandalisé. Les gens concernés ont juste fait un mise à jour quoi. Je me demande ce qu'il s'est passé depuis 4 ans pour que le public soit aussi sensible sur ces questions d'un coup.
    Citation Envoyé par Neckara Voir le message
    Je trouve, moi-même, l'actualité un peu alarmiste.
    J'ai l'impression qu'on découvre que toute application peu avoir des failles et qu'on panique .

    Il existe énormément de possibilités sous Linux pour gérer les droits des utilisateurs très finement, pour confiner des processus, etc.
    Le but n'est pas de de scandaliser ni d'effrayer. Le but est de relayer l'information le plus vite possible (et certes, le plus fort possible) afin que les administrateur mette à jour le programme incriminé.
    Après, quand ce genre de news arrive sur des sites genre Le Monde ou autres journaux grand publics oui on est dans la news spectacle et non dans l'information.

    Citation Envoyé par Neckara Voir le message

    Alors oui, si on exécute tout en tant que root, il ne faut pas s'étonner d'avoir des failles .

    Enfin bref, ça fera un argument supplémentaire pour les trolls pro-windows .
    Ta première phrase n'a pas de sens car la faille ici a rien à voir avec le fait de tourner en root ou non.
    Ta seconde phrase... bref, je dirais rien...

  18. #18
    Expert éminent sénior
    Citation Envoyé par benjani13 Voir le message
    Ta première phrase n'a pas de sens car la faille ici a rien à voir avec le fait de tourner en root ou non.
    Elle a du sens si tu lis l'actualité, en effet un certain nombre des effets décris ne sont possibles qu'en étant root (ou en ayant des privilèges root).

    Citation Envoyé par benjani13 Voir le message
    Ta seconde phrase... bref, je dirais rien...
    Tu ne visites peut-être pas très souvent le forum actualité, mais à la prochaine discutions déviant sur "windows vs Linux", je peux te parier qu'on va ressortir cela à toute les sauces .
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  19. #19
    Membre averti
    Citation Envoyé par benjani13 Voir le message
    Ce n'est pas une faille du type privilege escalation, mais un remote code execution. C'est à dire que quelqu'un qui n'est pas logué sur ton serveur, peut exécuter du code. Pour cela il faut trouver un service distant qui tourne sur le serveur et qui modifie les variables d'environnement, et permettant de contrôler le contenu inscrit dans ces variables. CGI se prête à cela. Regarde mon premier post ainsi que celui de _Von_
    Merci beaucoup de l'explication, je comprends mieux.

  20. #20
    Membre chevronné
    "la vulnérabilité pourrait constituer une plus grande menace que Heartbleed"

    C'est la première fois que je lis cette phrase, mais mon petit doigt me dit que ce n'est pas la dernière...

    Sérieusement, on est en train de parler d'une faille qui nécessite que le pirate puisse déposer un script sur le serveur et l'exécuter en root. Ou alors qu'il connaisse un script appelé depuis une application web et qui sette des variables d'environnement à partir de paramètres saisis dans une interface web. Toujours en root... C'est quand même pas gagné d'avance. On est très, très loin de Heartbleed, là, quand même...
    J'appelle "Point Traroth" le moment dans une discussion où quelqu'un parle des Bisounours. A partir de ce moment, toute discussion sérieuse devient impossible, puisque la légitimité d'une des parties pour exposer son point de vue est mise en cause. C'est juste un anathème, un moyen de décrédibiliser les autres sans avoir à discuter.