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 :
- dans le dossier
~/tp-image-secret(à recréer avec l'étape 1 de la séance précédente s'il n'existe plus), lancerls -l logo_catalogue.gif logo_catalogue_recu.gifet lire la taille de chacun des deux fichiers - citer la commande qui affiche le contenu d'une archive ZIP sans l'extraire
- expliquer pourquoi
fileannonce une image pour le fichierlogo_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
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.
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
- Quelle est la taille de chacun des trois fichiers ?
- Que vous apprend la commande
filesur 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
- Quelle adresse contient chacun des trois QR codes ?
- 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.
- 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) - Lequel de ces domaines appartient au restaurant ? Qu'est-ce qui distingue le n° 2 du n° 1 ?
- 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 ».
- Peut-on, en lisant
https://lien-court.example/q7Kx2, savoir où le lien mène réellement ? - Pourquoi les escrocs aiment-ils les liens raccourcis ?
- 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
Cette image reste dans votre VM : vous ne l'imprimez pas, vous ne la partagez pas.
- Combien de temps et de matériel faut-il pour fabriquer ce faux QR code ?
- Le QR code contient-il une information qui prouve qui l'a créé ?
- 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
- Quel texte affiche
zbarimg? - Quelle action un téléphone peut-il proposer, ou réaliser, en lisant ce QR code ?
- 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.
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 :
| Contenu | Exemple | Ce que fait le téléphone |
|---|---|---|
| Adresse web | https://www.exemple.example/menu | Propose d'ouvrir la page |
| Réseau Wi-Fi | WIFI:T:WPA;S:nom;P:motdepasse;; | Propose de se connecter au réseau |
| Numéro de téléphone | tel:+33102030405 | Propose d'appeler |
| Message | SMSTO:+33102030405:texte | Prépare un SMS |
| Carte de visite | contact (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.
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
| Indice | Pourquoi c'est un signal d'alerte |
|---|---|
| Autocollant superposé | Un QR code d'origine est imprimé sur le support, pas collé par-dessus |
| Domaine inattendu | Un nom proche de celui de l'organisation (ajout d'un mot, d'un tiret) |
| Lien raccourci | La destination est masquée |
| Promesse trop belle ou urgence | Mécanisme classique de l'ingénierie sociale |
| Demande de données bancaires ou d'identifiants | Un paiement légitime passe par le domaine officiel |
| Support anonyme | Prospectus, courrier sans expéditeur identifiable |
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.
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
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.