Systemd concerné par une faille d’élévation de privilèges

Des chercheurs ont découvert trois vulnérabilités dans Systemd, un système d’initialisation utilisé par la plupart des distributions Linux. Ces vulnérabilités permettent aux utilisateurs locaux ou aux malware d’accéder au niveau root.

Ces vulnérabilités, CVE-2018-16864, CVE-2018-16865 et CVE-2018-16866, se trouvent dans le service “systemd-journald” qui récolte des informations et crée des logs.

Les vulnérabilités ont été découvert par les chercheurs en sécurité de l’entreprise Qualys et affectent tout les distributions Linux qui utilisent systemd (Redhat, Debian etc…).

Cependant, SUSE Linux Enterprise 15, openSUSE Leap 15.0 et Fedora 28 et 29 ne sont pas affectés car leur espace utilisateur est compilé avec le -fstack-clash-protection.

Les deux premières failles sont des problèmes de corruptions de mémoire, tandis que la troisième est une “out-of-bounds read” dans systemd-journald qui peut exposer des données sensibles.

La démonstration de faisabilité devrait être disponible dans un futur proche.

Systemd

Les chercheurs affirment avoir développé un exploit pour CVE-2018-16865 et CVE-2018-16866 qui permet d’obtenir les permissions d’administrateur en 10 minutes sur les i386 et 70 minutes sur les amd64. Plus d’informations sont disponibles sur leur site.

CVE-2018-16864 est semblable à une vulnérabilité Stack Clash découverte par Qualys en 2017 et qui peut être exploité en utilisant un malware ou un compte d’utilisateur basique pour élever les privilèges et devenir administrateur.

Selon les chercheurs, CVE-2018-16864 existe dans le code depuis Avril 2013 (v203) et est exploitable depuis Février 2016 (v230), tandis que CVE-2018-16865 a été introduite en Décembre 2011 (v38) et est devenu exploitable en Avril 2013 (v201).

Néanmoins, la troisième vulnérabilité (CVE-2018-16866) a été introduite dans le code de systemd en Juin 2015 (v221) mais aurait été réparé involontairement en Août 2018.

systemd est un système d’initialisation et un daemon qui a été spécifiquement conçu pour le noyau Linux comme alternative à SysV init. Il a pour but d’offrir un meilleur cadre pour la gestion des dépendances entre services, de permettre le chargement en parallèle des services au démarrage, et de réduire les appels aux scripts shell. Le projet a été lancé par Lennart Poettering en 2010 et publié sous licence GNU LGPL version 2.1. Le nom de ce programme vient de « system daemon » : le daemon du système.

Systemd est basé sur quelques dizaines de binaires gérant l’ensemble du système de boot, et quittant ainsi la philosophie UNIX du KISS.

Systemd adopte un nouveau système de log appelé « The Journal », permettant de loguer plus rapidement et plus efficacement les différentes phases de démarrage. Les logs sont authentifiés afin de réduire les chances de corruptions lors d’un piratage, ils sont portables, et l’outil comporte une gestion de saturation de l’espace disque afin de mieux gérer les traces. Tout service géré par systemd est automatiquement logué, sauf si celui-ci demande à ne pas l’être. Il est par défaut compatible avec un environnement réseau et peut passer par les protocoles standard tels que syslog4.

Systemd comporte un outil nommé « systemd-analyze », permettant d’analyser le temps de démarrage, de tracer les différentes étapes et de sortir les analyses sous formes de simples graphiques (format SVG), permettant de comprendre simplement les goulets d’étranglement de la séquence de démarrage.

Ce projet a suscité de vives controverses chez les développeurs de GNU/Linux.

En 2015, la plupart des distributions GNU/Linux ont adopté ce système d’initialisation.

Le projet a essuyé de nombreuses critiques et suscité de fiévreux débats.

Pour certains développeurs, systemd est devenu un plus grand problème que celui qu’il est censé résoudre car au lieu de fournir à l’administrateur les moyens de créer des politiques de gestion du système, il fournit directement ses politiques, au point qu’on compare parfois systemd au Service Host de Windows. Certains de ces détracteurs, utilisateurs de Debian, menacent même de faire un fork de leur distribution si celle-ci impose de fait l’utilisation de systemd en lieu et place de sysvinit. Un fork nommé Devuan a été créé par les opposants qui n’obtenaient pas satisfaction, et la première version de Devuan est sortie fin mai 2017

Que faire contre cette faille dans Systemd?

Si vous utilisez une distribution Linux vulnérable, gardez un oeil sur les mises à jour qui seront mises à votre disposition et installez les le plus tôt possible.

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

S’abonner
Notifier de
guest
0 Commentaires
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x