Sécurité IT : une faille problématique sur les systèmes Unix
Bash, l’interpréteur en ligne de commande utilisé par défaut sur de nombreux systèmes Unix, abrite une faille critique qui menace notamment les serveurs Web.
Rendue publique ce 24 septembre après sa découverte la semaine dernière par Stéphane Chazelas (expert Unix/Linux), la vulnérabilité CVE-2014-6271 fait frémir les experts en sécurité informatique : certains la considèrent potentiellement plus destructrice que la faille Heartbleed.
Hautement critique, elle touche l’environnement console Bash (« Bourne-again shell »), utilisé par défaut sur la plupart des systèmes de type Unix, dont Apple OS X et de nombreuses distributions Linux.
Le point faible se situe au niveau du traitement des variables d’environnement et de leur transmission à des processus fils (appelés par le shell). Bash interprète d’abord le nom et la valeur de la variable, puis analyse la fonction éventuellement définie par la chaîne « () {« . Mais il ne s’arrête pas après le point-virgule qui marque normalement la fin de cette définition de fonction : il exécute le code qui suit… y compris s’il est malveillant.
Dans la documentation technique publiée pour l’occasion, les développeurs de Bash précisent que la faille – qui touche potentiellement toute application interagissant avec le shell – est exploitable via le réseau dans de nombreuses configurations. Et l’attaquant n’a pas nécessairement besoin de disposer d’un accès au système vulnérable : il lui suffit de passer par l’un des nombreux services autorisant des tiers non authentifiés à fournir, à distance, des variables d’environnement.
Au moins vingt ans d’âge ?
Premières cibles : les serveurs Web et leurs applications qui appellent des commandes shell par HTTP ou via des scripts CGI (« Command-Gateway Interface ») en permettant à l’utilisateur d’insérer lui-même des données. Le risque est encore plus important si ces appels sont réalisés en mode super-utilisateur (root), avec les privilèges maximum.
Selon Lexsi (cabinet spécialisé dans la sécurité IT), « quelques lignes de codes suffisent » à exploiter cette faille vraisemblablement présente dans Bash « depuis au moins une vingtaine d’années ». Pour tester la vulnérabilité d’un système, il suffit d’envoyer, en local, une variable additionnée d’une commande « echo [message] » après le point-virgule. Au prochain lancement d’un processus bin/bash, la commande « echo » s’exécutera et affichera un message dans la console.
Les développeurs de Bash ont patché les versions 3.0 et 4.3 du shell. Des correctifs sont également proposés par les éditeurs des distributions CentOS, Debian, Red Hat et Ubuntu Linux. Il est recommandé aux administrateurs qui n’y ont pas encore accès de compiler eux-mêmes les sources, tout en adoptant quelques mesures de sécurité : limiter l’accès aux serveurs SSH en suspendant temporairement les connexions des non-administrateurs, désactiver les scripts CGI qui appellent le shell… Ou encore opter pour un autre interpréteur que Bash (c’est ce qu’a fait Akamai), au prix d’une syntaxe légèrement différente – par exemple, proche du langage C avec Csh.
—— A voir aussi ——
Quiz ITespresso.fr : que savez-vous des CMS open source ?
Crédit photo : isak55 – Shutterstock.com