Quel est l'impact du typosquattage dans les gestionnaires de paquets des langages de programmation ?
Même l'armée n'est pas à l'abri

Le , par Stéphane le calme, Chroniqueur Actualités
Nikolai Philipp Tschacher, un étudiant allemand, a publié un mémoire de licence en système d’information à l’université de Hambourg (Allemagne) dans lequel il a parlé du typosquattage dans les gestionnaires de paquets des langages de programmation.

« Durant l’avènement du web 2.0, des langages de programmation de haut niveau comme Ruby, Node.js (JavaScript), Python, Perl et PHP ont gagné en popularité, ce qui a permis à plus de bibliothèques d’être hébergées sur des gestionnaires de paquets centralisés. Comme l’enseigne le typosquattage (mais aussi pour le cybersquattage ainsi que le squattage de domaine), la popularité des grands sites Web peut être utilisée à mauvais escient par des parties tierces en enregistrant des noms de domaine qui ressemblent à leurs domaines cibles, mais contiennent des fautes de frappe intentionnelles. Le même principe peut être appliqué aux gestionnaires de paquets : si un utilisateur a l'intention d'installer un logiciel populaire et se trompe dans l’orthographe du nom du paquet, un paquet squatté malveillant est téléchargé à la place, ce qui peut conduire à l'exécution de code (potentiellement avec des privilèges administratifs) », a-t-il expliqué en guise de préambule.

Et de continuer en disant que « ce travail va tenter de montrer que la même méthodologie employée pour le squattage de domaine peut être appliquée aux gestionnaires de paquets. L'objectif principal de ce travail est d'estimer les risques liés à de telles attaques. En outre, dans ce mémoire, nous essaierons de développer des contre-mesures simples et efficaces que les gestionnaires de paquets pourraient employer ».

Le typosquattage, qui est une forme de cybersquattage, se fonde principalement sur les fautes de frappe et d'orthographe commises par l'internaute au moment de saisir une adresse web dans un navigateur. Lorsqu’un internaute saisit accidentellement le nom mal orthographié dans sa barre d’adresse, les typos (erreurs) les redirigent vers des sites factices qui, dans bien des cas, imitent le site original tandis qu’ils tentent de télécharger un logiciel malveillant ou de récupérer des identifiants de l’utilisateur.

Se servant de cette méthode vieille d’une décennie (l’un des exemples que nous pouvons citer est « Goggle.com », une variante de Google qui était présente sur internet de 2006 à 2008), il a d’abord identifié 214 des paquets les plus téléchargés par les utilisateurs. Par la suite, il a effectué un upload de codes tests des 214 paquets dans trois communautés populaires de développeurs (notamment PyPI, RubyGems et NPM qui sont les communautés de développeurs Python, Ruby et JavaScript) en prenant le soin d’attribuer à chaque fois des noms qui étaient semblables à des paquets largement utilisés déjà présentés par d'autres utilisateurs. Le code de l’étudiant fournissait un avertissement qui informait les développeurs qu’ils avaient téléchargé le mauvais paquet. Mais, avant de le faire, le code envoyait une requête web à un ordinateur de l’université afin qu’il puisse garder une trace du nombre de fois où les codes tests avaient été téléchargés et s’ils avaient reçu des droits administrateurs (via un booléen). D'autres informations étaient également associées comme le système d'exploitation et le type d'architecture de l'hôte (exemple Linux-3.14.48), la liste des paquets installés avec le gestionnaire des paquets, les informations hardware de l'hôte ou encore l'historique de commande de l'utilisateur actuel et qui contient le gestionnaire de paquet comme substring.

Sur une période de plusieurs mois, son code factice été exécuté plus de 45 000 fois sur plus de 17 000 domaines distincts, et plus de la moitié du temps son code s’est vu octroyé des droits administrateur. Deux des domaines concernés se terminaient par « .mil », ce qui suggère que les personnes appartenant au corps de l'armée américaine ont exécuté son script.

« Il y avait également 23 domaines en .gov des institutions gouvernementales des États-Unis », a-t-il indiqué. Selon lui, « ce nombre est très alarmant, car la prise en charge des hôtes dans les laboratoires de recherche américains et les institutions gouvernementales peut avoir des conséquences potentiellement désastreuses pour eux ».

Les États-Unis ont été le pays qui a le plus été touché avec 5810 installations uniques, suivis par la Chine avec 2050 installations uniques et l'Allemagne avec 743 installations uniques. La France quant à elle figure en 8e position avec 469 installations uniques.


