Aller au contenu principal

Le QR code piégé (quishing) : un autocollant sur une table peut-il vous voler votre carte bancaire ?

Un petit carré noir et blanc collé sur le chevalet d'une table : « Commandez et payez ici ». Personne ne peut lire ce qu'il contient avant de le scanner. C'est précisément ce qui en fait un piège.

Petite vérification​

Avant de commencer, vérifiez si vous savez encore réaliser ces 3 actions très simples, sur la séance précédente consacrée à l'image qui cache un secret :

  1. dans le dossier ~/tp-image-secret (à recréer avec l'étape 1 de la séance précédente s'il n'existe plus), lancer ls -l logo_catalogue.gif logo_catalogue_recu.gif et lire la taille de chacun des deux fichiers
  2. citer la commande qui affiche le contenu d'une archive ZIP sans l'extraire
  3. expliquer pourquoi file annonce une image pour le fichier logo_catalogue_recu.gif, alors qu'il contient aussi une archive
📌 Réponse attendue

TP pour réfléchir et résoudre des problèmes​

Votre défi pour aujourd'hui consiste à lire le contenu de trois QR codes sans ouvrir leur lien, à repérer lesquels sont des pièges, puis à fabriquer vous-même un faux QR code pour mesurer à quel point c'est facile

info

Le restaurant « Le Bistrot du Port » et les trois QR codes de ce TP sont fictifs. Les adresses utilisées se terminent par .example, un nom réservé qui ne mène vers aucun site réel.

attention

Fabriquer un faux QR code, l'imprimer puis le coller dans l'espace public pour récupérer des données bancaires peut constituer une escroquerie (article 313-1 du code pénal). Dans ce TP, vous n'enregistrez les images que dans votre propre VM, et vous ne les imprimez jamais.

Vous êtes consultant(e) en sécurité pour le restaurant « Le Bistrot du Port ». Le gérant a reçu deux plaintes de clients dont la carte bancaire a été débitée après avoir « payé en ligne » depuis leur table. Il vous remet trois QR codes : celui de sa carte, celui d'un autocollant trouvé sur le chevalet de la table 7, et celui d'un prospectus glissé sous l'essuie-glace d'un client.

Étape 1 — Récupérer les trois images et installer les outils​

Dans le terminal de votre VM Debian, installez les outils de lecture et de création de QR codes, puis créez un dossier de travail :

sudo apt install zbar-tools qrencode
mkdir ~/tp-qrcode
cd ~/tp-qrcode

Reproduisez les trois images :

base64 -d > qr_1.png <<'EOF'
iVBORw0KGgoAAAANSUhEUgAAAJQAAACUAQAAAABdRz15AAAA/ElEQVR42u2WMQ7DMAwDhX5A//8l
f6Dy5G5dWphjHCNwPBAySdGp+RqqZ++fvapqaXq6WY5e9T1+3TNee5a6AeTrGq9c2Bw8L0N40mcZ
wVNDZqg+T3Hengh/iPoZEX0Zqy/ycuyEX+xEmUBEucVzabZzlbHUCTwYLOqryHkH89FutEmKP83i
ZfxiGcpWxoTqgB7oSiSYww7wZ5DaNBDGvudv2wLr2TeB+nhtJBwW7/FcoHhcnRJ5CsrmFmkwkfxb
n1TmvHNahIjZjkvk34qx+ZzpN5SwMJPiD3UpkT5O4J2EBjRzv1mITa6qyd1vOhon9IU4GiSh7/NP
eLH3BlEsgYUqqlKCAAAAAElFTkSuQmCC
EOF
base64 -d > qr_2.png <<'EOF'
iVBORw0KGgoAAAANSUhEUgAAAKQAAACkAQAAAAAxzrjsAAABMUlEQVR42u2Xu20AMQxDhSyg/bfk
BgofHaRKE4DpIl8hu+DpaOpzcz+Y5v+0dzoze2NPN2+jj/nJfnNq3PVjSHtSNi3c2dXotHvLpokL
qlm4Nq6X2VAVF+gZrbnYIr9I4NuKeohZaQMPT30dHmQKuDfUpiIuC25RGS9o8Stf2kVsCKOmBwXV
ZMgvIPAW7qPBQXvl7lrxbh4cLq+WF/58RAFwsrmWx3Cb/KBC1HighqEGhYfivbnu6ol4cHvxQm3y
Itqo6RcGNMlmynsrXrobaHC7RdwLVgrwRcq9+mss2xBykd9wEX098FqdTJ4h4HuR9/oFY0lEZq/Z
3zLqPIJ79eH140MPNPvuXDKZIb6EV8MFFFS6UBP3knIplNV5h86m1Mten3/zjpLQzb75/3/xh6ef
/MwgSV6vao0AAAAASUVORK5CYII=
EOF
base64 -d > qr_3.png <<'EOF'
iVBORw0KGgoAAAANSUhEUgAAAJQAAACUAQAAAABdRz15AAAA/UlEQVR42u1WwQ3EMAyybgH235IN
XHDSVz93F561IjXKA9kGm1Y/gvW+/fJWVegC7is/9Yxv3wQCnTIw53qOp9y6SDTmmsCrpnLM4Smo
kjN4PsYTaKJ/JnVHhF9HgTpYGjrEU+OW9mBOAnhtrQiPSrI60j/lZaRh5BiPxnS97mBAL1KdKlaS
/p7npwYqQW+EgT7nw8LzSjAxkXo5swbPcICP3lyoh0z0T1BtLmCSI3qZBbj0nNgHbpwAZ0wS+SlB
zwedY2y/eOG76sz8smZCIvO7/G05kjgJ+dGYcSHkl2tf2YFD/ru3IJjxN2xzS/jliG4Knb+OiP7e
/8Q/3y5254A7j4LopwAAAABJRU5ErkJggg==
EOF

Vérifiez les fichiers :

ls -l
file qr_1.png qr_2.png qr_3.png
  1. Quelle est la taille de chacun des trois fichiers ?
  2. Que vous apprend la commande file sur le contenu de ces QR codes ? Vous indique-t-elle où ils mènent ?
📌 Réponse attendue

Étape 2 — Lire le contenu sans ouvrir le lien​

L'outil zbarimg décode un QR code et affiche son contenu sans ouvrir de page :

zbarimg -q --raw qr_1.png
zbarimg -q --raw qr_2.png
zbarimg -q --raw qr_3.png
  1. Quelle adresse contient chacun des trois QR codes ?
  2. Le QR code a-t-il « fait » quelque chose d'autre que de contenir ce texte ?
📌 Réponse attendue

Étape 3 — Lire les adresses comme un attaquant les écrirait​

Le QR code n° 1 se trouve sur la carte du restaurant (le gérant en est l'auteur). Comparez-le aux deux autres.

  1. Quel est le nom de domaine réel de chacune des trois adresses ? (comme pour un e-mail de phishing : le domaine est le groupe de mots juste avant .example)
  2. Lequel de ces domaines appartient au restaurant ? Qu'est-ce qui distingue le n° 2 du n° 1 ?
  3. Les trois adresses commencent par https://. Cela suffit-il à les rendre fiables ?
📌 Réponse attendue

Étape 4 — Le cas du lien raccourci​

Le QR code n° 3 renvoie vers lien-court.example, un service qui raccourcit des adresses. Le prospectus promet « -50 % sur votre prochain repas : scannez ».

  1. Peut-on, en lisant https://lien-court.example/q7Kx2, savoir où le lien mène réellement ?
  2. Pourquoi les escrocs aiment-ils les liens raccourcis ?
  3. Quelle décision prenez-vous pour ce QR code ?
📌 Réponse attendue

Étape 5 — Fabriquer un faux QR code, côté attaquant​

Pour mesurer la facilité de l'opération, jouez maintenant le rôle de la personne qui fabrique l'autocollant. Créez l'image, puis relisez-la :

qrencode -o faux_chevalet.png 'https://www.bistrot-du-port-menu.example/paiement?table=7'
zbarimg -q --raw faux_chevalet.png
file faux_chevalet.png
attention

Cette image reste dans votre VM : vous ne l'imprimez pas, vous ne la partagez pas.

  1. Combien de temps et de matériel faut-il pour fabriquer ce faux QR code ?
  2. Le QR code contient-il une information qui prouve qui l'a créé ?
  3. Que doit encore faire un attaquant pour que son piège fonctionne dans la réalité ?
📌 Réponse attendue

Étape 6 — Conseiller le gérant​

Le gérant vous demande : « Comment vérifier tous les matins que mes QR codes sont les bons ? Que dire aux clients ? Et pour les deux qui se sont fait débiter, que leur conseiller ? » Quelle est votre réponse ?

Étape 7 — Un QR code qui contient autre chose qu'une adresse (pour aller plus loin, facultatif)​

Un QR code peut aussi contenir les identifiants d'un réseau Wi-Fi. Créez-en un, puis relisez-le :

qrencode -o wifi.png 'WIFI:T:WPA;S:Bistrot-Invites;P:motdepasse123;;'
zbarimg -q --raw wifi.png
  1. Quel texte affiche zbarimg ?
  2. Quelle action un téléphone peut-il proposer, ou réaliser, en lisant ce QR code ?
  3. Quel risque cela présente-t-il si le QR code a été collé par un inconnu ?
📌 Réponse attendue

Restitution orale​

Un étudiant (ou un binôme) vient présenter à la classe l'analyse des trois QR codes (étapes 2 à 4) et les conseils donnés au gérant (étape 6).

  • Durée : 5 minutes de présentation + 2 à 3 minutes de questions.
  • Qui passe : un(e) étudiant(e) (ou un binôme) désigné(e) par l'enseignant.
  • Support : le travail réalisé pendant le TP, aucune préparation supplémentaire n'est nécessaire.
  • Ce qui est attendu :
    • rappeler le contexte (les plaintes des clients du restaurant) et le verdict sur chaque QR code ;
    • présenter la démarche suivie (décodage, lecture du domaine, raccourci) et les conseils donnés ;
    • répondre aux questions de la classe.
astuce

Cet exercice entraîne à l'oral technique court exigé par plusieurs épreuves du BTS (notamment E5 et E6) : clarté, structure, capacité à répondre à l'improviste.

📌 Une solution

Notions théoriques​

Vous venez de décoder trois QR codes sans en ouvrir un seul lien. Voyons ce que contient un QR code, pourquoi il est devenu un outil d'escroquerie, et comment s'en protéger.

Ce qu'est un QR code​

Un QR code est une manière d'écrire un texte sous forme d'image, de façon qu'un téléphone puisse le lire très vite. Le plus souvent, ce texte est une adresse web (URL), mais il peut aussi être :

ContenuExempleCe que fait le téléphone
Adresse webhttps://www.exemple.example/menuPropose d'ouvrir la page
Réseau Wi-FiWIFI:T:WPA;S:nom;P:motdepasse;;Propose de se connecter au réseau
Numéro de téléphonetel:+33102030405Propose d'appeler
MessageSMSTO:+33102030405:textePrépare un SMS
Carte de visitecontact (vCard)Propose d'enregistrer le contact

Un QR code ne possède aucun mécanisme de sécurité : ni signature, ni preuve d'auteur, ni chiffrement. Deux QR codes, l'un légitime et l'autre piégé, sont impossibles à distinguer à l'œil.

Le quishing​

Le quishing (de QR et phishing) est une attaque de phishing dans laquelle le lien piégé est présenté sous forme de QR code. Plusieurs raisons expliquent son succès :

  • L'opacité : on ne peut pas lire une adresse dans un carré noir et blanc, donc on ne peut pas la juger avant de la scanner.
  • Le contexte physique : un QR code posé sur une table, un horodateur ou une affiche donne une impression de confiance.
  • Le téléphone personnel : l'ouverture se fait sur un appareil généralement moins protégé qu'un poste professionnel.
  • L'image : un QR code envoyé par e-mail n'est pas du texte, ce qui peut déjouer certains filtres qui examinent les liens.

Cette attaque se distingue de la séance sur le phishing : là, on lisait une URL dans un e-mail. Ici, le piège arrive hors e-mail, et l'adresse n'est même pas visible.

info

Les variantes les plus courantes : autocollant collé par-dessus un vrai QR code (horodateur, borne de recharge, menu de restaurant), faux courrier d'amende, prospectus sous un essuie-glace, e-mail avec un QR code censé « sécuriser » un compte.

Repérer un QR code suspect​

IndicePourquoi c'est un signal d'alerte
Autocollant superposéUn QR code d'origine est imprimé sur le support, pas collé par-dessus
Domaine inattenduUn nom proche de celui de l'organisation (ajout d'un mot, d'un tiret)
Lien raccourciLa destination est masquée
Promesse trop belle ou urgenceMécanisme classique de l'ingénierie sociale
Demande de données bancaires ou d'identifiantsUn paiement légitime passe par le domaine officiel
Support anonymeProspectus, courrier sans expéditeur identifiable
attention

Le cadenas et le préfixe https:// indiquent seulement que la connexion est chiffrée, pas que le site est honnête.

Se protéger​

Pour un utilisateur :

  • Lire l'adresse affichée par le téléphone avant d'ouvrir la page : la plupart des lecteurs montrent l'URL avant de l'ouvrir.
  • Vérifier le nom de domaine en le lisant de droite à gauche.
  • Ne jamais saisir de données bancaires ou d'identifiants sur une page atteinte par un QR code non vérifié : saisir soi-même l'adresse connue du site, ou utiliser l'application officielle.
  • Se méfier d'un autocollant et le signaler.

Pour une organisation :

  • Imprimer les QR codes sur le support plutôt que de les coller, et les contrôler à intervalles réguliers.
  • Afficher l'adresse en clair à côté de chaque QR code.
  • Sensibiliser les salariés et les clients.
  • Utiliser un domaine à son nom, facile à reconnaître, et le déclarer.
Pour aller plus loin

Une organisation peut faire contrôler ses QR codes par une personne qui connaît les bons domaines (pour les affiches, les menus, les bornes de paiement). L'analyse de ce TP, décoder puis lire le domaine, est exactement le réflexe d'un contrôle de ce type.


Test de mémorisation/compréhension​


Qu'est-ce que le quishing ?


Que contient, le plus souvent, un QR code que l'on scanne ?


Un QR code d'un chevalet pointe vers https://www.bistrot-du-port-menu.example/paiement. Le restaurant possède bistrot-du-port.example. Que faut-il en conclure ?


Que garantit le préfixe https:// devant l'adresse d'un site ?


Pourquoi un lien raccourci complique-t-il l'analyse d'un QR code ?


Quel outil, utilisé dans ce TP, décode un QR code à partir d'une image sans ouvrir la page ?


Un client doit payer sa note. Quel est le bon réflexe face à un QR code collé sur la table ?


Quelle mesure permet à un restaurant de limiter le risque d'un autocollant posé sur ses QR codes ?



Bonnes pratiques​

  • Considérer un QR code comme une adresse qu'on ne peut pas lire : décoder ou afficher l'adresse avant d'ouvrir la page.
  • Lire le nom de domaine en entier : un mot ajouté ou un tiret en plus donne un autre domaine.
  • Ne pas se fier à https:// : il indique un chiffrement, pas l'honnêteté du site.
  • Se méfier des liens raccourcis et des promesses trop belles ou urgentes.
  • Ne jamais saisir de données bancaires ou d'identifiants après un QR code non vérifié : passer par l'adresse officielle ou l'application.
  • Contrôler ses propres QR codes et les imprimer sur le support plutôt que de les coller.
  • Signaler un autocollant suspect à l'organisation concernée.