Presque chacun d'entre nous utilise les services de boutiques en ligne, ce qui signifie que tôt ou tard, nous courons le risque d'être victime de renifleurs JavaScript - un code spécial que les attaquants injectent dans un site Web pour voler des données de carte bancaire, des adresses, des noms d'utilisateur et des mots de passe .
Près de 400 000 utilisateurs du site internet et de l'application mobile de British Airways ont déjà été touchés par les renifleurs, ainsi que les visiteurs du site internet britannique du géant du sport FILA et du distributeur de billets américain Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - ces systèmes de paiement et bien d'autres ont été infectés.
Viktor Okorokov, analyste du Threat Intelligence Group-IB, explique comment les renifleurs infiltrent le code du site Web et volent les informations de paiement, ainsi que les CRM qu'ils attaquent.
"Menace cachée"
Il se trouve que pendant longtemps les renifleurs JS sont restés hors de vue des analystes antivirus, et les banques et les systèmes de paiement ne les ont pas considérés comme une menace sérieuse. Et absolument en vain. Groupe-IB Experts
Arrêtons-nous en détail sur les quatre familles de renifleurs étudiées au cours de l'étude.
Famille ReactGet
Les sniffers de la famille ReactGet sont utilisés pour voler les données des cartes bancaires sur les sites de vente en ligne. Le renifleur peut fonctionner avec un grand nombre de systèmes de paiement différents utilisés sur le site : une valeur de paramètre correspond à un système de paiement, et des versions individuelles détectées du renifleur peuvent être utilisées pour voler des informations d'identification, ainsi que pour voler des données de carte bancaire du formes de paiement de plusieurs systèmes de paiement à la fois, comme le soi-disant renifleur universel. Il a été constaté que dans certains cas, les attaquants menaient des attaques de phishing sur les administrateurs de boutiques en ligne afin d'accéder au panneau d'administration du site.
La campagne utilisant cette famille de renifleurs a débuté en mai 2017. Des sites exécutant des CMS et des plateformes Magento, Bigcommerce, Shopify ont été attaqués.
Comment ReactGet est intégré dans le code d'une boutique en ligne
En plus de l'injection de script "classique" par lien, les opérateurs de renifleurs de la famille ReactGet utilisent une technique particulière : à l'aide de code JavaScript, il vérifie si l'adresse actuelle où se trouve l'utilisateur répond à certains critères. Le code malveillant ne s'exécutera que si l'URL actuelle contient une sous-chaîne caisse ou paiement en une étape, une page/, out/une page, caisse/une, ckout/un. Ainsi, le code renifleur sera exécuté exactement au moment où l'utilisateur procède au paiement des achats et saisit les informations de paiement dans le formulaire du site.
Ce renifleur utilise une technique non standard. Le paiement et les données personnelles de la victime sont collectés ensemble, encodés à l'aide base64, puis la chaîne résultante est utilisée comme paramètre pour envoyer une requête au site malveillant. Le plus souvent, le chemin vers la porte imite un fichier JavaScript, par exemple resp.js, data.js et ainsi de suite, mais des liens vers des fichiers image sont également utilisés, GIF и JPG. La particularité est que le renifleur crée un objet image d'une taille de 1 par 1 pixel et utilise le lien précédemment obtenu comme paramètre src Images. Autrement dit, pour l'utilisateur, une telle demande dans le trafic ressemblera à une demande d'image normale. Une technique similaire a été utilisée dans la famille de renifleurs ImageID. De plus, la technique d'image 1x1 pixel est utilisée dans de nombreux scripts d'analyse en ligne légitimes, ce qui peut également induire l'utilisateur en erreur.
Analyse des versions
Une analyse des domaines actifs utilisés par les opérateurs de renifleur ReactGet a révélé de nombreuses versions différentes de cette famille de renifleurs. Les versions diffèrent par la présence ou l'absence d'obfuscation, et de plus, chaque renifleur est conçu pour un système de paiement spécifique qui traite les paiements par carte bancaire pour les magasins en ligne. Après avoir trié la valeur du paramètre correspondant au numéro de version, les spécialistes de Group-IB ont reçu une liste complète des variantes de renifleur disponibles, et par les noms des champs de formulaire que chaque renifleur recherche dans le code de la page, ils ont déterminé les systèmes de paiement que le renifleur cible.
Liste des renifleurs et leurs systèmes de paiement correspondants
URL du renifleur | système de paiement |
---|---|
|
Authorize.Net |
Sauvegarde de cartes | |
|
Authorize.Net |
Authorize.Net | |
|
eWAY Rapide |
Authorize.Net | |
Adyen | |
|
USAePay |
Authorize.Net | |
USAePay | |
|
Authorize.Net |
Moneris | |
USAePay | |
PayPal | |
Paye sage | |
Verisign | |
PayPal | |
Stripe | |
|
Realex |
PayPal | |
Point de liaison | |
PayPal | |
PayPal | |
datacash | |
|
PayPal |
|
Authorize.Net |
|
Authorize.Net |
Authorize.Net | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
Moneris | |
|
Paye sage |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
Porte électronique ANZ |
|
Authorize.Net |
|
Moneris |
|
Paye sage |
Paye sage | |
|
Chase Paiementech |
|
Authorize.Net |
|
Adyen |
PsiGate | |
CyberSource | |
Porte électronique ANZ | |
Realex | |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
Porte électronique ANZ |
|
PayPal |
|
PayPal |
Realex | |
|
Paye sage |
|
PayPal |
|
Verisign |
Authorize.Net | |
|
Verisign |
Authorize.Net | |
|
Porte électronique ANZ |
PayPal | |
CyberSource | |
|
Authorize.Net |
|
Paye sage |
Realex | |
|
CyberSource |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Rapide |
|
Paye sage |
Paye sage | |
|
Verisign |
Authorize.Net | |
Authorize.Net | |
|
Première passerelle mondiale de données |
Authorize.Net | |
Authorize.Net | |
Moneris | |
|
Authorize.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Authorize.Net | |
Verisign | |
PayPal | |
|
Authorize.Net |
Stripe | |
|
Authorize.Net |
eWAY Rapide | |
|
Paye sage |
Authorize.Net | |
|
Braintree |
|
Braintree |
|
PayPal |
|
Paye sage |
|
Paye sage |
|
Authorize.Net |
|
PayPal |
|
Authorize.Net |
Verisign | |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Authorize.Net |
eWAY Rapide | |
Paye sage | |
|
Authorize.Net |
Braintree | |
|
PayPal |
|
Paye sage |
Paye sage | |
|
Authorize.Net |
PayPal | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Paye sage |
Paye sage | |
|
Paiement Westpac |
|
salaire |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Première passerelle mondiale de données |
|
PsiGate |
Authorize.Net | |
Authorize.Net | |
|
Moneris |
|
Authorize.Net |
Paye sage | |
|
Verisign |
Moneris | |
PayPal | |
|
Point de liaison |
|
Paiement Westpac |
Authorize.Net | |
|
Moneris |
|
PayPal |
Adyen | |
PayPal | |
Authorize.Net | |
USAePay | |
EBizCharge | |
|
Authorize.Net |
|
Verisign |
Verisign | |
Authorize.Net | |
|
PayPal |
|
Moneris |
Authorize.Net | |
|
PayPal |
PayPal | |
Paiement Westpac | |
Authorize.Net | |
|
Authorize.Net |
Paye sage | |
|
Verisign |
|
Authorize.Net |
|
PayPal |
|
salaire |
CyberSource | |
PayPal Payflow Pro | |
|
Authorize.Net |
|
Authorize.Net |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Paye sage | |
Authorize.Net | |
|
Stripe |
|
Authorize.Net |
Authorize.Net | |
Verisign | |
|
PayPal |
Authorize.Net | |
|
Authorize.Net |
Paye sage | |
|
Authorize.Net |
|
Authorize.Net |
|
PayPal |
|
Silex |
|
PayPal |
Paye sage | |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
|
Stripe |
|
Gros zèbre |
Paye sage | |
|
Authorize.Net |
Première passerelle mondiale de données | |
|
Authorize.Net |
|
eWAY Rapide |
Adyen | |
|
PayPal |
Services aux commerçants QuickBooks | |
Verisign | |
|
Paye sage |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Paye sage | |
|
Authorize.Net |
|
eWAY Rapide |
Authorize.Net | |
|
Porte électronique ANZ |
|
PayPal |
CyberSource | |
|
Authorize.Net |
Paye sage | |
|
Realex |
CyberSource | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Rapide | |
|
Paye sage |
|
Paye sage |
|
Verisign |
Authorize.Net | |
|
Authorize.Net |
|
Première passerelle mondiale de données |
Authorize.Net | |
Authorize.Net | |
|
Moneris |
|
Authorize.Net |
|
PayPal |
Renifleur de mot de passe
L'un des avantages des renifleurs JavaScript qui fonctionnent côté client d'un site Web est sa polyvalence : un code malveillant intégré à un site Web peut voler tout type de données, qu'il s'agisse d'informations de paiement ou d'un identifiant et d'un mot de passe d'un compte utilisateur. Les spécialistes de Group-IB ont découvert un échantillon d'un sniffer appartenant à la famille ReactGet, conçu pour voler les adresses e-mail et les mots de passe des utilisateurs du site.
Intersection avec le renifleur ImageID
Lors de l'analyse de l'un des magasins infectés, il a été constaté que son site Web avait été infecté deux fois : en plus du code malveillant du renifleur de la famille ReactGet, le code du renifleur de la famille ImageID a été trouvé. Ce chevauchement pourrait être la preuve que les opérateurs derrière les deux renifleurs utilisent des techniques similaires pour injecter du code malveillant.
Renifleur universel
Lors d'une analyse de l'un des noms de domaine liés à l'infrastructure de renifleur ReactGet, il a été constaté que le même utilisateur avait enregistré trois autres noms de domaine. Ces trois domaines imitaient les domaines de sites réels et étaient auparavant utilisés pour héberger des renifleurs. Lors de l'analyse du code de trois sites légitimes, un renifleur inconnu a été trouvé et une analyse plus approfondie a montré qu'il s'agissait d'une version améliorée du renifleur ReactGet. Toutes les versions précédemment suivies de cette famille de renifleurs visaient un système de paiement unique, ce qui signifie que chaque système de paiement nécessitait une version spécifique du renifleur. Cependant, dans ce cas, une version universelle du renifleur a été découverte, capable de voler des informations à partir de formulaires liés à 15 systèmes de paiement différents et modules de sites de commerce électronique pour les paiements en ligne.
Ainsi, au début des travaux, le sniffer a recherché des champs de formulaire de base contenant les informations personnelles de la victime : nom complet, adresse physique, numéro de téléphone.
Le renifleur a ensuite recherché plus de 15 préfixes différents correspondant à différents systèmes de paiement et modules pour les paiements en ligne.
Ensuite, les données personnelles et les informations de paiement de la victime ont été rassemblées et envoyées à un site contrôlé par l'attaquant : dans ce cas particulier, deux versions du sniffer universel ReactGet ont été trouvées situées sur deux sites piratés différents. Cependant, les deux versions ont envoyé les données volées au même site piraté. zoobashop.com.
Une analyse des préfixes utilisés par le renifleur pour trouver les champs contenant les informations de paiement de la victime a déterminé que cet échantillon de renifleur ciblait les systèmes de paiement suivants :
- Authorize.Net
- Verisign
- Première donnée
- USAePay
- Stripe
- PayPal
- Porte électronique ANZ
- Braintree
- Espèces de données (MasterCard)
- Paiements Realex
- PsiGate
- Systèmes de paiement Heartland
Quels outils sont utilisés pour voler des informations de paiement
Le premier outil découvert lors de l'analyse de l'infrastructure des attaquants sert à obscurcir les scripts malveillants responsables du vol de cartes bancaires. Un script bash utilisant la CLI du projet a été trouvé sur l'un des hôtes des attaquants.
Le deuxième outil découvert est conçu pour générer le code responsable du chargement du renifleur principal. Cet outil génère un code JavaScript qui vérifie si l'utilisateur est sur la page de paiement en recherchant l'adresse actuelle de l'utilisateur pour les chaînes caisse, panier et ainsi de suite, et si le résultat est positif, alors le code charge le renifleur principal depuis le serveur de l'intrus. Pour masquer les activités malveillantes, toutes les lignes, y compris les lignes de test pour déterminer la page de paiement, ainsi qu'un lien vers le renifleur, sont codées à l'aide de base64.
Attaques de phishing
Lors de l'analyse de l'infrastructure réseau des attaquants, il a été constaté que le groupe criminel utilise souvent le phishing pour accéder au panneau d'administration de la boutique en ligne cible. Les attaquants enregistrent un domaine qui ressemble à un domaine de magasin, puis déploient un faux formulaire de connexion administrateur Magento dessus. En cas de succès, les attaquants auront accès au panneau d'administration de Magento CMS, ce qui leur donne la possibilité de modifier les composants du site et d'implémenter un renifleur pour voler les données de carte de crédit.
Infrastructure
Nom de domaine | Date de découverte/apparition |
---|---|
mediapack.info | 04.05.2017 |
annoncesgetapi.com | 15.06.2017 |
simcounter.com | 14.08.2017 |
mageanalytics.com | 22.12.2017 |
maxstatics.com | 16.01.2018 |
réagirjsapi.com | 19.01.2018 |
mxcounter.com | 02.02.2018 |
apitstatus.com | 01.03.2018 |
commanderacker.com | 20.04.2018 |
tagtracking.com | 25.06.2018 |
annoncesapigate.com | 12.07.2018 |
trusttracker.com | 15.07.2018 |
fbstatspartner.com | 02.10.2018 |
billgetstatus.com | 12.10.2018 |
www.aldenmlilhouse.com | 20.10.2018 |
balletbeautlful.com | 20.10.2018 |
bargalnjunkie.com | 20.10.2018 |
payselecteur.com | 21.10.2018 |
tagsmediaget.com | 02.11.2018 |
hs-paiements.com | 16.11.2018 |
ordercheckpays.com | 19.11.2018 |
geisseie.com | 24.11.2018 |
gtmproc.com | 29.11.2018 |
livegetpay.com | 18.12.2018 |
sydneysalonsupplies.com | 18.12.2018 |
newrelicnet.com | 19.12.2018 |
nr-public.com | 03.01.2019 |
cloudodesc.com | 04.01.2019 |
ajaxstatic.com | 11.01.2019 |
livecheckpay.com | 21.01.2019 |
asianfoodgracer.com | 25.01.2019 |
Famille G-Analytics
Cette famille de renifleurs est utilisée pour voler les cartes clients des boutiques en ligne. Le tout premier nom de domaine utilisé par le groupe a été enregistré en avril 2016, ce qui pourrait indiquer le début de l'activité du groupe mi-2016.
Dans la campagne actuelle, le groupe utilise des noms de domaine qui imitent des services réels tels que Google Analytics et jQuery, masquant l'activité de renifleur avec des scripts légitimes et des noms de domaine d'apparence légitime. Des sites Web fonctionnant sous le CMS Magento ont été attaqués.
Comment G-Analytics est implémenté dans le code de la boutique en ligne
Une caractéristique distinctive de cette famille est l'utilisation de diverses méthodes de vol des informations de paiement des utilisateurs. En plus de l'injection JavaScript classique côté client du site, le groupe criminel a également utilisé la technique d'injection de code côté serveur du site, à savoir des scripts PHP qui traitent les entrées des utilisateurs. Cette technique est dangereuse car elle rend difficile la détection de code malveillant par des chercheurs tiers. Les spécialistes de Group-IB ont découvert une version du renifleur embarquée dans le code PHP du site, utilisant le domaine comme portail dittm.org.
Une première version d'un renifleur a également été découverte qui utilise le même domaine pour collecter des données volées. dittm.org, mais cette version est déjà destinée à être installée côté client de la boutique en ligne.
Plus tard, le groupe a changé de tactique et a commencé à accorder plus d'attention à la dissimulation des activités malveillantes et au camouflage.
Début 2017, le groupe a commencé à utiliser le domaine jquery-js.comse faisant passer pour CDN pour jQuery : redirige l'utilisateur vers un site légitime lorsqu'il se rend sur un site malveillant jquery.com.
Et mi-2018, le groupe adopte un nom de domaine g-analytics.com et a commencé à déguiser l'activité du renifleur en un service légitime de Google Analytics.
Analyse des versions
Lors de l'analyse des domaines utilisés pour stocker le code renifleur, il a été constaté que le site a un grand nombre de versions qui diffèrent par la présence d'obfuscation, ainsi que la présence ou l'absence de code inaccessible ajouté au fichier pour détourner l'attention. et masquer le code malveillant.
Total sur le site jquery-js.com six versions de renifleurs ont été identifiées. Ces renifleurs envoient les données volées à une adresse située sur le même site que le renifleur lui-même : hxxps://jquery-js[.]com/latest/jquery.min.js:
- hxxps://jquery-js[.]com/jquery.min.js
- hxxps://jquery-js[.]com/jquery.2.2.4.min.js
- hxxps://jquery-js[.]com/jquery.1.8.3.min.js
- hxxps://jquery-js[.]com/jquery.1.6.4.min.js
- hxxps://jquery-js[.]com/jquery.1.4.4.min.js
- hxxps://jquery-js[.]com/jquery.1.12.4.min.js
Domaine ultérieur g-analytics.com, utilisé par le groupe dans les attaques depuis mi-2018, sert de référentiel pour plus de renifleurs. Au total, 16 versions différentes du renifleur ont été découvertes. Dans ce cas, la porte d'envoi des données volées était déguisée en lien vers une image au format GIF: hxxp://g-analytics[.]com/__utm.gif?v=1&_v=j68&a=98811130&t=pageview&_s=1&sd=24-bit&sr=2560×1440&vp=2145×371&je=0&_u=AACAAEAB~&jid=1841704724&gjid=877686936&cid
= 1283183910.1527732071:
- hxxps://g-analytics[.]com/libs/1.0.1/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.10/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.11/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.12/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.13/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.14/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.15/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.16/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.3/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.4/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.5/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.6/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.7/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.8/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.9/analytics.js
- hxxps://g-analytics[.]com/libs/analytics.js
Monétisation des données volées
Le groupe criminel monétise les données volées en vendant des cartes via un magasin souterrain spécialement créé qui fournit des services aux cardeurs. Une analyse des domaines utilisés par les attaquants a permis de déterminer que google-analytics.cm a été enregistré par le même utilisateur que le domaine cardz.vc. Domaine cardz.vc fait référence à Cardsurfs (Flysurfs), un magasin vendant des cartes bancaires volées, qui a gagné en popularité pendant le marché souterrain AlphaBay en tant que magasin vendant des cartes bancaires volées à l'aide d'un renifleur.
Analyse du domaine analytique.est, situé sur le même serveur que les domaines utilisés par les sniffers pour collecter les données volées, les spécialistes de Group-IB ont découvert un fichier contenant les journaux des voleurs de cookies, qui, semble-t-il, a ensuite été abandonné par le développeur. L'une des entrées du journal contenait un domaine iozoz.com, qui était auparavant utilisé dans l'un des renifleurs actifs en 2016. Vraisemblablement, ce domaine était auparavant utilisé par un attaquant pour collecter des cartes volées à l'aide d'un renifleur. Ce domaine a été enregistré sur une adresse e-mail [email protected], qui a également été utilisé pour enregistrer des domaines cardz.su и cardz.vclié à la boutique de cartes Cardsurfs.
Sur la base des données obtenues, on peut supposer que la famille de renifleurs G-Analytics et le magasin de cartes bancaires souterrain Cardsurfs sont gérés par les mêmes personnes, et que le magasin est utilisé pour vendre des cartes bancaires volées à l'aide d'un renifleur.
Infrastructure
Nom de domaine | Date de découverte/apparition |
---|---|
iozoz.com | 08.04.2016 |
dittm.org | 10.09.2016 |
jquery-js.com | 02.01.2017 |
g-analytics.com | 31.05.2018 |
google-analytics.is | 21.11.2018 |
analytique.à | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analytique.est | 28.12.2018 |
googlelc-analytics.cm | 17.01.2019 |
Famille Illum
Illum est une famille de renifleurs utilisée pour attaquer les magasins en ligne exécutant Magento CMS. En plus de l'introduction de code malveillant, les opérateurs de ce renifleur utilisent également l'introduction de faux formulaires de paiement à part entière qui envoient des données à des portails contrôlés par des attaquants.
Lors de l'analyse de l'infrastructure réseau utilisée par les opérateurs de ce renifleur, un grand nombre de scripts malveillants, d'exploits, de faux formulaires de paiement ont été notés, ainsi qu'une collection d'exemples avec des concurrents de renifleurs malveillants. Sur la base des informations sur les dates d'apparition des noms de domaine utilisés par le groupe, on peut supposer que le début de la campagne tombe fin 2016.
Comment Illum est implémenté dans le code d'une boutique en ligne
Les premières versions découvertes du renifleur étaient intégrées directement dans le code du site compromis. Les données volées ont été envoyées à cdn.illum[.]pw/records.php, la porte a été codée en utilisant base64.
Plus tard, une version packagée du renifleur a été découverte en utilisant une porte différente - records.nstatistics[.]com/records.php.
selon
Analyse du site d'attaque
Les spécialistes de Group-IB ont découvert et analysé un site utilisé par ce groupe criminel pour stocker des outils et collecter des informations volées.
Parmi les outils trouvés sur le serveur de l'attaquant figuraient des scripts et des exploits pour l'élévation des privilèges dans le système d'exploitation Linux : par exemple, Linux Privilege Escalation Check Script, développé par Mike Czumak, ainsi qu'un exploit pour CVE-2009-1185.
Les attaquants ont utilisé directement deux exploits pour attaquer les boutiques en ligne :
De plus, lors de l'analyse du serveur, divers échantillons de renifleurs et de faux formulaires de paiement ont été trouvés, utilisés par des attaquants pour collecter des informations de paiement à partir de sites piratés. Comme vous pouvez le voir dans la liste ci-dessous, certains scripts ont été créés individuellement pour chaque site piraté, tandis qu'une solution universelle a été utilisée pour certains CMS et passerelles de paiement. Par exemple, les scripts segapay_standard.js и segapay_onpage.js conçu pour être intégré sur des sites utilisant la passerelle de paiement Sage Pay.
Liste des scripts pour différentes passerelles de paiement
Scénario | Passerelle de paiement |
---|---|
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//cdn.illum[.]pw/records.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//cdn.illum[.]pw/records.php |
//payrightnow[.]cf/?payment= | |
|
//payrightnow[.]cf/?payment= |
|
//paiementmaintenant[.]tk/?paiement= |
Hôte paiementmaintenant[.]tk, utilisé comme porte dans un script paiement_forminsite.js, a été découvert comme sujetAltName dans plusieurs certificats liés au service CloudFlare. De plus, le script se trouvait sur l'hôte mal.js. A en juger par le nom du script, il aurait pu être utilisé dans le cadre de l'exploitation de CVE-2016-4010, grâce à laquelle il est possible d'injecter du code malveillant dans le footer d'un site exécutant le CMS Magento. Ce script a utilisé l'hôte comme porte request.requestnet[.]tk, en utilisant le même certificat que l'hôte paiementmaintenant[.]tk.
Faux formulaires de paiement
La figure ci-dessous montre un exemple de formulaire de saisie des données de la carte. Ce formulaire a été utilisé pour infiltrer un site Web de boutique en ligne et voler des données de carte.
La figure suivante est un exemple d'un faux formulaire de paiement PayPal qui a été utilisé par des attaquants pour infiltrer des sites utilisant ce mode de paiement.
Infrastructure
Nom de domaine | Date de découverte/apparition |
---|---|
cdn.illum.pw | 27/11/2016 |
records.nstatistics.com | 06/09/2018 |
demande.payrightnow.cf | 25/05/2018 |
paiementmaintenant.tk | 16/07/2017 |
ligne-de-paiement.tk | 01/03/2018 |
paiementpal.cf | 04/09/2017 |
demandenet.tk | 28/06/2017 |
Famille CoffeeMokko
La famille de renifleurs CoffeMokko conçue pour voler les cartes bancaires des utilisateurs de boutiques en ligne est utilisée depuis au moins mai 2017. Vraisemblablement, le groupe criminel du groupe 1 décrit par les experts de RiskIQ en 2016 est l'opérateur de cette famille de renifleurs. Des sites Web exécutant des CMS tels que Magento, OpenCart, WordPress, osCommerce, Shopify ont été attaqués.
Comment CoffeMokko est implémenté dans le code d'une boutique en ligne
Les opérateurs de cette famille créent des renifleurs uniques pour chaque infection : le fichier renifleur se trouve dans le répertoire src ou js sur le serveur de l'attaquant. L'implémentation dans le code du site s'effectue par un lien direct vers le sniffer.
Le code renifleur code en dur les noms des champs de formulaire à partir desquels vous souhaitez voler des données. Le renifleur vérifie également si l'utilisateur est sur la page de paiement en vérifiant la liste des mots-clés par rapport à l'adresse actuelle de l'utilisateur.
Certaines versions découvertes du renifleur étaient obscurcies et contenaient une chaîne cryptée qui stockait le tableau principal des ressources : elle contenait les noms des champs de formulaire pour divers systèmes de paiement, ainsi que l'adresse de la porte à laquelle les données volées devaient être envoyées.
Les informations de paiement volées ont été envoyées à un script sur le serveur des attaquants en cours de route. /savePayment/index.php ou /tr/index.php. Vraisemblablement, ce script est utilisé pour envoyer des données de la porte au serveur principal, qui consolide les données de tous les renifleurs. Pour masquer les données transmises, toutes les informations de paiement de la victime sont encodées à l'aide base64, puis plusieurs substitutions de caractères se produisent :
- le caractère "e" est remplacé par ":"
- le symbole "w" est remplacé par "+"
- le caractère "o" est remplacé par "%"
- le caractère "d" est remplacé par "#"
- le caractère "a" est remplacé par "-"
- le symbole "7" est remplacé par "^"
- le caractère "h" est remplacé par "_"
- le symbole "T" est remplacé par "@"
- le caractère "0" est remplacé par "/"
- le caractère "Y" est remplacé par "*"
À la suite de substitutions de caractères encodés avec base64 les données ne peuvent pas être décodées sans transformation inverse.
Voici à quoi ressemble un fragment du code renifleur qui n'a pas été obscurci :
Analyse des infrastructures
Lors des premières campagnes, les attaquants enregistraient des noms de domaine similaires à ceux de sites d'achat en ligne légitimes. Leur domaine pourrait différer du légitime par un caractère ou un autre TLD. Les domaines enregistrés ont été utilisés pour stocker le code renifleur, dont le lien était intégré dans le code du magasin.
Ce groupe a également utilisé des noms de domaine rappelant les plugins jQuery populaires (slickjs[.]org pour les sites utilisant le plugin slick.js), Passerelles de paiement (sagecdn[.]org pour les sites utilisant le système de paiement Sage Pay).
Plus tard, le groupe a commencé à créer des domaines dont le nom n'avait rien à voir avec le domaine du magasin ou le thème du magasin.
Chaque domaine correspondait au site sur lequel l'annuaire a été créé /js ou / src. Les scripts renifleurs étaient stockés dans ce répertoire : un renifleur pour chaque nouvelle infection. Le renifleur a été introduit dans le code du site via un lien direct, mais dans de rares cas, les attaquants ont modifié l'un des fichiers du site et y ont ajouté du code malveillant.
Analyse de code
Premier algorithme d'obscurcissement
Dans certains échantillons de renifleurs de cette famille, le code était obscurci et contenait des données cryptées nécessaires au fonctionnement du renifleur : en particulier, l'adresse de la porte du renifleur, une liste de champs de formulaire de paiement et, dans certains cas, un faux code de formulaire de paiement. Dans le code à l'intérieur de la fonction, les ressources ont été chiffrées avec GRATUIT par la clé qui a été passée en argument à la même fonction.
En déchiffrant la chaîne avec la clé correspondante, unique pour chaque échantillon, vous pouvez obtenir une chaîne contenant toutes les lignes du code renifleur séparées par un caractère délimiteur.
Deuxième algorithme d'obscurcissement
Dans les échantillons ultérieurs de cette famille de renifleurs, un mécanisme d'obscurcissement différent a été utilisé : dans ce cas, les données ont été chiffrées à l'aide d'un algorithme auto-écrit. Une chaîne contenant des données chiffrées nécessaires au fonctionnement du renifleur a été transmise en tant qu'argument à la fonction de déchiffrement.
À l'aide de la console du navigateur, vous pouvez déchiffrer les données chiffrées et obtenir un tableau contenant les ressources du renifleur.
Lien vers les premières attaques MageCart
Dans une analyse de l'un des domaines utilisés par le groupe comme portail pour collecter des données volées, il a été constaté que l'infrastructure de vol de cartes de crédit était déployée sur ce domaine, identique à celle utilisée par le groupe 1, l'un des premiers groupes,
Deux fichiers ont été trouvés sur l'hébergeur de la famille de renifleurs CoffeMokko :
- mage.js — fichier contenant le code de renifleur du groupe 1 avec l'adresse de la porte js-cdn.lien
- mag.php - Script PHP chargé de collecter les données volées par le sniffer
Le contenu du fichier mage.js
Il a également été déterminé que les premiers domaines utilisés par le groupe à l'origine de la famille de renifleurs CoffeMokko ont été enregistrés le 17 mai 2017 :
- lien-js[.]lien
- lien info-js[.]
- track-js[.]lien
- map-js[.]lien
- lien smart-js[.]
Le format de ces noms de domaine est le même que celui des noms de domaine du groupe 1 qui ont été utilisés lors des attaques de 2016.
Sur la base des faits découverts, on peut supposer qu'il existe un lien entre les opérateurs de renifleurs CoffeMokko et le groupe criminel du groupe 1. Vraisemblablement, les opérateurs de CoffeMokko ont peut-être emprunté des outils et des logiciels pour voler des cartes à leurs prédécesseurs. Cependant, il est plus probable que le groupe criminel à l'origine de l'utilisation des renifleurs familiaux CoffeMokko soit les mêmes personnes qui ont perpétré les attaques dans le cadre des activités du groupe 1. Après la publication du premier rapport sur les activités du groupe criminel, tous leurs les noms de domaine ont été bloqués et les outils ont été étudiés en détail et décrits. Le groupe a été contraint de faire une pause, d'affiner ses outils internes et de réécrire le code du renifleur afin de poursuivre ses attaques et de rester inaperçu.
Infrastructure
Nom de domaine | Date de découverte/apparition |
---|---|
lien-js.link | 17.05.2017 |
info-js.link | 17.05.2017 |
track-js.link | 17.05.2017 |
map-js.lien | 17.05.2017 |
smart-js.lien | 17.05.2017 |
adorebeauty.org | 03.09.2017 |
sécurité-paiement.su | 03.09.2017 |
braincdn.org | 04.09.2017 |
sagecdn.org | 04.09.2017 |
slickjs.org | 04.09.2017 |
www.oakandfort.org | 10.09.2017 |
citywlnery.org | 15.09.2017 |
dobell.su | 04.10.2017 |
childrensplayclothing.org | 31.10.2017 |
jewsondirect.com | 05.11.2017 |
boutique-rnib.org | 15.11.2017 |
placardlondon.org | 16.11.2017 |
misshaus.org | 28.11.2017 |
batterie-force.org | 01.12.2017 |
kik-vape.org | 01.12.2017 |
greatfurnituretradingco.org | 02.12.2017 |
etradesupply.org | 04.12.2017 |
remplacermyremote.org | 04.12.2017 |
all-about-sneakers.org | 05.12.2017 |
mage-checkout.org | 05.12.2017 |
nililotan.org | 07.12.2017 |
lamoodbighat.net | 08.12.2017 |
walletgear.org | 10.12.2017 |
dahlie.org | 12.12.2017 |
davidsfootwear.org | 20.12.2017 |
blackriverimaging.org | 23.12.2017 |
exrpesso.org | 02.01.2018 |
parcs.su | 09.01.2018 |
pmtonline.su | 12.01.2018 |
otocap.org | 15.01.2018 |
christohperward.org | 27.01.2018 |
coffeetea.org | 31.01.2018 |
énergiecoffe.org | 31.01.2018 |
énergietea.org | 31.01.2018 |
teacoffe.net | 31.01.2018 |
adaptivecss.org | 01.03.2018 |
coffemokko.com | 01.03.2018 |
londontea.net | 01.03.2018 |
ukcoffe.com | 01.03.2018 |
labbe.biz | 20.03.2018 |
batterienart.com | 03.04.2018 |
btosports.net | 09.04.2018 |
poussinsaddlery.net | 16.04.2018 |
paypaypay.org | 11.05.2018 |
ar500arnor.com | 26.05.2018 |
autorisecdn.com | 28.05.2018 |
slickmin.com | 28.05.2018 |
bannièrebuzz.info | 03.06.2018 |
kandypens.net | 08.06.2018 |
mylrendyphone.com | 15.06.2018 |
fraischat.info | 01.07.2018 |
3lift.org | 02.07.2018 |
abtasty.net | 02.07.2018 |
mechat.info | 02.07.2018 |
zoplm.com | 02.07.2018 |
zapaljs.com | 02.09.2018 |
foodandcot.com | 15.09.2018 |
fraisdepor.com | 15.09.2018 |
swappastore.com | 15.09.2018 |
verywellfitness.com | 15.09.2018 |
elegrina.com | 18.11.2018 |
majsurplus.com | 19.11.2018 |
top5value.com | 19.11.2018 |
Source: habr.com