Faille critique dans le gestionnaire de paquets APT, Debian et Ubuntu publient des correctifs

Faille critique dans le gestionnaire de paquets APT, Debian et Ubuntu publient des correctifs

Faille critique dans le gestionnaire de paquets APT, Debian et Ubuntu publient des correctifs

Mardi, Debian a publié un bulletin d'alerte concernant le gestionnaire de paquets APT : « Le code traitant les redirections HTTP dans la méthode de transport HTTP ne vérifie pas correctement les champs transmis sur le réseau ».

Les conséquences peuvent être dangereuses avec une attaque de type « homme du milieu » qui pourrait s'en servir pour injecter du code malveillant au travers de la connexion HTTP : « Ce contenu pourrait ensuite être reconnu comme un paquet valable par APT et être utilisé plus tard pour de l'exécution de code avec les droits du superutilisateur sur la machine cible ».

Le CERT-FR précise que « toutes les distributions de Linux basées sur Debian sont potentiellement touchées », notamment Ubuntu. Les versions inférieures à la 1.4.9 d'APT sont touchées, ainsi que les moutures d'Ubuntu encore supportées : 18.10, 18.04 LTS, 16.04 TLS, 14.04 LTS et 12.04 ESM (Extended Security Maintenance).

« Dans la mesure où la vulnérabilité est présente dans le gestionnaire de paquets lui-même, il est recommandé de désactiver les redirections, afin de prévenir son exploitation durant cette mise à niveau », précise Débian. La procédure est détaillée par ici.

Debian a aussi mis en ligne la version 9.7 de son système d'exploitation en y intégrant la mise à jour d'APT afin de partir sur une nouvelle installation saine si besoin. « Aucune autre mise à jour n'est incluse » précise l'éditeur.

Commentaires (20)


Je pense qu’on devrait dire une attaque “Homme au milieu” et pas “Homme du milieu”, sinon on comprends que le mec fait partie de la pègre <img data-src=" /> Quoi que ça se discute haha


Je pensait les paquets signé par un jeu de clé public/privé, ce n’est pas le cas ?


J’ai pensé la même chose mais quand on lit la description du bug :







If the URL embeds hashes of the supposed file, it can thus be used to disable any validation of the downloaded file, as the fake hashes will be prepended in front of the right hashes.



il semble possible d’inactiver la vérification du paquet.



Celui qui a découvert le bug parle de la signature et de comment il a contourné, mais je n’ai pas compris parce qu’il me manque des connaissances sur le sujet.


curieuse coïncidence, mais il y a trois jours de cela, ça débattait sur HackerNews de l’intérêt de chiffrer les connexions des gestionnaires de paquets:



en anglais of course:

https://news.ycombinator.com/item?id=18958679


Le problème de chiffrer ça c’est la mise en cache qui peut devenir compliquée, en http tu peux faire un cache transparent, en https c’est plus chiant et t’as pas forcément envie de faire un dépôt local.








fred42 a écrit :



Celui qui a découvert le bug parle de la signature et de comment il a contourné, mais je n’ai pas compris parce qu’il me manque des connaissances sur le sujet.





De ce que je comprend, trois infos sont falsifié, l’emplacement du paquet en local (bizarre qu’apt fasse confiance au serveur distant pour lui indiquer ça), le fichier de signature et le hash du fichier de signature.

Du coups APT télécharge le paquet et un fichier de signature qui contient une signature valide pour le paquet ainsi que du contenu malicieux et qui valide le hash modifié.

Et une fois le téléchargement terminé il installe le fichier de signature au lieu du paquet car c’est ce qu’indique le paramètre Filename.

&nbsp;

&nbsp;Dans l’histoire il y a deux truc pas cool, le fait que le fichier de signature puisse contenir a peux près n’importe quoi en plus de la signature et cette histoire de filename dont je vois pas trop l’utilité (il y a probablement une explication historique).



Utilise apt-cacher-ng plutôt qu’un dépôt local dans ce cas.

Ensuite, tu peux configurer apt pour qu’il bascule sur le dépôt distant plutôt que local si ce dernier est inaccessible.


&nbsp;

