Les chercheurs ont découvert une porte dérobée malveillante dans un outil de compression qui a fait son chemin dans des distributions Linux largement utilisées, notamment celles de Red Hat et Debian.
L’utilitaire de compression, connu sous le nom de xz Utils, a introduit le code malveillant dans les versions 5.6.0 et 5.6.1, selon Andres Freund, le développeur qui l’a découvert. Il n’existe aucun rapport connu faisant état de l’incorporation de ces versions dans des versions de production pour les principales distributions Linux, mais Red Hat et Debian ont signalé que les versions bêta récemment publiées utilisaient au moins une des versions dérobées – en particulier, dans les tests Fedora Rawhide et Debian, unstable. et distributions expérimentales. Une version stable d’Arch Linux est également affectée. Cette distribution n’est cependant pas utilisée dans les systèmes de production.
Étant donné que la porte dérobée a été découverte avant que les versions malveillantes de xz Utils ne soient ajoutées aux versions de production de Linux, « cela n’affecte vraiment personne dans le monde réel », a déclaré Will Dormann, analyste principal des vulnérabilités chez la société de sécurité Analysgence, dans une interview en ligne. « MAIS c’est uniquement parce que cela a été découvert tôt à cause de la négligence d’un mauvais acteur. S’il n’avait pas été découvert, cela aurait été catastrophique pour le monde. »
Plusieurs personnes, dont deux lecteurs Ars, ont signalé que les multiples applications incluses dans le gestionnaire de packages HomeBrew pour macOS reposent sur la version 5.6.1 dérobée de xz Utils. HomeBrew a maintenant ramené l’utilitaire à la version 5.4.6. Les responsables ont plus de détails disponibles ici.
Ciblage de sshd
Les premiers signes de la porte dérobée ont été introduits dans une mise à jour du 23 février qui ajoutait du code obscurci, ont déclaré des responsables de Red Hat dans un e-mail. Une mise à jour du lendemain incluait un script d’installation malveillant qui s’injectait dans les fonctions utilisées par sshd, le fichier binaire qui fait fonctionner SSH. Le code malveillant réside uniquement dans les versions archivées, appelées archives tar, qui sont publiées en amont. Le code dit GIT disponible dans les référentiels n’est pas affecté, bien qu’ils contiennent des artefacts de deuxième étape permettant l’injection pendant le temps de construction. Dans le cas où le code obscurci introduit le 23 février est présent, les artefacts de la version GIT permettent à la porte dérobée de fonctionner.
Les modifications malveillantes ont été soumises par JiaT75, l’un des deux principaux développeurs de xz Utils avec des années de contribution au projet.
« Compte tenu de l’activité qui s’est déroulée sur plusieurs semaines, soit le responsable du commit est directement impliqué, soit son système a été gravement compromis », a écrit Freund. « Malheureusement, cette dernière explication semble la moins probable, étant donné qu’ils ont communiqué sur diverses listes à propos des ‘correctifs' » fournis dans les mises à jour récentes. Ces mises à jour et correctifs peuvent être trouvés ici, ici, ici et ici.
Jeudi, quelqu’un utilisant le nom du développeur s’est rendu sur un site de développement pour Ubuntu pour demander que la version 5.6.1 de porte dérobée soit incorporée dans les versions de production, car elle corrigeait des bogues qui provoquaient le dysfonctionnement d’un outil connu sous le nom de Valgrind.
« Cela pourrait interrompre les scripts de construction et les pipelines de test qui attendent une sortie spécifique de Valgrind pour réussir », a prévenu la personne, à partir d’un compte créé le même jour.
L’un des responsables de Fedora a déclaré vendredi que le même développeur l’avait approché ces dernières semaines pour lui demander que Fedora 40, une version bêta, intègre l’une des versions utilitaires dérobées.
« Nous avons même travaillé avec lui pour résoudre le problème de valgrind (qui, il s’avère maintenant, était dû à la porte dérobée qu’il avait ajoutée) », a déclaré le responsable d’Ubuntu. « Il fait partie du projet xz depuis deux ans, ajoutant toutes sortes de fichiers de test binaires, et avec ce niveau de sophistication, nous nous méfierions des versions encore plus anciennes de xz jusqu’à preuve du contraire. »
Les responsables de xz Utils n’ont pas immédiatement répondu aux e-mails posant des questions.
Les versions malveillantes, selon les chercheurs, interfèrent intentionnellement avec l’authentification effectuée par SSH, un protocole couramment utilisé pour se connecter à distance aux systèmes. SSH fournit un cryptage robuste pour garantir que seules les parties autorisées se connectent à un système distant. La porte dérobée est conçue pour permettre à un acteur malveillant de rompre l’authentification et, à partir de là, d’obtenir un accès non autorisé à l’ensemble du système. La porte dérobée fonctionne en injectant du code lors d’une phase clé du processus de connexion.
« Je n’ai pas encore analysé précisément ce qui est vérifié dans le code injecté pour permettre un accès non autorisé », a écrit Freund. « Comme cela s’exécute dans un contexte de pré-authentification, il semble probable qu’il autorise une certaine forme d’accès ou une autre forme d’exécution de code à distance. »
[Update: Researchers who spent the weekend reverse engineering the updates say that the backdoor injected malicious code during SSH operations, rather than bypassed authenticatiion.]
Dans certains cas, la porte dérobée n’a pas pu fonctionner comme prévu. L’environnement de build sur Fedora 40, par exemple, contient des incompatibilités qui empêchent l’injection de se dérouler correctement. Fedora 40 est désormais revenu aux versions 5.4.x de xz Utils.
Xz Utils est disponible pour la plupart, sinon toutes, les distributions Linux, mais toutes ne l’incluent pas par défaut. Toute personne utilisant Linux doit immédiatement vérifier auprès de son distributeur si son système est affecté. Freund a fourni un script pour détecter si un système SSH est vulnérable.