Catro sniffers de JavaScript que te agardan nas tendas en liña

Catro sniffers de JavaScript que te agardan nas tendas en liña

Case todos utilizamos os servizos das tendas en liña, o que significa que tarde ou cedo corremos o risco de converternos nunha vítima de sniffers de JavaScript - código especial que os atacantes implementan nun sitio web para roubar datos de tarxetas bancarias, enderezos, inicios de sesión e contrasinais dos usuarios. .

Case 400 usuarios do sitio web e da aplicación móbil de British Airways xa se viron afectados polos sniffers, así como os visitantes da web británica do xigante deportivo FILA e da distribuidora estadounidense de billetes Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - estes e moitos outros sistemas de pago foron infectados.

O analista de Threat Intelligence Group-IB, Viktor Okorokov, fala de como os sniffers se infiltran no código do sitio web e rouban información de pago, así como de que CRM atacan.

Catro sniffers de JavaScript que te agardan nas tendas en liña

"Ameaza oculta"

Aconteceu que durante moito tempo os sniffers de JS permaneceron fóra da vista dos analistas antivirus, e os bancos e os sistemas de pago non os viron como unha ameaza seria. E completamente en balde. Expertos do Grupo IB analizado 2440 tendas en liña infectadas, cuxos visitantes -un total de preto de 1,5 millóns de persoas por día- estaban en risco de comprometerse. Entre as vítimas non só hai usuarios, senón tamén tendas en liña, sistemas de pago e bancos que emitían tarxetas comprometidas.

Informe Group-IB converteuse no primeiro estudo do mercado da darknet para os sniffers, a súa infraestrutura e métodos de monetización, o que aporta aos seus creadores millóns de dólares. Identificamos 38 familias de sniffers, das cales só 12 eran coñecidas anteriormente polos investigadores.

Detémonos en detalle nas catro familias de sniffers estudadas durante o estudo.

ReactGet Family

Os sniffers da familia ReactGet úsanse para roubar datos de tarxetas bancarias en sitios de compras en liña. O sniffer pode funcionar con un gran número de sistemas de pago diferentes utilizados no sitio: un valor de parámetro corresponde a un sistema de pago, e as versións individuais detectadas do sniffer pódense usar para roubar credenciais, así como para roubar datos da tarxeta bancaria do pago. formas de varios sistemas de pago á vez, como o chamado sniffer universal. Descubriuse que, nalgúns casos, os atacantes realizan ataques de phishing aos administradores da tenda en liña para acceder ao panel administrativo do sitio.

En maio de 2017 comezou unha campaña que utilizaba esta familia de sniffers; foron atacados sitios que executaban CMS e plataformas Magento, Bigcommerce e Shopify.

Como se implementa ReactGet no código dunha tenda en liña

Ademais da implementación "clásica" dun script a través dunha ligazón, os operadores da familia de sniffers ReactGet empregan unha técnica especial: mediante código JavaScript verifican se o enderezo actual onde se atopa o usuario cumpre determinados criterios. O código malicioso só se executará se a subcadea está presente no URL actual checkout ou pago dun paso, unha páxina/, fóra/onepag, caixa/unha, ckout/unha. Así, o código sniffer executarase exactamente no momento en que o usuario proceda a pagar as compras e introduza a información de pago no formulario do sitio.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Este sniffer usa unha técnica non estándar. Os datos persoais e de pagamento da vítima recóllense xuntos e codifican mediante base 64, e despois a cadea resultante utilízase como parámetro para enviar unha solicitude ao sitio web dos atacantes. Na maioría das veces, o camiño ata a porta imita un ficheiro JavaScript, por exemplo resp.js, datos.js etc., pero tamén se usan ligazóns a ficheiros de imaxe, GIF и JPG. A peculiaridade é que o sniffer crea un obxecto de imaxe que mide 1 por 1 píxel e utiliza a ligazón recibida anteriormente como parámetro src Imaxes. É dicir, para o usuario tal solicitude no tráfico parecerá unha solicitude dunha imaxe normal. Utilizouse unha técnica similar na familia de sniffers ImageID. Ademais, a técnica de usar unha imaxe de 1 por 1 píxeles úsase en moitos scripts de análise en liña lexítimos, que tamén poden enganar ao usuario.

Catro sniffers de JavaScript que te agardan nas tendas en liña

Análise de versións

A análise dos dominios activos utilizados polos operadores de sniffer de ReactGet revelou moitas versións diferentes desta familia de sniffers. As versións difiren na presenza ou ausencia de ofuscación e, ademais, cada sniffer está deseñado para un sistema de pago específico que procesa os pagos con tarxeta bancaria para tendas en liña. Despois de ter clasificado o valor do parámetro correspondente ao número de versión, os especialistas do Grupo-IB recibiron unha lista completa das variacións de sniffer dispoñibles e, polos nomes dos campos do formulario que cada sniffer busca no código da páxina, identificaron os sistemas de pago. ao que vai dirixido o sniffer.

Lista de sniffers e os seus correspondentes sistemas de pago

