ShellShock : « l’attaque est simple
Facilement automatisable et aux conséquences désastreuses »

Le , par Hinault Romaric, Responsable .NET

Le séisme « Shellshock » secoue depuis quelques jours le Web. Le sujet est actuellement sur toutes les lèvres dans le monde de la sécurité informatique et même au-delà. Shellshock est considérée comme plus désastreuse qu’Heartbleed, qui était pourtant l’une des pires failles qu’auraient connu Internet.

La vulnérabilité touche l’interpréteur en ligne de commande Bash qui est utilisé comme Shell par défaut par les systèmes d’exploitation Linux et Unix. La « National Vulnerability Database » utilisée par le gouvernement américain pour suivre les failles de sécurité informatique, a donné à cette vulnérabilité le score maximal (10/10) pour sa « gravité », son « impact » et son « exploitabilité ».

En moins d’un an, l’univers de l’open source et Internet se retrouvent agiter à deux reprises par des vulnérabilités dans deux outils massivement utilisés. Deux situations qui mettent en exergue le risque d’une utilisation trop importante d’une même technologie.

Dans l’optique d’apporter plus de détails sur cette faille, les mesures à prendre pour se protéger, les implications, etc. la rédaction de Developpez.com s’est entretenue avec Thierry Karsenti, Directeur Technique Europe chez Check Point, fournisseur des solutions de sécurité du système d’information.


Developpez.com : Pouvez-vous revenir en détail sur cette vulnérabilité et son principe ?

Thierry Karsenti : La vulnérabilité découverte touche BASH, un interpréteur de ligne de commande présent sur des millions d’équipements informatiques (Linux, Mac OS, routeurs, serveurs web, caméras IP et autres objets connectés, etc.). Cette vulnérabilité est présente depuis une vingtaine d’années, et consiste à abuser d’un bug pour exécuter à distance un code malveillant.

Developpez.com : Quel est l’impact de cette faille et comment un pirate peut-il l’exploiter ?

Thierry Karsenti : L’attaque est très simple à mettre en œuvre, facilement automatisable, et aux conséquences désastreuses, puisqu’elle permet de prendre le contrôle complet du système vulnérable. Cela ouvre donc la voie à l’espionnage massif, le vol ou la destruction de données, la mise à mal des infrastructures critiques…

Developpez.com : Comment vérifier que son équipement est vulnérable ?

Thierry Karsenti : Une simple ligne de commande permet de tester son système. De nombreux exemples circulent sur Internet pour pouvoir faire soi-même la vérification. Une autre approche est de solliciter son fournisseur d’équipement pour savoir s’il est vulnérable ou non. Enfin, il existe déjà des outils qui permettent de scanner son système d’information à la recherche d’équipements vulnérables.

Pour rappel, si vous souhaitez vérifier si votre système est vulnérable, vous pouvez utiliser la ligne de code suivante :

Code : Sélectionner tout
env x='() { :;}; echo vulnérable' bash -c "echo ceci est un test"
Si votre système est vulnérable, vous obtiendrez en sortie :

vulnérable
ceci est un test

Thierry Karsenti, Directeur Technique Europe chez Check Point

Developpez.com : Quels sont les risques pour les serveurs vulnérables ?

Thierry Karsenti : Les risques sont majeurs puisque l’attaquant peut prendre entièrement le contrôle de l’équipement.

Developpez.com : Qu'est-ce qui rend Shellshock plus grave que Heartbleed ?

Thierry Karsenti : Heartbleed concernait des versions logicielles des 2 dernières années. Shellshock concerne toutes les versions de BASH, et offre une surface d’attaque bien supérieure. Tous les vecteurs d’attaque ne sont d’ailleurs pas encore pleinement connus.

Developpez.com : Le bug est présent depuis 22 ans. Qu’est-ce que cela implique ?

Thierry Karsenti : Cela augmente considérablement le risque d’avoir des équipements vulnérables dans son système d’information. Par ailleurs, certains équipements vulnérables n’auront peut-être pas de correctifs, car trop anciens et donc plus mis à jour par leurs fournisseurs (même si les clients continuent pour certains de les utiliser…).