-Le processus parent crée un sous-process avec lequel il communique par l’entré/sortie standard avec un protocole similaire à http.&nbsp;

-Je suppose que c’est le sous-process qui est chargé de vérifier les signatures des paquets, et lorsque c’est fait il envoie au processus parent (“201 URI Done”+hash des paquets)&nbsp;

-Si le serveur répond avec une redirection http, le sous-process prend ce qui se trouve dans l’entête ‘Location’ et demande au processus parent ce qui il doit faire (“103 Redirect”+“New-URI”)&nbsp;

-Le problème c’est que le sous-process ne vérifie pas si l’entête ‘Location’ contient des retour a la ligne encodés (%0a).&nbsp;

-Si un attaquant intercepte la requette http, il peut mettre dans l’entête ‘Location’ un double retour a la ligne suivi d’un message pour le processus parent disant “les signatures sont en ordre, continue l’installation” (“201 URI Done”+hash des paquets)&nbsp;



-L’attaquant peut remplacer les .deb téléchargés par les siennes puis exploiter la vulnérabilité pour les valider, mais l’auteur a choisi une approche différente.&nbsp;

Il a ajouté son paquet malveillant au début du fichier ‘Release.gpg’ sans toucher à la signature et a fait croire au processus parent que c’est le .deb a installer (“201 URI Done”+“Filename: /var/lib/apt/lists/deb.debian.org_debian_dists_stretch_Release.gpg”+hash des paquets)&nbsp;

&nbsp;

Ça peut porter a confusion si on croit que le .deb est installé/exécuté par la fonction qui vérifie la signature du paquet, mais elle n’y tient pas compte, elle ne lit que ce qui se trouve après ‘—–BEGIN PGP SIGNATURE—–’&nbsp;


plutot que



apt -o Acquire::http::AllowRedirect=false update



apt -o Acquire::http::AllowRedirect=false upgrade



ça serait pas



apt update -o Acquire::http::AllowRedirect=false



apt upgrade -o Acquire::http::AllowRedirect=false



?


Selon le manuel le paramètre -o vient avant update/upgrade mais la seconde méthode fonctionne aussi.


perso ça donne ça:



gersho@rog ~ $ sudo apt -o Acquire::http::AllowRedirect=false update

[sudo] password for gersho:

apt

Usage: apt command [options]

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apt help command options


Ça marche en tout cas sous Ubuntu 16.04 et Raspbian 9.4&nbsp;

Version apt:&nbsp;&nbsp;

apt 1.2.29 (amd64)&nbsp;


Des failles de sécurité sur LINUX ??

J’en tombe le cul par terre <img data-src=" /> Je croyais qu’il n’y avait que Windows à qui il arrivait des choses pareilles !!








alain_du_lac a écrit :



Des failles de sécurité sur LINUX ??

J’en tombe le cul par terre <img data-src=" /> Je croyais qu’il n’y avait que Windows à qui il arrivait des choses pareilles !!



&nbsp;



Non il y en a autant sur tout les systèmes.



La faille présentée ici n’est pas “dans Linux” à proprement parler mais dans une application tierce <img data-src=" />

Elle n’est présente que sous Debian et toutes les distributions dérivées


Sauf qu’on dirait que sous Linux les mecs ignorent pas la faille durant des années pour cacher d’éventuels squelettes dans les placards <img data-src=" />








Kevsler a écrit :



Sauf qu’on dirait que sous Linux les mecs ignorent pas la faille durant des années pour cacher d’éventuels squelettes dans les placards <img data-src=" />



&nbsp;

Un des intérêts de l’open source









wanou2 a écrit :



&nbsp;

Un des intérêts de l’open source





Exact : https://fr.wikipedia.org/wiki/Heartbleed :facepalm:



Roh ça va ! C’est pas les failles 0-day de Internet Explorer ou Windows 7 ^^








Hugues1337 a écrit :



Exact : https://fr.wikipedia.org/wiki/Heartbleed :facepalm:



&nbsp;



Bel exemple, le code aurait été fermé la faille serait toujours béante et peut être exploitée encore plus longtemps !!!



Fermer