Selon Dan Rosenberg, senior researcher pour le compte d’Azimut Security, « je pense que nous sommes assez conscients du fait que si nous installons un module aléatoire tiers que personne n'a examiné et vous ne connaissez pas, il y a un risque inhérent parce qu'il peut tout faire ». « La nouveauté ici c’est que même si vous connaissez et avez confiance en un module, si vous faites une erreur vous pouvez encore exécuter un code non sécurisé ».

Parmi les contre-mesures que propose Tschacher aux gestionnaires de paquets figurent entre autres :
  • la prohibition de noms de paquets de base : ce travail a montré que la plupart des installations issues de typo sont dues à des utilisateurs qui essayent de réinstaller des noms standards de bibliothèque avec le gestionnaire de paquets. Donc, il est obligatoire pour chaque dépôt de paquet d'empêcher tout nom de module d'être enregistré par des utilisateurs tiers, qui a été une partie du langage de base à un moment donné dans le temps. Il arrive que des utilisateurs arrêtent de se servir d'un langage de développement pendant des années et, quand ils reviennent par la suite, ils essayent de se servir de bibliothèques dépréciées ou retirées. La première chose qu'ils essayent de faire est de réinstaller les fonctionnalités manquantes en se servant d'un gestionnaire de paquets ;
  • réduire le jeu de caractères dans les noms de paquets ;
  • empêcher l'exécution directe de code ou les installations ;
  • générer une liste de candidats potentiels de typo.

Source : Typosquatting in Programming Language Package Managers (mémoire au format PDF)


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de atha2 atha2 - Membre éprouvé https://www.developpez.com
le 15/06/2016 à 19:54
D'autres informations étaient également associées comme le système d'exploitation et le type d'architecture de l'hôte (exemple Linux-3.14.48), la liste des paquets installés avec le gestionnaire des paquets, les informations hardware de l'hôte ou encore l'historique de commande de l'utilisateur actuel et qui contient le gestionnaire de paquet comme substring.

Pas sur que les militaires cités dans l'article aient appréciés... Dans certain cas l'historique des commandes contient des mots de passe.
C'était bien censé être un PoC de virus sans aucun danger ?
Avatar de eclesia eclesia - Rédacteur https://www.developpez.com
le 15/06/2016 à 21:49
Ils vont surement mettre ca une Nième fois sur dos des chinois ou des russes.
Avatar de gagaches gagaches - Membre confirmé https://www.developpez.com
le 16/06/2016 à 0:02
Alors déjà, impressionné par le mémoire de Nikolai.
Je ne doute pas qu'il a un bel avenir dans la branche

L'historique de commande lié au mauvais repo, je peux comprendre : cela permet d'identifier les commandes passées et de comprendre ensuite le comportement qui a amené à faire cette install.

ça fait réfléchir.
je me demande l'impact possible sur les repos des distributions linux, les officiels et les "célèbres" comme SoftwareCollections.org ?
Avatar de TiranusKBX TiranusKBX - Expert confirmé https://www.developpez.com
le 17/06/2016 à 6:42
Citation Envoyé par atha2  Voir le message
Pas sur que les militaires cités dans l'article aient appréciés... Dans certain cas l'historique des commandes contient des mots de passe.
C'était bien censé être un PoC de virus sans aucun danger ?

Rien n'empèche de se faire un peut d'argent avec les données je supose ?
Avatar de StarCluster StarCluster - Futur Membre du Club https://www.developpez.com
le 17/06/2016 à 10:59
Citation Envoyé par gagaches  Voir le message
je me demande l'impact possible sur les repos des distributions linux, les officiels et les "célèbres" comme SoftwareCollections.org ?

A priori, ce ne devrait pas être possible pour les repos officiels des distributions. Il est censé y avoir des processus de validation/test des paquets. Après, si tu passe par un dépot comme le AUR d'ArchLinux ou les PPA non-officiel d'Ubuntu, tout devient possible. Mais là, c'est entièrement ta responsabilité, car non géré par les mainteneurs de la distrib.

C'est surtout les gestionnaires comme pip ou npm qui peuvent être touchés.
Avatar de gagaches gagaches - Membre confirmé https://www.developpez.com
le 17/06/2016 à 23:09
npm, ce vaste fourre-tout de plein de framworks pas encore finis de développés mais déjà en production ... (c'est encore dredi, pas taper )

bon, ça rassure un peu quand même côté repo officiels.
Offres d'emploi IT
Urbaniste des systèmes d'information H/F
Safran - Ile de France - Évry (89140)
ARCHITECTE CONTINUITE NUMERIQUE - Expert PLM H/F
Safran - Ile de France - Évry (91090)
Ingénieur support fonctionnel DELMIA Apriso H/F
Safran - Ile de France - Évry (91090)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil