Applications, sites et API

Particuliers et entreprises

Vol de données dans une page de paiement

Web skimming / E-skimming

Un script de paiement compromis copie les données saisies par le client.

Révision éditoriale : Comprendre : 2 min · Cas technique et détails : 5 min
Je pense être concerné : que faire ?
Illustration pédagogique : vol de données dans une page de paiement.

Comprendre et agir

À la fin de cette lecture, vous pourrez expliquer le piège et choisir une première réaction adaptée à votre rôle. Aucun prérequis informatique n’est nécessaire.

Une situation concrète

Un acheteur saisit sa carte sur une boutique connue. Un script ajouté à la page copie certains champs au moment de la saisie. Le paiement peut se dérouler normalement, ce qui rend le vol difficile à remarquer.

Comment cela fonctionne

Le web skimming est une collecte clandestine de données dans une page web, souvent au moment du paiement. Le code peut venir d’un site compromis, d’une bibliothèque tierce ou d’un gestionnaire de balises détourné. La fraude ne nécessite pas toujours de modifier le serveur de paiement lui-même : elle peut cibler l’écran que voit l’acheteur.

Comment le piège fonctionne
  1. La page reçoit un code intrus

    Site ou composant compromis.

  2. La saisie est copiée

    Souvent pendant un achat.

  3. Les données partent ailleurs

    Le paiement peut rester normal.

Ce que vous pouvez faire

Vos premiers réflexes

Surveillez vos opérations bancaires et contactez la banque si des données de carte ont été exposées. Un vol dans une page de paiement peut ne laisser aucun signe visible pendant l’achat.

Si vous êtes responsable du service ou de l’organisation

Commerçants : inventoriez les scripts réellement chargés sur la page de paiement et leurs destinations. Protégez aussi les comptes des prestataires capables de modifier cette page.

Le détail qui change toutUne idée reçue à corriger

Un paiement réussi et une connexion HTTPS ne prouvent pas que les données n’ont pas été copiées dans le navigateur.

À vous de décider

Le paiement a réussi sur le vrai site en HTTPS. Les données ont-elles pu être copiées ?

Choisissez votre réponse et expliquez pourquoi avant de lire la correction.

Voir la réponse expliquée

Oui. Un script compromis dans la page peut les copier avant leur envoi prévu. HTTPS protège le transport, pas les actions du code autorisé à lire le formulaire.

Analyser un cas technique

Pour les personnes qui développent, administrent ou analysent les systèmes concernés. Commencez par « Comprendre et agir » si ces notions sont nouvelles pour vous.

Étude de cas fictive

Un script ajouté à la page de paiement collecte des données

Le web skimming consiste à récupérer des données saisies dans le navigateur, souvent sur une page de paiement. L’attaquant peut modifier le site, une dépendance JavaScript ou un gestionnaire de tags. Le serveur de paiement n’a pas nécessairement été compromis : la collecte peut avoir lieu avant l’envoi prévu.

Dans ce cas, le fichier principal du site n’a pas changé, mais une révision du gestionnaire de tags ajoute un script. Surveiller uniquement le dépôt de l’application aurait donc manqué cette modification. Il faut inventorier ce que le navigateur charge réellement, avec les versions, les origines et les destinations réseau.

La présence d’un script nouveau ne prouve pas qu’il a lu des numéros de carte. Examiner les champs auxquels il peut accéder et les requêtes qu’il émet. Si les données sont saisies dans une iframe d’une autre origine, la page parente ne peut normalement pas lire son contenu ; elle peut toutefois ajouter un faux formulaire ou modifier le parcours autour de cette iframe.

Retirer le script coupe la collecte visible, mais il faut également reprendre le contrôle du compte ou du canal qui l’a publié. La période d’exposition dépend des versions effectivement servies, y compris celles conservées dans les caches.

Le déroulement en schéma

Qui échange avec quiLisez les échanges de haut en bas. Le point marque le départ et la flèche l’arrivée. Les vérifications après correction ne sont pas la suite de l’attaque.

Faites défiler le diagramme pour suivre les échanges ; les noms des acteurs restent en haut. Sur petit écran, faites aussi défiler de gauche à droite.

