Stefan Gloor : crack des terminaux bancaires Suisse
-
Vous voulez savoir comment un simple étudiant en informatique a réussi à transformer un terminal de paiement en passoire pour hackers ?
Stefan Gloor a en effet réussi à obtenir un accès root complet sur le terminal Worldline Yomani XR, qui est vous savez, cette petite machine noire qu’on voit absolument partout en Suisse, des gros supermarchés Migros au petit garage du coin.
Alors l’histoire commence comme un bon vieux film de hacking… Stefan qui est du genre curieux se procure un terminal Yomani XR, se dit “Tiens, et si je regardais ce qu’il y a dedans ?”, et découvre avec surprise que ce qui était censé être une forteresse ressemble plutôt à un gruyère (Comment ça y’a pas de trou dans le Gruyère ??? ^^). Breeeeef, ce terminal, qui gère des millions de transactions quotidiennes avec la certification PCI 5.x la plus stricte, cache en réalité un système Linux complètement exposé et explosé.
Pour percer les défenses du terminal, Stefan a d’abord essayé l’approche classique : scan de ports, tentatives de connexion réseau…etc bref tout ce qu’un bon hacker fait d’habitude.
Résultat ? Que dalle.
Le terminal semblait hermétique à ses techniques comme un adepte de la Terre Plate à la science. Alors notre chercheur a sorti les gros moyens à savoir démonter TOTALEMENT la machine. Et là, surprise ! Le Yomani XR embarque des protections anti-tamper vraiment vicieuses telles que des pistes de cuivre en zigzag qui parcourent toute la carte mère et si vous cassez une seule d’entre-elles en perçant un trou, boom, détection de sabotage immédiate.
Y’a même des connecteurs ultra-sensibles à la pression entre les cartes ce qui fait que desserrer quelques vis suffit à déclencher l’alarme. Sans compter la batterie (pile bouton) qui maintient la surveillance même quand l’appareil est éteint.
Bref, ça ressemble à Mission Impossible (vu que c’est d’actu en ce moment), mais Stefan n’est pas du genre à se laisser impressionner par quelques protections hardware. Quand son terminal a affiché l’écran rouge de la mort qui tue “TAMPER DETECTED”, au lieu de jeter l’éponge, il a carrément dessoudé la puce de stockage pour l’analyser en mode “chip-off”. Voici ce que ça donne : une puce BGA montée à l’envers sur un circuit imprimé de fortune, avec des fils de cuivre ultra-fins soudés à la main pour la connecter à un lecteur de flash. Du bricolage qui dépasse largement mon niveau Bac+MacGyver.
Et première surprise, le contenu de la mémoire flash était non-chiffré. Mais en plus, le layout était totalement custom car au lieu du classique 2048 bytes + 64 bytes ECC standard, Worldline a bidouillé un format exotique avec 3 chunks de 694 bytes suivis de 10 bytes ECC chacun. Oui, je sais c’est un peu technique, mais faîtes semblant de comprendre comme quand vous êtes au boulot ^^.
Stefan a donc dû développer son propre outil pour décoder ce format propriétaire et extraire le système de fichiers YAFFS2 modifié. YAFFS2 est normalement conçu pour la flash NAND embarquée, mais là, Wordline avaient aussi patché le système pour fonctionner avec des structures metadata réduites.
Bref, une fois le contenu extrait, Stefan a découvert le pot aux roses (et pas le poto rose) à savoir un Linux complet qui tourne là-dedans bien au chaud ! Je vous parle d’un kernel 3.6 compilé avec Buildroot 2010.02 en février 2023, soit un système basé sur des outils vieux de 13 ans pour du code compilé récemment.
Et ce qui est inquiétant, c’est l’architecture du système. Stefan a en effet identifié que le terminal utilisait une séparation entre un processeur “non sécurisé” qui gère Linux, le réseau et la logique métier, et un processeur “sécurisé” qui s’occupe des données de carte, du PIN et de l’affichage. Du coup, si vous contrôlez le côté Linux, vous avez potentiellement un pied dans la place pour attaquer le côté sécurisé.
L’ironie de l’histoire, c’est que tous ces terminaux sont censés respecter les normes PCI DSS les plus strictes. Ce sont des standards qui imposent des inspections physiques régulières pour détecter les modifications, des mécanismes de détection de sabotage, et des protections contre le remplacement non autorisé, sauf que si le firmware lui-même contient une backdoor involontaire sous forme de root shell accessible, alors toutes ces protections physiques ne servent plus à grand-chose.
Stefan précise bien qu’il n’a pas pu extraire de données sensibles comme les numéros de carte ou les codes PIN car ces informations sont probablement traitées par le processeur sécurisé séparé, mais l’existence même de cet accès root sur le système principal représente une “surface d’attaque massive et inutile” selon ses propres termes.
Alors quid de la sécurité de l’écosystème de paiement suisse (et ailleurs…) ? Si un étudiant motivé peut obtenir un accès root sur ces terminaux avec “juste” du matériel home lab et beaucoup de patience, qu’est-ce qui empêche des attaquants mieux financés et plus déterminés de faire pareil ? D’autant que ces terminaux Yomani XR sont connectés en permanence à Internet pour leurs mises à jour nocturnes automatiques faites par Worldline.
Stefan soupçonne que ce shell root accessible est probablement un outil de debug qui a accidentellement été laissé dans le firmware de production…. C’est effectivement le genre d’erreur qui arrive quand les équipes de développement oublient de nettoyer leur code avant de le livrer mais quand votre “petit oubli” concerne des milliers de terminaux qui gèrent des millions de transactions financières quotidiennes, l’erreur devient un gros problème de sécurité !
Voilà, une fois de plus, cette histoire illustre parfaitement le fossé qui existe entre la sécurité “théorique” des certifications et la réalité du terrain. Car oui, les terminaux Yomani XR cochent bien toutes les cases des standards industriels, et passent bien tous les audits de sécurité, et pourtant, ça ne les empêche pas de renfermer une vulnérabilité fondamentale que personne n’avait, ne serait ce que penser à chercher.
Bravo Stefan !
– Sources :
https://stefan-gloor.ch/yomani-hack
https://korben.info/hack-terminal-bancaire-yomani-xr-suisse.html
-
Je confirme qu’il n’y a pas de trou dans le gruyère, par contre pour les terminaux, je ne sais pas.
Ce qui est sûr, c’est qu’il ne me manque pas un rond (et y’a pas intérêt), le programme d’e-banking m’envoie une notif au moindre franc retiré ou ajouté.
-
@duJambon a dit dans Stefan Gloor : crack des terminaux bancaires Suisse :
Je confirme qu’il n’y a pas de trou dans le gruyère
Voici la première machine en pleine étape de test (machine que l’on peut voir aujourd’hui au musée historique de Bâle)
Machine que je ne présente plus, présente partout chez tous les fromagers du monde :
-
@Psyckofox ChatGPT ?
-
Ah ! Les fameux trous de Bâle !
-