Apache: 1 bug lié à la sécurité des hébergements partagés

Mark J Cox, l’un des membres fondateurs de Apache Software Foundation et du projet OpenSSL, a publié un tweet alertant les utilisateurs qu’ils avaient découvert une faille importante dans le logiciel Apache.

Ce logiciel est extrêmement populaire, il est utilisé par plus de 40% des serveurs sur Internet.

La vulnérabilité, identifiée comme CVE-2019-0211, a été découverte par Charles Fol, un ingénieur en sécurité de Ambionics Security, et a été patché par les développeurs d’Apache dans la version 2.4.39 du logiciel.

La faille affecte la version 2.4.17 jusqu’à la version 2.4.38 et permet à un utilisateur d’exécuter du code arbitraire avec des privilèges d’administrateur sur un serveur ciblé.

solr apache

Bien que le chercheur n’ait pas encore partagé de code de preuve de concept pour cette vulnérabilité, Charles a publié un article expliquant comment on peut exploiter cette faille en 4 étapes:

  1. Obtenir l’accès R/W(Read/Write) sur un processus,
  2. Ecrire une fausse structure prefork_child_bucket dans le SHM,
  3. Pointer all_buckets[bucket] vers la structure,
  4. Attendre 6h25 pour obtenir un appel de fonction arbitraire.

Selon Cox, la vulnérabilité est plus dangereuse pour les services d’hébergement web partagés, où les clients malveillants qui ont la possibilité d’exécuter des scripts PHP ou CGI sur un site peuvent utiliser la faille pour obtenir des droits d’administrateurs sur le serveur. Ils pourraient éventuellement compromettre les autres sites hébergés sur le même serveur.

La dernière version Apache httpd 2.4.39 patch aussi cinq autres problèmes (3 petits et 2 importants).

La seconde importante faille (CVE-2019-0217) permettait à un utilisateur avec des identifiants de connexion valides de s’authentifier avec un autre nom d’utilisateur, contournant les restrictions de contrôle d’accès.

La troisième vulnérabilité est un contournement de contrôle mod_ssl access (CVE-2019-0215). Un bug dans mod_ssl lors de l’utilisation de la vérification du certificat client avec TLSv1.3 permettait à un client utilisant Post-Handshake Authentication de contourner les restrictions de contrôle d’accès.

Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. C’est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache.

Le logiciel fonctionne principalement sur les systèmes d’exploitation UNIX (Linux, Mac OS X, Solaris, BSD et UNIX) et Windows. La version Windows n’est considérée comme stable que depuis la version 1.2. Apache est utilisé par de nombreux produits, dont WebSphere d’IBM, ainsi que par Oracle Corporation.

Apache est conçu pour prendre en charge de nombreux modules lui donnant des fonctionnalités supplémentaires : interprétation du langage Perl, PHP, Python et Ruby, serveur proxy, Common Gateway Interface, Server Side Includes, réécriture d’URL, négociation de contenu, protocoles de communication additionnels, etc. Néanmoins, il est à noter que l’existence de nombreux modules complexifie la configuration du serveur web. En effet, les bonnes pratiques recommandent de ne charger que les modules utiles : de nombreuses failles de sécurité affectant uniquement les modules d’Apache sont régulièrement découvertes.

Les possibilités de configuration d’Apache sont une fonctionnalité phare. Le principe repose sur une hiérarchie de fichiers de configuration, qui peuvent être gérés indépendamment. Cette caractéristique est notamment utile aux hébergeurs qui peuvent ainsi servir les sites de plusieurs clients à l’aide d’un seul serveur HTTP. Pour les clients, cette fonctionnalité est rendue visible par le fichier .htaccess.

Parmi les outils aidant la maintenance, les fichiers de log peuvent s’analyser à l’aide de nombreux scripts et logiciels libres tels que AWStats, Webalizer ou W3Perl. Plusieurs interfaces graphiques facilitent la configuration du serveur.

Apache est apparu en avril 1995. Au début, il s’agissait d’une collection de correctifs et d’additions au serveur NCSA HTTPd 1.3, qui était dans le domaine public et le serveur HTTP alors le plus répandu. De cette origine, de nombreuses personnes affirment que le nom Apache vient de a patchy server, soit « un serveur rafistolé ». Par la suite, le code du logiciel a été complètement réécrit, de sorte que, dans la version 2, il ne reste pas de trace de NCSA HTTPd.

Au début, c’était la seule alternative sérieuse et libre au serveur HTTP de Netscape (iPlanet, maintenant Sun ONE). Depuis avril 1996, selon l’étude permanente de Netcraft, Apache est devenu le serveur HTTP le plus répandu sur Internet.

Que faire pour se protéger de ces vulnérabilités d’Apache?

Il est donc recommandé de mettre à jour vos serveurs vers la dernière version du logiciel le plus vite possible.

Si cet article vous a plu, jetez un œil à notre précédent article.