Vol de cartes au paiement : formjacking et Magecart
La boutique fonctionne. Les commandes arrivent, la banque verse l'argent, rien ne semble anormal. Et depuis des semaines ou des mois, quelqu'un d'autre collecte les données de carte de vos clients.
De quoi il s'agit
Le formjacking est le vol de ce qu'un client saisit dans un formulaire de paiement. Magecart est le nom donné aux groupes qui le pratiquent sur les boutiques en ligne depuis le milieu des années 2010, d'abord sur Magento puis sur toutes les plateformes.
L'attaque ne casse pas la boutique, car une boutique cassée est réparée. Elle change une petite chose dans le parcours de paiement et laisse tout le reste intact.
Les quatre façons de faire
1. L'adresse de paiement est changée
Votre boutique envoie le client vers la page de paiement de la banque. L'attaquant remplace cette adresse par une page à lui, d'apparence identique, souvent sur un domaine à une lettre près du vrai. Le client y saisit sa carte, puis il est renvoyé vers la vraie page de la banque, où le paiement se termine normalement. Le client croit l'avoir saisie deux fois. Vous voyez une commande payée.
2. Du code est ajouté à la page de paiement
Quelques lignes sont ajoutées à un fichier ou à un modèle de paiement de votre boutique. Elles copient tout ce qui est saisi dans les champs de carte et l'envoient ailleurs, pendant que le formulaire continue comme d'habitude.
3. Les réglages de paiement sont changés
Rien ne change dans les fichiers. L'attaquant modifie l'adresse de la passerelle de paiement ou les données du marchand enregistrées dans la base de données de la boutique, par l'administration ou directement.
4. Le script d'un tiers est modifié
Votre page de paiement charge un script d'une autre société, par exemple un outil de chat ou de statistiques. Cette société est piratée et le script est modifié sur son serveur. Rien n'a changé dans votre boutique.
Deux affaires rendues publiques
- British Airways, 2018. Du code ajouté à la page de paiement de la compagnie collectait les données de carte des clients. En 2020, l'autorité britannique de protection des données lui a infligé une amende de 20 millions de livres.
- Ticketmaster UK, 2018. Le code est arrivé par un outil de chat tiers présent sur la page de paiement. En 2020, la même autorité lui a infligé une amende de 1,25 million de livres.
Les grandes entreprises font la une. La même méthode est utilisée chaque jour sur de petites boutiques, là où personne ne regarde.
Pourquoi les outils habituels ne le voient pas
- L'antivirus cherche du code malveillant connu. Une adresse web modifiée n'est pas un virus.
- Le pare-feu bloque le trafic suspect. Une fois l'attaquant entré avec un mot de passe volé, la modification ressemble à un travail normal.
- Le scan externe, y compris le scan PCI trimestriel, regarde le serveur de l'extérieur. De l'extérieur, la boutique paraît en ordre.
- Vous voyez des commandes payées.
Comment les boutiques l'apprennent en général
- La banque ou le prestataire de cartes leur signale que des cartes utilisées dans leur boutique ont ensuite servi à des fraudes.
- Des clients écrivent qu'on leur a demandé leur carte deux fois, ou qu'ils voient des débits qu'ils ne reconnaissent pas.
- Elles ne l'apprennent jamais.
À ce stade, la modification est le plus souvent en place depuis longtemps. Suivent une enquête, une éventuelle suspension des paiements par carte, et la question de savoir s'il faut prévenir les clients et l'autorité de protection des données.
Ce que fait HachiGuard dans chaque cas
Détecté au contrôle suivant. Le fichier sain est remis en place automatiquement et vous êtes prévenu.
Détecté : toute modification d'un fichier de paiement est signalée, et les schémas de vol connus déclenchent une alerte critique. Restauré automatiquement lorsque la modification ajoute une destination inconnue.
Détecté et signalé comme critique lorsqu'une adresse inconnue apparaît. Les réglages ne sont pas rétablis automatiquement.
Couvert en partie. Notre contrôle externe remarque un nouveau domaine tiers sur vos pages publiques. Une modification faite à l'intérieur d'un script déjà présent, sur le serveur du tiers, n'est pas détectée.
Ce que vous devriez faire par ailleurs
- Gardez la plateforme et ses extensions à jour.
- Donnez à chaque administrateur son propre compte, avec un mot de passe fort et une connexion en deux étapes là où la plateforme la propose. Supprimez les comptes que personne n'utilise.
- Quand c'est possible, envoyez le client vers la page de paiement de la banque elle-même, au lieu de saisir la carte dans votre boutique.
- Chargez le moins possible de scripts tiers sur la page de paiement.