Developpez.com : Avez-vous observé des attaques qui exploitent cette faille ?

Thierry Karsenti : Il y a de nombreux scanners pour tester en masse les vulnérabilités d’équipements sur Internet. Certains d’entre eux ne se contentent pas de détecter les vulnérabilités, mais prennent le contrôle des systèmes identifiés comme vulnérables et installent un cheval de Troie (bot).

Developpez.com : Quelles mesures devraient prendre les administrateurs pour se protéger ?

Thierry Karsenti : Il est urgent de faire l’inventaire des systèmes vulnérables, et planifier le plus rapidement possible une mise à jour. En parallèle, il convient d’utiliser des solutions de sécurité type prévention d’intrusion pour minimiser le risque et gagner du temps dans cette course contre la montre.

Developpez.com : Deux failles graves la même année dans des outils open source très utilisés. Cela remet-il en question la sécurité des solutions open source ?

Thierry Karsenti : Plus que l’open source, cela met en exergue le risque d’utilisation massive d’une même technologie, d’un même code, ou d’une même application. Cela était vrai quand Windows était omniprésent (Microsoft était alors souvent pointé du doigt sur le banc des accusés), cela touche aujourd’hui naturellement le logiciel libre qui est d’une certaine manière victime de son succès !


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de agodfrin agodfrin - Membre régulier http://www.developpez.com
le 29/09/2014 à 13:31
La faille est exploitable sur tous les serveurs qui:

1) Déclenchent du code exécutable au travers de bash: par exemple un shell script, ou encore un exécutable qui utilise bash pour déclencher des actions.
C'est le cas (possiblement) dans pas mal de serveurs HTTP Apache qui utilisent CGI

2) Passent à ce code exécutable de l'information fournie par les clients, sous forme de variables d'environnement.
C'est le cas des en-têtes HTTP (entre autres) dane le cas de ces mêmes serveurs.

La faille se trouve dans le mécanisme fourni par BASH qui permet à un process parent de passer une fonction à un process fils sous forme de variable d'environnement, et qui par erreur, permet d'inclure du code malicieux qui sera automatiquement exécuté lorsque BASH va définir la fonction.

Dans le scénario du serveur HTTP, un attaquant peut passer une entête HTTP (par exemple "user-agent") avec un contenu malicieux. Ce contenu se retrouvera sur le serveur dans une variable du genre HTTP_USER_AGENT. Elle sera interprétée par BASH comme décrit ci-dessus, menant à l'exécution du code malicieux. L'impact de ce dernier dépend du contexte d'exécution du serveur HTTP. Gare s'il tourne en root!

La faille est bien réelle. Son impact potentiel est certain. Il est cependant limité au contexte que je cite plus haut: des serveurs HTTP qui utilisent CGI. Si vous en tourner un, alors il est vraiment important de patcher bash!

Le fait que Apple n'ait pas encore publié de correctif pour OS X n'est pas un vrai souci: qui fait tourner un site web public sous Apache et CGI sur un Mac ? Même sur un serveur Mac ? Mais je trouve malvenu qu'Apple n'ait pas pris la peine de corriger. Il est vrai que Mac OS X inclut une version bien ancienne de bash.
Avatar de LSMetag LSMetag - Membre expert http://www.developpez.com
le 29/09/2014 à 13:48
Citation Envoyé par agodfrin  Voir le message
Le fait que Apple n'ait pas encore publié de correctif pour OS X n'est pas un vrai souci: qui fait tourner un site web public sous Apache et CGI sur un Mac ? Même sur un serveur Mac ? Mais je trouve malvenu qu'Apple n'ait pas pris la peine de corriger. Il est vrai que Mac OS X inclut une version bien ancienne de bash.

Tu penses bien...Faire un patch ça coûte de l'argent et ça réduit les dividendes des actionnaires à la fin du mois.

J'ai connu ça dans d'autres grandes entreprises...
Avatar de agodfrin agodfrin - Membre régulier http://www.developpez.com
le 29/09/2014 à 14:41
Citation Envoyé par LSMetag  Voir le message
Tu penses bien...Faire un patch ça coûte de l'argent et ça réduit les dividendes des actionnaires à la fin du mois.