URL do sniffer Sistema de pagamento
reactjsapi.com/react.js Autorizar.Net
ajaxstatic.com/api.js?v=2.1.1 Gardar tarxetas
ajaxstatic.com/api.js?v=2.1.2 Autorizar.Net
ajaxstatic.com/api.js?v=2.1.3 Autorizar.Net
ajaxstatic.com/api.js?v=2.1.4 eWAY Rapid
ajaxstatic.com/api.js?v=2.1.5 Autorizar.Net
ajaxstatic.com/api.js?v=2.1.6 Adyen
ajaxstatic.com/api.js?v=2.1.7 USAePay
ajaxstatic.com/api.js?v=2.1.9 Autorizar.Net
apitstatus.com/api.js?v=2.1.1 USAePay
apitstatus.com/api.js?v=2.1.2 Autorizar.Net
apitstatus.com/api.js?v=2.1.3 Moneris
apitstatus.com/api.js?v=2.1.5 USAePay
apitstatus.com/api.js?v=2.1.6 PayPal
apitstatus.com/api.js?v=2.1.7 Sage Pay
apitstatus.com/api.js?v=2.1.8 Verisign
apitstatus.com/api.js?v=2.1.9 PayPal
apitstatus.com/api.js?v=2.3.0 raia
apitstatus.com/api.js?v=3.0.2 Realex
apitstatus.com/api.js?v=3.0.3 PayPal
apitstatus.com/api.js?v=3.0.4 LinkPoint
apitstatus.com/api.js?v=3.0.5 PayPal
apitstatus.com/api.js?v=3.0.7 PayPal
apitstatus.com/api.js?v=3.0.8 DataCash
apitstatus.com/api.js?v=3.0.9 PayPal
asianfoodgracer.com/footer.js Autorizar.Net
billgetstatus.com/api.js?v=1.2 Autorizar.Net
billgetstatus.com/api.js?v=1.3 Autorizar.Net
billgetstatus.com/api.js?v=1.4 Autorizar.Net
billgetstatus.com/api.js?v=1.5 Verisign
billgetstatus.com/api.js?v=1.6 Autorizar.Net
billgetstatus.com/api.js?v=1.7 Moneris
billgetstatus.com/api.js?v=1.8 Sage Pay
billgetstatus.com/api.js?v=2.0 USAePay
billgetstatus.com/react.js Autorizar.Net
cloudodesc.com/gtm.js?v=1.2 Autorizar.Net
cloudodesc.com/gtm.js?v=1.3 ANZ eGate
cloudodesc.com/gtm.js?v=2.3 Autorizar.Net
cloudodesc.com/gtm.js?v=2.4 Moneris
cloudodesc.com/gtm.js?v=2.6 Sage Pay
cloudodesc.com/gtm.js?v=2.7 Sage Pay
cloudodesc.com/gtm.js?v=2.8 Chase Paymentech
cloudodesc.com/gtm.js?v=2.9 Autorizar.Net
cloudodesc.com/gtm.js?v=2.91 Adyen
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93 Fonte cibernética
cloudodesc.com/gtm.js?v=2.95 ANZ eGate
cloudodesc.com/gtm.js?v=2.97 Realex
geisseie.com/gs.js USAePay
gtmproc.com/age.js Autorizar.Net
gtmproc.com/gtm.js?v=1.2 Autorizar.Net
gtmproc.com/gtm.js?v=1.3 ANZ eGate
gtmproc.com/gtm.js?v=1.5 PayPal
gtmproc.com/gtm.js?v=1.6 PayPal
gtmproc.com/gtm.js?v=1.7 Realex
livecheckpay.com/api.js?v=2.0 Sage Pay
livecheckpay.com/api.js?v=2.1 PayPal
livecheckpay.com/api.js?v=2.2 Verisign
livecheckpay.com/api.js?v=2.3 Autorizar.Net
livecheckpay.com/api.js?v=2.4 Verisign
livecheckpay.com/react.js Autorizar.Net
livegetpay.com/pay.js?v=2.1.2 ANZ eGate
livegetpay.com/pay.js?v=2.1.3 PayPal
livegetpay.com/pay.js?v=2.1.5 Fonte cibernética
livegetpay.com/pay.js?v=2.1.7 Autorizar.Net
livegetpay.com/pay.js?v=2.1.8 Sage Pay
livegetpay.com/pay.js?v=2.1.9 Realex
livegetpay.com/pay.js?v=2.2.0 Fonte cibernética
livegetpay.com/pay.js?v=2.2.1 PayPal
livegetpay.com/pay.js?v=2.2.2 PayPal
livegetpay.com/pay.js?v=2.2.3 PayPal
livegetpay.com/pay.js?v=2.2.4 Verisign
livegetpay.com/pay.js?v=2.2.5 eWAY Rapid
livegetpay.com/pay.js?v=2.2.7 Sage Pay
livegetpay.com/pay.js?v=2.2.8 Sage Pay
livegetpay.com/pay.js?v=2.2.9 Verisign
livegetpay.com/pay.js?v=2.3.0 Autorizar.Net
livegetpay.com/pay.js?v=2.3.1 Autorizar.Net
livegetpay.com/pay.js?v=2.3.2 Primeira pasarela global de datos
livegetpay.com/pay.js?v=2.3.3 Autorizar.Net
livegetpay.com/pay.js?v=2.3.4 Autorizar.Net
livegetpay.com/pay.js?v=2.3.5 Moneris
livegetpay.com/pay.js?v=2.3.6 Autorizar.Net
livegetpay.com/pay.js?v=2.3.8 PayPal
livegetpay.com/pay.js?v=2.4.0 Verisign
maxstatics.com/site.js USAePay
mediapack.info/track.js?d=funlove.com USAePay
mediapack.info/track.js?d=qbedding.com Autorizar.Net
mediapack.info/track.js?d=vseyewear.com Verisign
mxcounter.com/c.js?v=1.2 PayPal
mxcounter.com/c.js?v=1.3 Autorizar.Net
mxcounter.com/c.js?v=1.4 raia
mxcounter.com/c.js?v=1.6 Autorizar.Net
mxcounter.com/c.js?v=1.7 eWAY Rapid
mxcounter.com/c.js?v=1.8 Sage Pay
mxcounter.com/c.js?v=2.0 Autorizar.Net
mxcounter.com/c.js?v=2.1 Braintree
mxcounter.com/c.js?v=2.10 Braintree
mxcounter.com/c.js?v=2.2 PayPal
mxcounter.com/c.js?v=2.3 Sage Pay
mxcounter.com/c.js?v=2.31 Sage Pay
mxcounter.com/c.js?v=2.32 Autorizar.Net
mxcounter.com/c.js?v=2.33 PayPal
mxcounter.com/c.js?v=2.34 Autorizar.Net
mxcounter.com/c.js?v=2.35 Verisign
mxcounter.com/click.js?v=1.2 PayPal
mxcounter.com/click.js?v=1.3 Autorizar.Net
mxcounter.com/click.js?v=1.4 raia
mxcounter.com/click.js?v=1.6 Autorizar.Net
mxcounter.com/click.js?v=1.7 eWAY Rapid
mxcounter.com/click.js?v=1.8 Sage Pay
mxcounter.com/click.js?v=2.0 Autorizar.Net
mxcounter.com/click.js?v=2.1 Braintree
mxcounter.com/click.js?v=2.2 PayPal
mxcounter.com/click.js?v=2.3 Sage Pay
mxcounter.com/click.js?v=2.31 Sage Pay
mxcounter.com/click.js?v=2.32 Autorizar.Net
mxcounter.com/click.js?v=2.33 PayPal
mxcounter.com/click.js?v=2.34 Autorizar.Net
mxcounter.com/click.js?v=2.35 Verisign
mxcounter.com/cnt.js Autorizar.Net
mxcounter.com/j.js Autorizar.Net
newrelicnet.com/api.js?v=1.2 Autorizar.Net
newrelicnet.com/api.js?v=1.4 Autorizar.Net
newrelicnet.com/api.js?v=1.8 Sage Pay
newrelicnet.com/api.js?v=4.5 Sage Pay
newrelicnet.com/api.js?v=4.6 Westpac PayWay
nr-public.com/api.js?v=2.0 PayFort
nr-public.com/api.js?v=2.1 PayPal
nr-public.com/api.js?v=2.2 Autorizar.Net
nr-public.com/api.js?v=2.3 raia
nr-public.com/api.js?v=2.4 Primeira pasarela global de datos
nr-public.com/api.js?v=2.5 PsiGate
nr-public.com/api.js?v=2.6 Autorizar.Net
nr-public.com/api.js?v=2.7 Autorizar.Net
nr-public.com/api.js?v=2.8 Moneris
nr-public.com/api.js?v=2.9 Autorizar.Net
nr-public.com/api.js?v=3.1 Sage Pay
nr-public.com/api.js?v=3.2 Verisign
nr-public.com/api.js?v=3.3 Moneris
nr-public.com/api.js?v=3.5 PayPal
nr-public.com/api.js?v=3.6 LinkPoint
nr-public.com/api.js?v=3.7 Westpac PayWay
nr-public.com/api.js?v=3.8 Autorizar.Net
nr-public.com/api.js?v=4.0 Moneris
nr-public.com/api.js?v=4.0.2 PayPal
nr-public.com/api.js?v=4.0.3 Adyen
nr-public.com/api.js?v=4.0.4 PayPal
nr-public.com/api.js?v=4.0.5 Autorizar.Net
nr-public.com/api.js?v=4.0.6 USAePay
nr-public.com/api.js?v=4.0.7 EBizCharge
nr-public.com/api.js?v=4.0.8 Autorizar.Net
nr-public.com/api.js?v=4.0.9 Verisign
nr-public.com/api.js?v=4.1.2 Verisign
ordercheckpays.com/api.js?v=2.11 Autorizar.Net
ordercheckpays.com/api.js?v=2.12 PayPal
ordercheckpays.com/api.js?v=2.13 Moneris
ordercheckpays.com/api.js?v=2.14 Autorizar.Net
ordercheckpays.com/api.js?v=2.15 PayPal
ordercheckpays.com/api.js?v=2.16 PayPal
ordercheckpays.com/api.js?v=2.17 Westpac PayWay
ordercheckpays.com/api.js?v=2.18 Autorizar.Net
ordercheckpays.com/api.js?v=2.19 Autorizar.Net
ordercheckpays.com/api.js?v=2.21 Sage Pay
ordercheckpays.com/api.js?v=2.22 Verisign
ordercheckpays.com/api.js?v=2.23 Autorizar.Net
ordercheckpays.com/api.js?v=2.24 PayPal
ordercheckpays.com/api.js?v=2.25 PayFort
ordercheckpays.com/api.js?v=2.29 Fonte cibernética
ordercheckpays.com/api.js?v=2.4 PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7 Autorizar.Net
ordercheckpays.com/api.js?v=2.8 Autorizar.Net
ordercheckpays.com/api.js?v=2.9 Verisign
ordercheckpays.com/api.js?v=3.1 Autorizar.Net
ordercheckpays.com/api.js?v=3.2 Autorizar.Net
ordercheckpays.com/api.js?v=3.3 Sage Pay
ordercheckpays.com/api.js?v=3.4 Autorizar.Net
ordercheckpays.com/api.js?v=3.5 raia
ordercheckpays.com/api.js?v=3.6 Autorizar.Net
ordercheckpays.com/api.js?v=3.7 Autorizar.Net
ordercheckpays.com/api.js?v=3.8 Verisign
ordercheckpays.com/api.js?v=3.9 PayPal
ordercheckpays.com/api.js?v=4.0 Autorizar.Net
ordercheckpays.com/api.js?v=4.1 Autorizar.Net
ordercheckpays.com/api.js?v=4.2 Sage Pay
ordercheckpays.com/api.js?v=4.3 Autorizar.Net
reactjsapi.com/api.js?v=0.1.0 Autorizar.Net
reactjsapi.com/api.js?v=0.1.1 PayPal
reactjsapi.com/api.js?v=4.1.2 Pederneira
reactjsapi.com/api.js?v=4.1.4 PayPal
reactjsapi.com/api.js?v=4.1.5 Sage Pay
reactjsapi.com/api.js?v=4.1.51 Verisign
reactjsapi.com/api.js?v=4.1.6 Autorizar.Net
reactjsapi.com/api.js?v=4.1.7 Autorizar.Net
reactjsapi.com/api.js?v=4.1.8 raia
reactjsapi.com/api.js?v=4.1.9 Cebra gorda
reactjsapi.com/api.js?v=4.2.0 Sage Pay
reactjsapi.com/api.js?v=4.2.1 Autorizar.Net
reactjsapi.com/api.js?v=4.2.2 Primeira pasarela global de datos
reactjsapi.com/api.js?v=4.2.3 Autorizar.Net
reactjsapi.com/api.js?v=4.2.4 eWAY Rapid
reactjsapi.com/api.js?v=4.2.5 Adyen
reactjsapi.com/api.js?v=4.2.7 PayPal
reactjsapi.com/api.js?v=4.2.8 Servizos comerciais de QuickBooks
reactjsapi.com/api.js?v=4.2.9 Verisign
reactjsapi.com/api.js?v=4.2.91 Sage Pay
reactjsapi.com/api.js?v=4.2.92 Verisign
reactjsapi.com/api.js?v=4.2.94 Autorizar.Net
reactjsapi.com/api.js?v=4.3.97 Autorizar.Net
reactjsapi.com/api.js?v=4.5 Sage Pay
reactjsapi.com/react.js Autorizar.Net
sydneysalonsupplies.com/gtm.js eWAY Rapid
tagsmediaget.com/react.js Autorizar.Net
tagstracking.com/tag.js?v=2.1.2 ANZ eGate
tagstracking.com/tag.js?v=2.1.3 PayPal
tagstracking.com/tag.js?v=2.1.5 Fonte cibernética
tagstracking.com/tag.js?v=2.1.7 Autorizar.Net
tagstracking.com/tag.js?v=2.1.8 Sage Pay
tagstracking.com/tag.js?v=2.1.9 Realex
tagstracking.com/tag.js?v=2.2.0 Fonte cibernética
tagstracking.com/tag.js?v=2.2.1 PayPal
tagstracking.com/tag.js?v=2.2.2 PayPal
tagstracking.com/tag.js?v=2.2.3 PayPal
tagstracking.com/tag.js?v=2.2.4 Verisign
tagstracking.com/tag.js?v=2.2.5 eWAY Rapid
tagstracking.com/tag.js?v=2.2.7 Sage Pay
tagstracking.com/tag.js?v=2.2.8 Sage Pay
tagstracking.com/tag.js?v=2.2.9 Verisign
tagstracking.com/tag.js?v=2.3.0 Autorizar.Net
tagstracking.com/tag.js?v=2.3.1 Autorizar.Net
tagstracking.com/tag.js?v=2.3.2 Primeira pasarela global de datos
tagstracking.com/tag.js?v=2.3.3 Autorizar.Net
tagstracking.com/tag.js?v=2.3.4 Autorizar.Net
tagstracking.com/tag.js?v=2.3.5 Moneris
tagstracking.com/tag.js?v=2.3.6 Autorizar.Net
tagstracking.com/tag.js?v=2.3.8 PayPal