Étape
Publication tiersCompte de balises
Page marchandeOrigine boutique
Champ prestataireOrigine isolée
Destination externeCollecte non autorisée
  1. Action

    Ajout de code HTML dans le gestionnaire de balises

    Publication tiers vers Page marchande

    Trace rev89

  2. Action sur place

    Chargement de collect.js

    Page marchande

    Trace Inventaire navigateur

  3. Action

    Affichage des champs hébergés

    Page marchande vers Champ prestataire

    Trace Frontière d’origine

  4. Action

    Envoi des champs accessibles au parent

    Page marchande vers Destination externe

    Trace email / address

  5. Refus / blocage

    DOM du prestataire non lisible directement

    Champ prestataire vers Page marchande

    Trace Same-origin policy

  6. Action

    Retrait de la révision et fermeture de l’accès

    Publication tiers vers Page marchande

  7. Refus / blocage

    Contrôle des sorties après correction

    Page marchande vers Destination externe

    Trace CSP / observation

Comment repérer cette attaque

Indices à rechercher

  • Un formulaire de paiement change sans modification autorisée.
  • De nouveaux scripts ou domaines apparaissent dans la page.
  • Des clients signalent des fraudes après des achats sur une même période.

Repérer les scripts absents du manifeste approuvé de la page de paiement et les envois vers de nouvelles destinations pendant la saisie du formulaire.

Éléments à croiser

Relier la révision publiée au script effectivement chargé par le navigateur, puis à la requête sortante qu’il déclenche. Une connexion à un tiers doit être comparée aux intégrations autorisées.

Limites de l’interprétation

Le journal du serveur marchand ne voit pas nécessairement un envoi direct du navigateur vers un tiers. Le nom d’un champ observé ne prouve pas que sa valeur a été transmise.

Comment réagir

Suspendre le canal de publication compromis, préserver les révisions et retirer les scripts non autorisés. Vérifier les comptes du gestionnaire de balises, les intégrations et les caches. Délimiter périodes, pages et données accessibles avec le prestataire de paiement avant de communiquer un périmètre de compromission.

Vérifier la correction

Ces contrôles s’adressent à l’équipe responsable du système. Les simulations se préparent dans un environnement de test autorisé ; la lecture du cas ne nécessite aucune manipulation.

  1. Chaque script présent sur la page de paiement doit avoir une justification et un responsable identifiés.
  2. Les nouvelles destinations d’envoi doivent être examinées avec les champs accessibles au script.
  3. Après retrait, les caches et le gestionnaire de tags doivent servir la version corrigée.

À vous de raisonner

Le dépôt du site est intact, mais un tag a ajouté un script à la page de paiement. Quelles observations permettent d’évaluer l’exposition ?

Formulez votre décision et l’élément qui la justifie avant d’ouvrir la correction.

Comparer avec le raisonnement expliqué

Examinez les versions réellement chargées, les champs accessibles et les requêtes envoyées par le script. Sa présence seule ne prouve pas une lecture de carte, notamment si le paiement est dans une iframe isolée. Vérifiez aussi les faux formulaires possibles et sécurisez le compte qui a publié le tag.

Consulter les détails techniques

Pour aller plus loin après l’étude du cas : les extraits servent à s’exercer à la lecture des traces ; le guide de collecte aide les personnes qui disposent des outils et des accès nécessaires.

Lire les extraits commentés — reconstitution fictive

Ces extraits utilisent des valeurs fictives. Certains reprennent des champs documentés ; d’autres regroupent plusieurs sources dans un format pédagogique. Ce ne sont pas des exports bruts à retrouver tels quels dans vos outils. Commencez par les champs expliqués, puis retrouvez-les dans les extraits.

fields
Résumé pédagogique des champs concernés, sans leurs valeurs. Un journal serveur ne fournit pas automatiquement cette observation faite côté navigateur.

Différence d’inventaire avant et pendant l’incident

Journal

Inventaire fictif du contenu réellement chargé côté navigateur, distinct de l’inventaire des fichiers serveur.