J'ai connu ça dans d'autres grandes entreprises...

Sur ce coup-ci, ne pas faire de patch - ou le faire avec retard - est mauvais pour l'image de marque d'Apple, surtout après la mauvaise image sur la sécurité après le coup de l'icloudgate et des photos piratées. J'aurai supposé que l'annonce de cette faille de sécurité aurait mobilisé au plus haut niveau.

C'est vrai que faire un patch coûte. Mais ici, le problème a été rectifié dans la plupart des versions de bash tout de suite après sa découverte. Donc pour Apple, il s'agit de faire un build de la version corrigée de bash, de le packager sous forme de patch et de le diffuser sur le mac app store sur lequel tous les machines sous OS X vont automatiquement piocher leurs mises à jour.

Pour moi, il est bien moins cher de faire ce patch que de voir son image de marque encore une fois écornée ...
Avatar de kOrt3x kOrt3x - Modérateur http://www.developpez.com
le 29/09/2014 à 23:57
Apple vient de mettre à disposition des correctifs pour OS X :

OS X bash Update 1.0 - OS X Lion
OS X bash Update 1.0 – OS X Mountain Lion
OS X bash Update 1.0 – OS X Mavericks

Apparemment, pas de mises à jour pour les versions antérieurs à 10.7 et pas de correctif pour la prochaine version de OS X Yosemite, elle serait directement intégrée.
Avatar de marsupial marsupial - Membre éclairé http://www.developpez.com
le 02/10/2014 à 14:09
En 22 ans, la faille n'a pas été découverte, officiellement. Patchée en moins de 24h.
Des failles connues, remontées chez d'autres OS depuis leur origine ne sont toujours pas patchées... et leur support est abandonné sans que la faille soit jamais patchée... laissant la DSI se débrouiller ( poliment ) avec le bébé né avec une cuillère en argent dans la bouche.

Au niveau de la qualité, c'est déjà incomparable ( cf. un écran de pub qui a ostensiblement affiché BSOD en 6x3 pendant un mois, au moins, de vacances ), mais alors niveau réactivité, heureusement que certain n'ont pas la charge du réseau mondial. Et j'espère bien ne l'auront jamais.

A bon entendeur,

PS : faire défiler des écrans de pub, je veux dire, sans planter, ils savent faire ? Ou est-ce trop demander à XP ?
Avatar de iorireda3 iorireda3 - Candidat au Club http://www.developpez.com
le 03/10/2014 à 0:41
Bonjour,

Quelqu'un peut nous faire une démonstration ? un vrai, du genre j'attaque un site et je suis capable de prendre la main sur le serveur qui héberge le site.

Parler pour parler ou dénigrer les autres systemes c'est facile, mais pour le prouver je pense qu'il y que des phrases qui font peur au gens.

Ne serait-ce pas un debut de pub pour les anti-virus sur les Linux ?

J'ai confiance en Bash et à mon LINUX/UNIX quoi qu'il arrive.

Merci
Avatar de iorireda3 iorireda3 - Candidat au Club http://www.developpez.com
le 03/10/2014 à 0:52
Bonjour

Croyez moi que sur un shell normal (sh) la ligne de cmd donne le même resultat !

Nous n'allons pas retirer tous les shell quand même ! on travaillera comment sinon ? avec quel environnement ?

Merci
Avatar de rt15 rt15 - Membre confirmé http://www.developpez.com
le 03/10/2014 à 16:53
Citation Envoyé par iorireda3  Voir le message
Bonjour

Croyez moi que sur un shell normal (sh) la ligne de cmd donne le même resultat !

Nous n'allons pas retirer tous les shell quand même ! on travaillera comment sinon ? avec quel environnement ?

Merci

Attention, il est probable que sur pas mal de Linux, sh n'est rien qu'un lien symbolique vers bash :
Code : Sélectionner tout
1
2
3
 
ls -l /bin/sh 
lrwxrwxrwx  1 root root 4 Feb 19  2014 /bin/sh -> bash
Et non, ce n'est a priori pas une pub pour les anti-virus mais une vraie faille, et même une faille très facile à exploitée par rapport au cas habituel où il faut un shell code.
Cela étant comme déjà dit, elle affecte en gros que les serveurs avec bash utilisé pour exécuter des scripts cgi (En gros car il y a d'autres cas, mais plus rares j'imagine.). Donc pas le PC de tante Janine. Cela étant tante Janine est généralement sous Windows.