Detector de contrasinais

Unha das vantaxes dos sniffers de JavaScript que traballan no lado do cliente dun sitio web é a súa versatilidade: o código malicioso incrustado nun sitio web pode roubar calquera tipo de datos, xa sexan datos de pago ou o inicio de sesión e o contrasinal dunha conta de usuario. Os especialistas do Grupo IB descubriron unha mostra dun sniffer pertencente á familia ReactGet, deseñada para roubar enderezos de correo electrónico e contrasinais dos usuarios do sitio.

Catro sniffers de JavaScript que te agardan nas tendas en liña

Intersección co sniffer ImageID

Durante a análise dunha das tendas infectadas, comprobouse que o seu sitio web estaba infectado dúas veces: ademais do código malicioso do sniffer da familia ReactGet, detectouse código do sniffer da familia ImageID. Esta superposición podería ser unha evidencia de que os operadores detrás de ambos os sniffers usan técnicas similares para inxectar código malicioso.

Catro sniffers de JavaScript que te agardan nas tendas en liña

Sniffer universal

Unha análise dun dos nomes de dominio asociados á infraestrutura sniffer ReactGet revelou que o mesmo usuario rexistrara outros tres nomes de dominio. Estes tres dominios imitaban os dominios dos sitios web da vida real e anteriormente usábanse para aloxar sniffers. Ao analizar o código de tres sitios lexítimos, detectouse un sniffer descoñecido e unha análise posterior mostrou que se trataba dunha versión mellorada do sniffer ReactGet. Todas as versións previamente monitorizadas desta familia de sniffers estaban dirixidas a un único sistema de pago, é dicir, cada sistema de pago requiría unha versión especial do sniffer. Non obstante, neste caso, descubriuse unha versión universal do sniffer capaz de roubar información de formularios relacionados con 15 sistemas de pago diferentes e módulos de sitios de comercio electrónico para realizar pagos en liña.

