Willem de Groot, un expert sécurité néerlandais qui s’intéresse particulièrement aux problèmes de sécurité au niveau des sites de paiement en ligne, a récemment écrit concernant une longue campagne de malwares sur Magento.
Magento est à l’e-commerce ce que WordPress est au blog, à savoir que vous pouvez utiliser la version open source sur vos propres serveurs, vous pouvez utiliser un partenaire e-commerce qui lancera une instance Magento pour vous, ou vous pouvez vous inscrire sur la plateforme cloud de Magento.
Des milliers de sites exploitent encore leurs propres serveurs Magento, même à l’ère moderne focalisée sur le cloud, par exemple parce qu’ils ont déjà un système de stockage et d’expédition personnalisé auquel leurs serveurs d’e-commerce doivent s’intégrer.
Malheureusement, de Groot a constaté que beaucoup de ces sites, selon lui plus de 7 000 au total, ont été infiltrés par des cybercriminels au cours des six derniers mois.
Pire encore, de Groot estime que près de 1500 d’entre eux ont pu être infectés pendant toute cette période.
Nous ne savons pas très bien comment les sites ont été infectés, mais nous pensons que les cybercriminels à l’origine de cette campagne ont utilisé de nombreuses techniques d’infiltration différentes.
Si vous n’avez pas installé les correctifs au niveau de vos systèmes, y compris Magento, vos serveurs web et de base de données sous-jacents, ainsi que le système d’exploitation, alors les cybercriminels risquent d’être en mesure de contourner vos défenses existantes en exploitant une faille de sécurité connue.
Si vous ne suivez pas de près vos comptes, les cybercriminels ont très bien pu se connecter en utilisant des noms d’utilisateur oubliés, que vous aviez l’intention de supprimer, mais qui existent toujours aujourd’hui !
Si vous avez choisi des mots de passe faibles et que vous n’utilisez pas d’authentification à deux facteurs (système où les utilisateurs doivent saisir un code unique chaque fois qu’ils se connectent), les cybercriminels ont pu deviner vos mots de passe et se faire passer pour de véritables utilisateurs.
Lors de cette attaque, les cybercriminels ont ciblé délibérément vos clients, et ce en temps réel, récoltant ainsi les données de cartes de crédit “en direct” pendant que vos clients étaient, en pleine action, sur votre site.
Dans les attaques sur lesquelles De Groot a enquêté, les cybercriminels ont téléchargé un fichier JavaScript appelé mage/mage.js
qu’ils ont ajouté au template HTML de votre site web.
Un fichier template sert de référence pour toutes vos pages web, ou du moins pour toutes les pages d’une partie de votre site, un peu comme un masque dans une présentation PowerPoint ou Keynote.
En ajoutant une seule balise HTML comme celle-ci au template…
… chaque page web basée sur ce template est équipée du script malveillant mage.js
voleur de données.
En résumé, le malware mage.js
effectue les opérations suivantes, une fois réceptionné et chargé dans le navigateur du visiteur :
- Ajout d’un formulaire web caché pour le stockage temporaire des données volées dans la page web elle-même.
- Définition d’un minuteur JavaScript qui scrute toutes les 7 secondes pour voir si un champ de saisie de données appelé cc_num est visible sur la page.
- Attente qu’un utilisateur saisisse son numéro de carte, la date d’expiration et le code de sécurité (CVV), voire plus.
- Copie des données personnelles de l’utilisateur dans le formulaire masqué au bas de la page.
- Upload le formulaire caché sur un serveur contrôlé par les cybercriminels.
En ajoutant un formulaire caché et en laissant vos “pages d’achat” intactes et standards d’un point de vue apparence et fonctionnement, votre site d’origine semble se comporter normalement. Ainsi, les cybercriminels n’attirent pas l’attention sur eux en déclenchant des messages d’erreur inattendus ou des achats manqués.
De plus, en interceptant les données de cartes de crédit alors qu’elles se trouvent encore dans le navigateur, les cybercriminels n’ont pas besoin de parcourir les bases de données de votre serveur pour extraire les données des transactions récentes.
Les données des cartes de crédit parviennent aux cybercriminels, ces derniers n’ont pas besoin d’aller vers elles !
Plus sournois encore, les cybercriminels ont accès à des données qui sont présentes uniquement au cours de la transaction, et qui ne sont jamais stockées par la suite, comme le CVV (le code de sécurité) de la victime.
Fullz, le terme utilisé pour désigner les enregistrements complets des cartes de crédit, a plus de valeur que les données de cartes de crédit sans le CVV. Le CVV n’est pas censé être conservé après la finalisation d’une transaction, et il n’est jamais stocké sur la bande magnétique ou la puce de la carte. En réalité, il s’agit de la pièce manquante que les cybercriminels ne peuvent pas facilement acquérir autrement.
Ce malware comprend également des fichiers PHP côté serveur que les cybercriminels uploadent dans le but de protéger leur tête de pont au sein de votre réseau.
Un fichier appelé clear.json
(il s’agit d’un programme PHP, et pas réellement d’un fichier de données JSON) est utilisé pour changer le mot de passe sur une longue liste de noms de comptes afin que les cybercriminels puissent avoir d’autres possibilités d’attaquer de nouveau si leur première tentative était découverte.
Un fichier appelé clear.json
(également un programme PHP) supprime toutes les références, dans la base de données Magento, faites aux chaînes de texte ATMZOW
, 19303817.js
et PZ7SKD
.
Selon De Groot, le programme clear.json
est ce qu’on appelle souvent un malware anti-malware, à savoir qu’il empêche plusieurs autres types de malwares Magento “concurrents” de fonctionner.
Quoi faire ?
- Si vous êtes un acheteur en ligne, pensez à utiliser un filtre web pour vous protéger vis-à-vis des serveurs compromis en bloquant l’accès au site command-and-control des cybercriminels.
- Si vous utilisez un serveur qui traite des données client sensibles, telles que des noms, des adresses et des données de carte de paiement, surveillez vos logs afin de détecter des modifications inattendues ou des uploads non autorisés.
- Envisagez l’utilisation d’un scanneur antivirus au niveau de votre serveur pour détecter la présence de fichiers malveillants susceptibles de mettre vos clients en danger.
Si vous décidez d’utiliser un anti-virus sur votre serveur, utilisez le mode “temps réel” si vous le pouvez.
Le mode “temps réel”, également connu sous le nom de “on-access scanning”, recherche les fichiers malveillants dès leur arrivée, et empêche qu’ils ne soient utiliser ultérieurement, de sorte qu’ils ne peuvent ni s’exécuter directement sur votre serveur, ni être diffusés à vos utilisateurs.
Et enfin, n’oubliez pas :
- Patchez rapidemment, patchez souvent. Ne laissez pas des failles de sécurité ouvertes lorsque vous auriez pu les refermer.
- Choisissez des mots de passe appropriés. Si vous ne vous souvenez pas des mots de passe complexes, utilisez un gestionnaire de mots de passe pour vous aider.
- Utiliser une authentification à deux facteurs. De cette façon, les noms d’utilisateur et mots de passe volés ne seront d’aucune utilité.
Les produits Sophos bloquent l’accès au site malveillant, dans cette attaque, sous l’appellation : Mal/HTMLGen-A. Les scripts malveillants sont alternativement détectés sous les noms : Troj/Magento-A, Troj/JSBanker-C et Troj/PHP-CI.
Billet inspiré de Credit card gobbling malware found piggybacking on ecommerce sites, sur Sophos nakedsecurity.