Regarde sur internet, il y a des exemples vraiment simple d'exploitation.
Après pour trouver un serveur vulnérable, c'est plus compliqué. Faut trouver un serveur avec des scripts cgi et je sais pas trop si ça cours les rues de nos jours.

Visiblement les pirates testent l'existence de fichier cgi sur les serveurs à partir de listes fixes genre :
/cgi-sys/entropysearch.cgi
/cgi-sys/defaultwebpage.cgi
/cgi-mod/index.cgi
/cgi-bin/test.cgi
/cgi-bin-sdb/printenv
Avatar de elssar elssar - Membre actif http://www.developpez.com
le 06/10/2014 à 9:22
Citation Envoyé par rt15  Voir le message
Attention, il est probable que sur pas mal de Linux, sh n'est rien qu'un lien symbolique vers bash :
Code : Sélectionner tout
1
2
3
 
ls -l /bin/sh 
lrwxrwxrwx  1 root root 4 Feb 19  2014 /bin/sh -> bash
Et non, ce n'est a priori pas une pub pour les anti-virus mais une vraie faille, et même une faille très facile à exploitée par rapport au cas habituel où il faut un shell code.
Cela étant comme déjà dit, elle affecte en gros que les serveurs avec bash utilisé pour exécuter des scripts cgi (En gros car il y a d'autres cas, mais plus rares j'imagine.). Donc pas le PC de tante Janine. Cela étant tante Janine est généralement sous Windows.

Regarde sur internet, il y a des exemples vraiment simple d'exploitation.
Après pour trouver un serveur vulnérable, c'est plus compliqué. Faut trouver un serveur avec des scripts cgi et je sais pas trop si ça cours les rues de nos jours.

Visiblement les pirates testent l'existence de fichier cgi sur les serveurs à partir de listes fixes genre :
/cgi-sys/entropysearch.cgi
/cgi-sys/defaultwebpage.cgi
/cgi-mod/index.cgi
/cgi-bin/test.cgi
/cgi-bin-sdb/printenv

Si si il y a encore pas mal de serveurs utilisant des scripts CGI. Après ça concerne souvent des serveurs de PME, ou des trucs perso.
Pour ma part, nous n'en utilisons pas, mais par sécurité j'ai maj.

Quant aux anti-virus sur linux j'ai pas très bien compris
On parle d'une faille sur des serveurs utilisant une distrib linux, on protège pas ça avec un anti-virus hein
Avatar de abel.cain abel.cain - Inactif http://www.developpez.com
le 22/11/2014 à 6:27
Citation Envoyé par LSMetag  Voir le message
Bref tu peux l'attraper en surfant

comment?
Avatar de abel.cain abel.cain - Inactif http://www.developpez.com
le 22/11/2014 à 6:44
Citation Envoyé par BenDeVil  Voir le message
J'ai aussi un peu de mal à comprendre comment cette faille peut être si catastrophique?! Je comprends bien que d'anciens systèmes ont la failles et ne seront plus mis-à-jour, mais encore faut il pouvoir exploiter la faille! Si je comprends bien, il faut avoir l'autorité de lancer une commande bash pour exécuter le code.

Non, il faut qu'un processus invoque bash.

Citation Envoyé par BenDeVil  Voir le message
Sur un réseau protégé (par un firewall par exemple), comment un pirate peut il l'exploiter?

La question n'est pas "est-ce qu'il y a un pare-feu?" mais "est-ce qu'il y a des serveurs réseaux à l'écoute que je peux contacter?"
Offres d'emploi IT
Ingénieur sécurité des systèmes d'information drone (2 postes à pourvoir) H/F
Safran - Ile de France - Éragny (95610)
Ingénieur qualité logiciel au CEPS H/F
Safran - Ile de France - Osny (95520)
Chef de projet SI confirmé (H/F)
Société Générale - Ile de France - Val-de-Fontenay

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Systèmes