Así, ao comezo do traballo, o sniffer buscou campos básicos do formulario que conteñan a información persoal da vítima: nome completo, enderezo físico, número de teléfono.

Catro sniffers de JavaScript que te agardan nas tendas en liña
A continuación, o sniffer buscou en 15 prefixos diferentes correspondentes a diferentes sistemas de pago e módulos de pago en liña.

Catro sniffers de JavaScript que te agardan nas tendas en liña
A continuación, recompiláronse os datos persoais da vítima e a información de pago en conxunto e enviáronse a un sitio controlado polo atacante: neste caso concreto, descubríronse dúas versións do sniffer universal ReactGet, situadas en dous sitios pirateados diferentes. Non obstante, ambas as versións enviaron datos roubados ao mesmo sitio pirateado zoobashop.com.

Catro sniffers de JavaScript que te agardan nas tendas en liña
A análise dos prefixos que utilizaba o sniffer para buscar campos que conteñan a información de pago da vítima permitiunos determinar que esta mostra de sniffer estaba dirixida aos seguintes sistemas de pago:

  • Autorizar.Net
  • Verisign
  • Primeiros datos
  • USAePay
  • raia
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Pagos Realex
  • PsiGate
  • Sistemas de pago Heartland

Que ferramentas se utilizan para roubar información de pago?

