web-dev-qa-db-fra.com

Qu'est-ce que le formjacking?

Je viens d'entendre une nouvelle très confuse sur Symantec avertissant le monde des dangers du détournement de formulaire. Le lecteur de nouvelles a déclaré qu'il s'agissait de "pirater le formulaire, pas le site Web", quoi que cela signifie.

J'ai parcouru Google et trouvé un article de blog Symantec à ce sujet, où ils décrivent l'attaque comme suit:

  1. L'attaquant "injecte" du JavaScript malveillant dans la page Web ciblée
  2. L'utilisateur remplit le formulaire sur cette page Web
  3. Le JavaScript envoie les données saisies au serveur de l'attaquant.

Cependant, je dirais que si un attaquant a un accès en écriture au code sur le serveur, le détournement de formulaire est la moindre de vos préoccupations (et non la vulnérabilité réelle - quel que soit le droit d'accès).

Pourquoi le détournement de forme est-il le gros problème (c'était sur les nouvelles nationales où je vis) et non le fait que des tonnes de sites Web (parmi lesquels British Airways selon Symantec) ont une vulnérabilité ridiculement grande qui permet aux attaquants d'accéder à leurs serveurs?

39
11684

L'article Symantec auquel vous faites référence est comme celui-ci .

En regardant le graphique :

graphic

Le point 1 est ce qui est généralement le plus intéressant pour les chercheurs en sécurité, car c'est là que se trouve la vulnérabilité.

Les points 2 et 3 montrent simplement ce qui pourrait être possible avec une telle vulnérabilité. Par exemple, JavaScript peut être utilisé dans des attaques de phishing (afficher un faux formulaire) ou pour lire toutes les données que l'utilisateur entre dans des formulaires. C'est ce que Symantec appelle le détournement de formulaire, mais ce n'est bien sûr rien de nouveau.

Leur article comprend également une section "Comment les sites Web sont-ils compromis?", Qui vous intéressera probablement.

Les vulnérabilités incluent en effet la possibilité de changer le code côté serveur, mais pas nécessairement de l'application principale, mais surtout dans les dépendances JavaScript.

Les problèmes liés à l'inclusion de JavaScript tiers ne sont bien sûr pas nouveaux non plus. Burp, par exemple, l'appelle le script interdomaine inclut , et OWASP l'avertit également. L'inclusion de scripts tiers nécessite toujours une confiance totale dans le tiers ainsi que la confiance dans leurs processus de sécurité.

Pourquoi le formjacking est-il si important

Bon marketing de la part de Symantec?

47
tim

L'accès direct au serveur n'est pas requis

Il existe un certain nombre de façons dont un javascript malveillant pourrait se retrouver sur une page Web sans que l'attaquant ait accès au serveur.

  • L'auteur du site Web peut créer un lien vers une bibliothèque à partir d'une source non fiable
    • par exemple. Le développeur Web A aime le carrousel d'images sur my-site.com et les liens directement vers celui-ci - maintenant le propriétaire de my-site.com peut modifier ce script quand il le souhaite, en ajoutant potentiellement du code malveillant.
  • L'auteur du site Web a peut-être copié du javascript à partir d'une source non fiable
    • par exemple. Le développeur Web B recherche une bibliothèque pour convertir Celsius en Fahrenheit. Ils trouvent un script sur free.javascriptlib.zz qui fait le travail, mais ne remarquent pas qu'il contient du code malveillant car le script lui-même est obscurci.
  • L'utilisateur final peut se saboter en utilisant une extension de navigateur ou un bookmarklet non fiable.
    • par exemple. Alice a ajouté un bouton à son navigateur qui lui donne un clavier emoji, mais il insère également du code malveillant dans la page actuelle.
  • L'utilisateur final peut être victime d'usurpation DNS.
    • par exemple. La recherche DNS de Bob pour https://code.jquery.com/jquery-3.3.1.min.js a été compromise, donc il fournit maintenant une version de jquery à partir d'une source non sécurisée qui a eu des programmes malveillants code ajouté.
  • ... etc.

L'autre préoccupation de ces types d'attaques est qu'elles peuvent être difficiles à détecter. Javascript est exécuté côté client, et donc aucun de ceux-ci ne lèverait de drapeau sur le site compromis: il est peu probable que les utilisateurs concernés reçoivent un avertissement que leurs informations ont été volées.


Concernant la vulnérabilité de British Airways en particulier, la BBC a écrit un article spéculant sur la cause ici: https://www.bbc.co.uk/news/technology-45446529

Dans ce document, ils suggèrent qu'il s'agissait probablement d'un script tiers et citent un autre exemple concernant Ticketmaster où "un chatbot du service client sur site a été étiqueté comme la cause potentielle".

42
DaveMongoose

Je suis d'accord. Formjacking n'est pas une vulnérabilité, mais un type d'attaque, qui peut être exécuté si l'attaquant a déjà un accès en écriture au webroot de la victime, ou sur le webroot d'un autre site, qui a pleine confiance de la victime.

Par conséquent, le piratage de formulaire peut également être un problème, si la racine Web des victimes est sûre, mais ils incluent dynamiquement du code tiers ou essaient simplement de diffuser des annonces, ce qui conduit également fréquemment à des navires de relation de confiance mal formés.

Le détournement de formulaire est intéressant, car la victime de l'attaque est le client de l'entreprise, l'attaquant cible et des groupes comme Magecart ont déjà gagné beaucoup d'argent avec.

Il semble que Symantec ait effectivement simplifié à l'excès toute la question du "formjacking". La première fois que je l'ai lu, j'ai été amené à la même conclusion que vous.

Mais le sujet de préoccupation ici est que ces charges utiles malveillantes sont injectées sans que les attaquants n'aient à accéder aux serveurs de leurs cibles. C'est pourquoi ils sont mentionnés comme attaques de la chaîne d'approvisionnement .

Les attaques contre Ticketmaster, British Airways, OXO, Copay, Gate.io ont toutes été réalisées grâce à cette même approche - compromettant un tiers pour injecter du code malveillant en aval dans leurs cibles.

Tout comme cela a été dit dans ce sujet auparavant, l'utilisation de scripts tiers est l'occurrence la plus courante dans ces attaques, mais ce n'est pas la seule. attaque contre Copay a été obtenue en insérant du code malveillant dans le flux d'événements, une dépendance du portefeuille cryptographique de Copay.

Étant donné que l'application Web moyenne a bien plus de 1000 dépendances, il n'est pas étonnant que cela soit passé sous le radar et que la société ait publié des versions de leur propre produit qui contenaient le code malveillant. Bien que cette attaque ne corresponde pas au M.O "formjacking", elle comportait le même principe d'insertion de code malveillant via des tiers compromis qu'en enfreignant directement la société cible.

1
Carl Rck