baseline page=/checkout script=checkout.js hash=sha256:VERSION_A owner=commerce
baseline page=/checkout script=tags.js     hash=dynamic          owner=marketing
observed page=/checkout script=checkout.js hash=sha256:VERSION_A
observed page=/checkout script=tags.js     revision=rev89
observed page=/checkout script=collect.js  origin=https://metrics.example.org
tag_audit revision=rev89 actor=marketing-admin change=custom_html_added
browser event=submit destination=https://metrics.example.org/ingest fields=email,address
Préparer une collecte dans votre environnement

Choisissez les sources qui correspondent à vos outils et à votre périmètre d’intervention. Cette liste n’est pas un équipement requis pour comprendre la fiche. Vérifiez que les journaux nécessaires étaient activés pendant la période étudiée. Conservez l’export original, son fuseau horaire et sa provenance dans un espace à accès restreint ; travaillez sur une copie expurgée des secrets.

  1. Chrome DevTools — panneau Network du navigateur

    Où les trouver
    Dans une capture déjà conservée, ou sur une reproduction autorisée en environnement de test : ouvrir Network et conserver la navigation avec Preserve log. Examiner Headers et Initiator.
    Quoi relever
    Dans une capture nettoyée de la page de paiement, inventorier les scripts et leurs initiateurs, puis les destinations réseau au moment de la saisie ou de l’envoi. Ne pas utiliser de vraies coordonnées bancaires pour reproduire.
    Accès et prérequis
    La capture doit être active pendant l’observation : elle ne reconstitue pas le passé. Un export HAR peut contenir des données privées, même après retrait des en-têtes sensibles ; le nettoyer avant partage.
    Documentation : Chrome DevTools — panneau Network du navigateur
  2. Service concerné — audit et historique à vérifier

    Où les trouver
    Dans l’outil d’administration ou les journaux du service concerné. Demander à son mainteneur où sont enregistrées les décisions d’autorisation et les opérations métier.
    Quoi relever
    Dans l’historique du gestionnaire de balises ou du CMS, relever auteur, révision, heure de publication et différence de code. Comparer les scripts à la version approuvée, empreintes comprises.
    Accès et prérequis
    Il n’existe ni fichier ni vocabulaire universels. Les champs proposés ici doivent être instrumentés s’ils manquent ; ne pas enregistrer mots de passe, jetons ou contenu privé intégral.
    Documentation : Service concerné — audit et historique à vérifier

Dans l’histoire des cyberattaques

Groupes et campagnes documentés

1 repère

Des faits réels pour situer ce mécanisme. Les années sont celles des faits ; chaque notice précise qui établit le lien avec le groupe ou la campagne.

  1. RéseauMagecart

    MyPillow : un script espion au milieu du paiement

    En octobre 2018, un script injecté dans la boutique MyPillow collecte les informations de paiement. Après le retrait d’un premier script, les attaquants conservent un accès et en ajoutent un autre, dissimulé derrière un nom de domaine ressemblant à celui d’un service légitime.

    Ce qu’établit la source. Microsoft documente ce cas dans sa présentation des investigations sur Magecart. Cette appellation recouvre plusieurs groupes de cybercriminels ; elle ne permet pas d’attribuer tous les vols de carte sur le Web à la même équipe.

    Consulter le rapport Gather threat intelligence and perform infrastructure chaining — cas MyPillow

    Microsoft Learn · Mis à jour le

Sélection de cas documentés, non exhaustive. Une technique peut être utilisée par de nombreux acteurs. Les cas fictifs de la fiche ne sont attribués à aucun de ces groupes.

Si vous pensez être concerné

Si vous utilisez le service

Surveillez vos opérations bancaires et contactez la banque si des données de carte ont été exposées. Un vol dans une page de paiement peut ne laisser aucun signe visible pendant l’achat.

Pour l’équipe qui exploite le service

  1. Alertez le commerçant et votre banque en cas de données de carte exposées.
  2. Côté exploitant, retirez le code et fermez son point d’entrée.
  3. Identifiez les pages, périodes et visiteurs concernés avec les équipes compétentes.

Pour qualifier votre situation et être orienté : obtenir une assistance sur 17Cyber. Dans une organisation, prévenez aussi le responsable ou prestataire chargé de la sécurité.

Sources et repères pour approfondir