A primeira ferramenta, descuberta durante a análise da infraestrutura dos atacantes, úsase para ofuscar scripts maliciosos responsables do roubo de tarxetas bancarias. Descubriuse un script bash que usa a CLI do proxecto nun dos hosts do atacante javascript-ofuscator para automatizar o ofuscamento do código sniffer.

Catro sniffers de JavaScript que te agardan nas tendas en liña
A segunda ferramenta descuberta está deseñada para xerar código responsable da carga do sniffer principal. Esta ferramenta xera código JavaScript que verifica se o usuario está na páxina de pago buscando cadeas no enderezo actual do usuario. checkout, cesta e así por diante, e se o resultado é positivo, entón o código carga o sniffer principal do servidor dos atacantes. Para ocultar a actividade maliciosa, todas as liñas, incluídas as liñas de proba para determinar a páxina de pago, así como unha ligazón ao sniffer, codifican mediante base 64.

Catro sniffers de JavaScript que te agardan nas tendas en liña

Ataques de phishing

Unha análise da infraestrutura de rede dos atacantes revelou que o grupo criminal adoita utilizar o phishing para acceder ao panel administrativo da tenda en liña de destino. Os atacantes rexistran un dominio que é visualmente similar ao dominio dunha tenda e, a continuación, despregan nel un formulario de inicio de sesión falso no panel de administración de Magento. Se teñen éxito, os atacantes terán acceso ao panel administrativo do CMS Magento, que lles dá a oportunidade de editar os compoñentes do sitio web e implementar un sniffer para roubar os datos da tarxeta de crédito.

Catro sniffers de JavaScript que te agardan nas tendas en liña
A Infraestrutura

Домен Data de descubrimento/aparición
mediapack.info 04.05.2017
adsgetapi.com 15.06.2017
simcounter.com 14.08.2017
mageanalytics.com 22.12.2017
maxstatics.com 16.01.2018
reactjsapi.com 19.01.2018
mxcounter.com 02.02.2018
apitstatus.com 01.03.2018
orderracker.com 20.04.2018
tagstracking.com 25.06.2018
adsapigate.com 12.07.2018
trust-tracker.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
payselector.com 21.10.2018
tagsmediaget.com 02.11.2018
hs-payments.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

Familia G-Analytics

Esta familia de sniffers úsase para roubar tarxetas de clientes das tendas en liña. O primeiro nome de dominio utilizado polo grupo rexistrouse en abril de 2016, o que pode indicar que o grupo comezou a actividade a mediados de 2016.

Na campaña actual, o grupo utiliza nomes de dominio que imitan servizos da vida real, como Google Analytics e jQuery, enmascarando a actividade dos sniffers con scripts lexítimos e nomes de dominio similares aos lexítimos. Os sitios que executaban o CMS Magento foron atacados.

Como se implementa G-Analytics no código dunha tenda en liña

Unha característica distintiva desta familia é o uso de varios métodos para roubar a información de pago dos usuarios. Ademais da clásica inxección de código JavaScript no lado do cliente do sitio, o grupo criminal tamén utilizou técnicas de inxección de código no lado do servidor do sitio, é dicir, scripts PHP que procesan os datos introducidos polo usuario. Esta técnica é perigosa porque dificulta que os investigadores de terceiros detecten código malicioso. Os especialistas do Grupo IB descubriron unha versión dun sniffer incrustado no código PHP do sitio, usando un dominio como porta dittm.org.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Tamén se descubriu unha versión inicial dun sniffer que usa o mesmo dominio para recoller datos roubados dittm.org, pero esta versión está pensada para a instalación no lado do cliente dunha tenda en liña.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Máis tarde, o grupo cambiou de táctica e empezou a concentrarse máis en ocultar actividade maliciosa e camuflaxe.

A principios de 2017, o grupo comezou a utilizar o dominio jquery-js.com, disfrazado de CDN para jQuery: ao ir ao sitio dos atacantes, o usuario é redirixido a un sitio lexítimo jquery.com.

E a mediados de 2018, o grupo adoptou o nome de dominio g-analytics.com e comezou a disfrazar as actividades do sniffer como un servizo lexítimo de Google Analytics.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Catro sniffers de JavaScript que te agardan nas tendas en liña

Análise de versións

Durante a análise dos dominios utilizados para almacenar o código sniffer, comprobouse que o sitio contén un gran número de versións, que se diferencian pola presenza de ofuscación, así como pola presenza ou ausencia de código inalcanzable engadido ao ficheiro para distraer a atención. e ocultar código malicioso.

Total no sitio jquery-js.com Identificáronse seis versións de sniffers. Estes sniffers envían os datos roubados a un enderezo situado no mesmo sitio web que o propio sniffer: 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

Dominio posterior g-analytics.com, utilizado polo grupo en ataques desde mediados de 2018, serve como repositorio para máis sniffers. En total, descubríronse 16 versións diferentes do sniffer. Neste caso, a porta para o envío de datos roubados estaba disfrazada de ligazón a un formato de imaxe 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

Monetización de datos roubados

O grupo criminal monetiza os datos roubados vendendo tarxetas a través dunha tenda subterránea especialmente creada que ofrece servizos aos cartóns. A análise dos dominios utilizados polos atacantes permitiunos determinalo google-analytics.cm foi rexistrado polo mesmo usuario que o dominio cardz.vc. Dominio cardz.vc refírese a unha tenda que vendía tarxetas bancarias roubadas Cardsurfs (Flysurfs), que gañou popularidade nos tempos da actividade da plataforma de negociación subterránea AlphaBay como unha tenda de venda de tarxetas bancarias roubadas mediante un sniffer.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Analizando o dominio analítico.é, situado no mesmo servidor que os dominios utilizados polos sniffers para recoller datos roubados, os especialistas do Grupo-IB descubriron un ficheiro que contén rexistros de roubos de cookies, que parece que foi abandonado posteriormente polo programador. Unha das entradas do rexistro contiña un dominio iozoz.com, que se utilizou anteriormente nun dos sniffers activos en 2016. Presumiblemente, este dominio foi usado anteriormente por un atacante para recoller tarxetas roubadas mediante un sniffer. Este dominio rexistrouse nun enderezo de correo electrónico [protexido por correo electrónico], que tamén se utilizaba para rexistrar dominios cardz.su и cardz.vc, relacionada coa tenda de carding Cardsurfs.

A partir dos datos obtidos, pódese supoñer que a familia de sniffers G-Analytics e a tenda subterránea que vende tarxetas bancarias Cardsurfs son xestionadas polas mesmas persoas, e a tenda úsase para vender tarxetas bancarias roubadas mediante o sniffer.

A Infraestrutura

Домен Data de descubrimento/aparición
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
analítico.to 04.12.2018
google-analytics.to 06.12.2018
google-analytics.cm 28.12.2018
analítico.é 28.12.2018
google-analytics.cm 17.01.2019

Familia Illum

Illum é unha familia de sniffers utilizados para atacar tendas en liña que executan o CMS Magento. Ademais de introducir código malicioso, os operadores deste sniffer tamén usan a introdución de formularios de pago falsos completos que envían datos a portas controladas por atacantes.

Ao analizar a infraestrutura de rede utilizada polos operadores deste sniffer, observouse unha gran cantidade de scripts maliciosos, exploits, formularios de pago falsos, así como unha colección de exemplos con sniffers maliciosos de competidores. A partir da información sobre as datas de aparición dos nomes de dominio utilizados polo grupo, pódese supoñer que a campaña comezou a finais de 2016.

Como se implementa Illum no código dunha tenda en liña

As primeiras versións do sniffer descubertas foron incrustadas directamente no código do sitio comprometido. Os datos roubados foron enviados a cdn.illum[.]pw/records.php, a porta foi codificada usando base 64.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Máis tarde, descubriuse unha versión empaquetada do sniffer que usa unha porta diferente: records.nstatistics[.]com/records.php.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Conforme informe Willem de Groot, o mesmo host utilizouse no sniffer, que foi implementado en sitio web da tenda, propiedade do partido político alemán CSU.

Análise do sitio web dos atacantes

Os especialistas do Grupo IB descubriron e analizaron un sitio web utilizado por este grupo criminal para almacenar ferramentas e recompilar información roubada.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Entre as ferramentas atopadas no servidor dos atacantes atopáronse scripts e exploits para aumentar os privilexios no sistema operativo Linux: por exemplo, o Linux Privilege Escalation Check Script desenvolvido por Mike Czumak, así como un exploit para CVE-2009-1185.

Os atacantes utilizaron dous exploits directamente para atacar tendas en liña: primeiro capaz de inxectar código malicioso datos_config_núcleo mediante a explotación de CVE-2016-4010, segundo explota unha vulnerabilidade RCE en complementos para CMS Magento, o que permite executar código arbitrario nun servidor web vulnerable.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Ademais, durante a análise do servidor descubríronse varias mostras de sniffers e formularios de pago falsos, utilizados polos atacantes para recoller información de pago de sitios pirateados. Como podes ver na seguinte lista, algúns scripts creáronse individualmente para cada sitio pirateado, mentres que se utilizou unha solución universal para certos CMS e pasarelas de pago. Por exemplo, guións segapay_standart.js и segapay_onpage.js deseñado para a súa implementación en sitios que utilizan a pasarela de pago Sage Pay.

Lista de scripts para varias pasarelas de pago

Guión Pasarela de pago
sr.illum[.]pw/mjs_special/visiondirect.co.uk.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/topdierenshop.nl.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/tiendalenovo.es.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/pro-bolt.com.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/plae.co.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/ottolenghi.co.uk.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/oldtimecandy.com.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/mylook.ee.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs_special/luluandsky.com.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/julep.com.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs_special/gymcompany.es.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/grotekadoshop.nl.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/fushi.co.uk.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/fareastflora.com.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/compuindia.com.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs/segapay_standart.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs/segapay_onpage.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs/replace_standart.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs/all_inputs.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs/add_inputs_standart.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/magento/payment_standart.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/magento/payment_redirect.js //paga agora[.]cf/?payment=
sr.illum[.]pw/magento/payment_redcrypt.js //paga agora[.]cf/?payment=
sr.illum[.]pw/magento/payment_forminsite.js //paymentnow[.]tk/?payment=

Anfitrión pago agora[.]tk, usado como porta nun guión payment_forminsite.js, foi descuberto como subjectAltName en varios certificados relacionados co servizo CloudFlare. Ademais, o anfitrión contiña un guión mal.js. A xulgar polo nome do script, podería usarse como parte da explotación de CVE-2016-4010, grazas ao cal é posible inxectar código malicioso no pé de páxina dun sitio que executa CMS Magento. O host utilizou este script como porta request.requestnet[.]tkusando o mesmo certificado que o host pago agora[.]tk.

Formularios de pago falsos

A figura seguinte mostra un exemplo de formulario para introducir datos da tarxeta. Este formulario utilizouse para infiltrarse nunha tenda en liña e roubar datos da tarxeta.

Catro sniffers de JavaScript que te agardan nas tendas en liña
A seguinte figura mostra un exemplo dun formulario de pago de PayPal falso que os atacantes utilizaron para infiltrarse en sitios con este método de pago.
Catro sniffers de JavaScript que te agardan nas tendas en liña
A Infraestrutura

Домен Data de descubrimento/aparición
cdn.illum.pw 27/11/2016
records.nstatistics.com 06/09/2018
solicitude.pagar agora.cf 25/05/2018
pago agora.tk 16/07/2017
liña de pago.tk 01/03/2018
paymentpal.cf 04/09/2017
requestnet.tk 28/06/2017

Café da familia Mokko

A familia de sniffers CoffeMokko, deseñada para roubar tarxetas bancarias aos usuarios da tenda en liña, está en uso polo menos desde maio de 2017. Presumiblemente, os operadores desta familia de sniffers son o grupo criminal Grupo 1, descrito polos especialistas de RiskIQ en 2016. Sitios que executaban CMS como Magento, OpenCart, WordPress, osCommerce e Shopify foron atacados.

Como se implementa CoffeMokko no código dunha tenda en liña

Os operadores desta familia crean sniffer únicos para cada infección: o ficheiro sniffer está situado no directorio src ou js no servidor dos atacantes. A incorporación ao código do sitio realízase a través dunha ligazón directa ao sniffer.

Catro sniffers de JavaScript que te agardan nas tendas en liña
O código sniffer codifica os nomes dos campos do formulario dos que hai que roubar os datos. O sniffer tamén verifica se o usuario está na páxina de pago comprobando a lista de palabras clave co enderezo actual do usuario.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Algunhas versións descubertas do sniffer estaban ofuscadas e contiñan unha cadea cifrada na que se almacenaba a matriz principal de recursos: contiña os nomes dos campos de formulario para varios sistemas de pago, así como o enderezo da porta á que debían enviarse os datos roubados.

Catro sniffers de JavaScript que te agardan nas tendas en liña
A información de pago roubada foi enviada a un script no servidor dos atacantes ao longo do camiño /savePayment/index.php ou /tr/index.php. Presumiblemente, este script úsase para enviar datos desde a porta ao servidor principal, que consolida os datos de todos os sniffers. Para ocultar os datos transmitidos, toda a información de pago da vítima está cifrada mediante base 64, e despois ocorren varias substitucións de caracteres:

  • o carácter "e" substitúese por ":"
  • o símbolo "w" substitúese por "+"
  • o carácter "o" substitúese por "%"
  • o carácter "d" substitúese por "#"
  • o carácter "a" substitúese por "-"
  • o símbolo "7" substitúese por "^"
  • o carácter "h" substitúese por "_"
  • o símbolo "T" substitúese por "@"
  • o carácter "0" substitúese por "/"
  • o carácter "Y" substitúese por "*"

Como resultado das substitucións de caracteres codificadas usando base 64 Os datos non se poden decodificar sen realizar a conversión inversa.

Así se ve un fragmento de código sniffer que non foi ofuscado:

Catro sniffers de JavaScript que te agardan nas tendas en liña

Análise de infraestruturas

Nas primeiras campañas, os atacantes rexistraron nomes de dominio similares aos dos sitios de compras en liña lexítimos. O seu dominio pode diferir do lexítimo por un símbolo ou outro TLD. Os dominios rexistrados usáronse para almacenar o código sniffer, un enlace ao que estaba incrustado no código da tenda.

Este grupo tamén utilizou nomes de dominio que lembran os populares complementos de jQuery (slickjs[.]org para sitios que usan o complemento slick.js), pasarelas de pago (sagecdn[.]org para sitios que utilizan o sistema de pago Sage Pay).

Máis tarde, o grupo comezou a crear dominios cuxos nomes non tiñan nada que ver co dominio da tenda nin co tema da tenda.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Cada dominio correspondía a un sitio no que se creou o directorio /js ou /src. Os scripts sniffer almacenáronse neste directorio: un sniffer por cada infección nova. O sniffer foi incrustado no código do sitio web a través dunha ligazón directa, pero en casos raros, os atacantes modificaron un dos ficheiros do sitio web e engadiron código malicioso a el.

Análise de código

Primeiro algoritmo de ofuscación

Nalgunhas mostras descubertas de sniffer desta familia, o código estaba ofuscado e contiña datos cifrados necesarios para que o sniffer funcione: en particular, o enderezo da porta de sniffer, unha lista de campos do formulario de pago e, nalgúns casos, o código dun falso. formulario de pago. No código dentro da función, os recursos foron cifrados usando XOR pola clave que se pasou como argumento para a mesma función.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Ao descifrar a cadea coa clave adecuada, única para cada mostra, podes obter unha cadea que conteña todas as cadeas do código sniffer separadas por un carácter separador.

Catro sniffers de JavaScript que te agardan nas tendas en liña

Segundo algoritmo de ofuscación

En mostras posteriores de sniffers desta familia utilizouse un mecanismo de ofuscación diferente: neste caso, os datos foron cifrados mediante un algoritmo autoescrito. Pasouse unha cadea que contén datos cifrados necesarios para que o detector funcione como argumento para a función de descifrado.

Catro sniffers de JavaScript que te agardan nas tendas en liña
Usando a consola do navegador, podes descifrar os datos cifrados e obter unha matriz que conteña recursos sniffer.

Catro sniffers de JavaScript que te agardan nas tendas en liña

Conexión aos primeiros ataques de MageCart

Durante a análise dun dos dominios utilizados polo grupo como pasarela para recoller datos roubados, comprobouse que este dominio despregou unha infraestrutura para o roubo de tarxetas de crédito, idéntica á utilizada polo Grupo 1, un dos primeiros grupos, descuberto por especialistas en RiskIQ.

Atopáronse dous ficheiros sobre o anfitrión da familia de sniffers CoffeMokko:

  • mago.js — ficheiro que contén o código sniffer do Grupo 1 co enderezo da porta js-cdn.link
  • mag.php — Script PHP responsable da recollida de datos roubados polo sniffer

Contido do ficheiro mage.js Catro sniffers de JavaScript que te agardan nas tendas en liña
Tamén se determinou que os primeiros dominios utilizados polo grupo detrás da familia de sniffers CoffeMokko rexistráronse o 17 de maio de 2017:

  • ligazón-js[.]ligazón
  • info-js[.]ligazón
  • track-js[.]ligazón
  • mapa-js[.]ligazón
  • ligazón smart-js[.]

O formato destes nomes de dominio coincide cos nomes de dominio do Grupo 1 que se utilizaron nos ataques de 2016.

En base aos feitos descubertos, pódese supoñer que existe unha conexión entre os operadores dos sniffers CoffeMokko e o grupo criminal Grupo 1. Presumiblemente, os operadores de CoffeMokko poderían ter prestado ferramentas e software dos seus predecesores para roubar tarxetas. Non obstante, é máis probable que o grupo criminal detrás do uso da familia de sniffers CoffeMokko sexan as mesmas persoas que levaron a cabo os ataques do Grupo 1. Tras a publicación do primeiro informe sobre as actividades do grupo criminal, todos os seus nomes de dominio foron bloqueáronse e estudáronse e describíronse detalladamente as ferramentas. O grupo viuse obrigado a tomar un descanso, perfeccionar as súas ferramentas internas e reescribir o código sniffer para continuar os seus ataques e non ser detectado.

A Infraestrutura

Домен Data de descubrimento/aparición
link-js.link 17.05.2017
info-js.link 17.05.2017
track-js.link 17.05.2017
mapa-js.link 17.05.2017
smart-js.link 17.05.2017
adorebeauty.org 03.09.2017
seguridade-pagamento.su 03.09.2017
braincdn.org 04.09.2017
sagecdn.org 04.09.2017
slickjs.org 04.09.2017
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
shop-rnib.org 15.11.2017
closetlondon.org 16.11.2017
misshaus.org 28.11.2017
battery-force.org 01.12.2017
kik-vape.org 01.12.2017
greatfurnituretradingco.org 02.12.2017
etradesupply.org 04.12.2017
replacemyremote.org 04.12.2017
todo-sobre-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
blackriveimaging.org 23.12.2017
exrpesso.org 02.01.2018
parques.su 09.01.2018
pmtonline.su 12.01.2018
otocap.org 15.01.2018
christohperward.org 27.01.2018
coffetea.org 31.01.2018
energycoffe.org 31.01.2018
energytea.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
batterynart.com 03.04.2018
btosports.net 09.04.2018
chicksaddlery.net 16.04.2018
paypaypay.org 11.05.2018
ar500arnor.com 26.05.2018
authorizecdn.com 28.05.2018
slickmin.com 28.05.2018
bannerbuzz.info 03.06.2018
kandypens.net 08.06.2018
mylrendyphone.com 15.06.2018
freshchat.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
freshdepor.com 15.09.2018
swappastore.com 15.09.2018
verywellfitnesse.com 15.09.2018
elegrina.com 18.11.2018
majsurplus.com 19.11.2018
top5value.com 19.11.2018

Fonte: www.habr.com

Engadir un comentario