Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Prakticky každý z nás využívá služeb online obchodů, což znamená, že dříve či později riskuje, že se stane obětí JavaScriptových snifferů — speciálního kódu, který útočníci vkládají na webovou stránku za účelem krádeže údajů o platebních kartách, adres, přihlašovacích jmen a hesel uživatelů.

Sniffery již zasáhly téměř 400 000 uživatelů webových stránek a mobilních aplikací letecké společnosti British Airways, stejně jako návštěvníky britského webu sportovního giganta FILA a amerického distributora lístků Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris — tyto a mnoho dalších platebních systémů bylo infikováno.

Analytik Threat Intelligence Group-IB Viktor Okorokov vysvětluje, jak se sniffery integrují do kódu webových stránek a kradou platební informace, a také o tom, které CRM systémy napadají.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

„Skrytá hrozba“

Stalo se tak, že sniffery JS zůstávaly po dlouhou dobu mimo zorné pole antivirových analytiků a banky a platební systémy je nepovažovaly za vážnou hrozbu. A naprosto zbytečně. Odborníci Group-IB analyzovali 2440 infikovaných online obchodů, jejichž návštěvníci — celkem přibližně 1,5 milionu lidí denně — byli vystaveni riziku kompromitace. Mezi postiženými jsou nejen uživatelé, ale také online obchody, platební systémy a banky, které vydaly zkompromitované karty.

Zpráva Group-IB se stal prvním výzkumem darknetového trhu snifferů, jejich infrastruktury a způsobů monetizace, které jejich tvůrcům přináší miliony dolarů. Objevili jsme 38 rodin snifferů, z nichž pouze 12 bylo dříve známých výzkumníkům.

Podrobně se zaměříme na čtyři rodiny snifferů, které byly zkoumány během výzkumu.

Rodina ReactGet

Snímače rodiny ReactGet se používají k krádeži údajů o bankovních kartách na webových stránkách online obchodů. Snímač může pracovat s velkým počtem různých platebních systémů používaných na webu: jedna hodnota parametru odpovídá jednomu platebnímu systému, a jednotlivé zjištěné verze snímače mohou být použity k získání přihlašovacích údajů a také k krádeži údajů o bankovních kartách z platebních formulářů hned několika platebních systémů, jako takzvaný univerzální snímač. Bylo zjištěno, že v některých případech útočníci provádějí phishingové útoky na administrátory online obchodů s cílem získat přístup do administračního panelu webu.

Kampaň s využitím této rodiny snímačů začala v květnu 2017, cílem útoků byly weby spravované CMS a platformami Magento, Bigcommerce, Shopify.

Jak se ReactGet integruje do kódu online obchodu

Kromě 'klasického' implementování skriptu prostřednictvím odkazu, operátoři snímačů rodiny ReactGet používají zvláštní techniku: pomocí JavaScriptového kódu se kontroluje, zda aktuální adresa, na které se uživatel nachází, vyhovuje určitým kritériím. Malicious code will run only if the current URL contains a substring checkout nebo onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Takto se kód snímače provede přesně v okamžiku, kdy uživatel přejde k platbě a zadá platební údaje do formuláře na webu.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Tento snímač používá nestandardní techniku. Platební a osobní údaje oběti jsou shromažďovány dohromady, kódovány pomocí base64, a poté je získaný řetězec použit jako parameter pro odeslání žádosti na stránku útočníků. Nejčastěji cesta k bráně imituje JavaScriptový soubor, například resp.js, data.js a tak dále, ale také se používají odkazy na soubory obrázků, GIF a JPG. Zajímavostí je, že snímač vytváří objekt obrázku o rozměrech 1 na 1 pixel a používá dříve získaný odkaz jako parametr. src Obrázky. To znamená, že pro uživatele bude takový požadavek v provozu vypadat jako žádost o běžný obrázek. Podobná technika byla použita u snifferů rodiny ImageID. Kromě toho, technika použití obrázku o rozměrech 1 na 1 pixel se používá v mnoha legitimních skriptech online analytiky, což může také uživatele zmást.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Analýza verzí

Analýza aktivních domén používaných operátory snifferů ReactGet odhalila mnoho různých verzí snifferů této rodiny. Verze se liší přítomností nebo absencí obfuskace a navíc je každý sniffer určen pro konkrétní platební systém, který zpracovává platby kartou pro online obchody. Odborníci z Group-IB získali úplný seznam dostupných variant snifferů tím, že procházeli hodnoty parametru odpovídajícího číslu verze a určili platební systémy, na které je sniffer zaměřen podle názvů formulářových polí, která každý sniffer hledá v kódu stránky.

Seznam snifferů a odpovídajících platebních systémů

URL snifferuPlatební systém
reactjsapi.com/react.js Authorize.Net
ajaxstatic.com/api.js?v=2.1.1 Cardsave
ajaxstatic.com/api.js?v=2.1.2 Authorize.Net
ajaxstatic.com/api.js?v=2.1.3 Authorize.Net
ajaxstatic.com/api.js?v=2.1.4eWAY Rapid
ajaxstatic.com/api.js?v=2.1.5 Authorize.Net
ajaxstatic.com/api.js?v=2.1.6 Adyen
ajaxstatic.com/api.js?v=2.1.7USAePay
ajaxstatic.com/api.js?v=2.1.9 Authorize.Net
apitstatus.com/api.js?v=2.1.1 USAePay
apitstatus.com/api.js?v=2.1.2 Authorize.Net
apitstatus.com/api.js?v=2.1.3Moneris
apitstatus.com/api.js?v=2.1.5 USAePay
apitstatus.com/api.js?v=2.1.6PayPal
apitstatus.com/api.js?v=2.1.7Sage Pay
apitstatus.com/api.js?v=2.1.8Verisign
apitstatus.com/api.js?v=2.1.9PayPal
apitstatus.com/api.js?v=2.3.0Stripe
apitstatus.com/api.js?v=3.0.2Realex
apitstatus.com/api.js?v=3.0.3PayPal
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.8DataCash
apitstatus.com/api.js?v=3.0.9 PayPal
asianfoodgracer.com/footer.js Authorize.Net
billgetstatus.com/api.js?v=1.2 Authorize.Net
billgetstatus.com/api.js?v=1.3Authorize.Net
billgetstatus.com/api.js?v=1.4 Authorize.Net
billgetstatus.com/api.js?v=1.5Verisign
billgetstatus.com/api.js?v=1.6 Authorize.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.jsAuthorize.Net
cloudodesc.com/gtm.js?v=1.2 Authorize.Net
cloudodesc.com/gtm.js?v=1.3ANZ eGate
cloudodesc.com/gtm.js?v=2.3Authorize.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.9Authorize.Net
cloudodesc.com/gtm.js?v=2.91 Adyen
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93CyberSource
cloudodesc.com/gtm.js?v=2.95 ANZ eGate
cloudodesc.com/gtm.js?v=2.97Realex
geisseie.com/gs.js USAePay
gtmproc.com/age.jsAuthorize.Net
gtmproc.com/gtm.js?v=1.2 Authorize.Net
gtmproc.com/gtm.js?v=1.3 ANZ eGate
gtmproc.com/gtm.js?v=1.5PayPal
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.3Authorize.Net
livecheckpay.com/api.js?v=2.4Verisign
livecheckpay.com/react.jsAuthorize.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.5CyberSource
livegetpay.com/pay.js?v=2.1.7 Authorize.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 CyberSource
livegetpay.com/pay.js?v=2.2.1PayPal
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.9Verisign
livegetpay.com/pay.js?v=2.3.0 Authorize.Net
livegetpay.com/pay.js?v=2.3.1Authorize.Net
livegetpay.com/pay.js?v=2.3.2First Data Global Gateway
livegetpay.com/pay.js?v=2.3.3 Authorize.Net
livegetpay.com/pay.js?v=2.3.4Authorize.Net
livegetpay.com/pay.js?v=2.3.5 Moneris
livegetpay.com/pay.js?v=2.3.6 Authorize.Net
livegetpay.com/pay.js?v=2.3.8 PayPal
livegetpay.com/pay.js?v=2.4.0Verisign
maxstatics.com/site.js USAePay
mediapack.info/track.js?d=funlove.com USAePay
mediapack.info/track.js?d=qbedding.comAuthorize.Net
mediapack.info/track.js?d=vseyewear.com Verisign
mxcounter.com/c.js?v=1.2 PayPal
mxcounter.com/c.js?v=1.3 Authorize.Net
mxcounter.com/c.js?v=1.4 Stripe
mxcounter.com/c.js?v=1.6 Authorize.Net
mxcounter.com/c.js?v=1.7eWAY Rapid
mxcounter.com/c.js?v=1.8 Sage Pay
mxcounter.com/c.js?v=2.0 Authorize.Net
mxcounter.com/c.js?v=2.1Braintree
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 Authorize.Net
mxcounter.com/c.js?v=2.33PayPal
mxcounter.com/c.js?v=2.34Authorize.Net
mxcounter.com/c.js?v=2.35 Verisign
mxcounter.com/click.js?v=1.2 PayPal
mxcounter.com/click.js?v=1.3 Authorize.Net
mxcounter.com/click.js?v=1.4 Stripe
mxcounter.com/click.js?v=1.6 Authorize.Net
mxcounter.com/click.js?v=1.7 eWAY Rapid
mxcounter.com/click.js?v=1.8Sage Pay
mxcounter.com/click.js?v=2.0Authorize.Net
mxcounter.com/click.js?v=2.1 Braintree
mxcounter.com/click.js?v=2.2PayPal
mxcounter.com/click.js?v=2.3 Sage Pay
mxcounter.com/click.js?v=2.31Sage Pay
mxcounter.com/click.js?v=2.32Authorize.Net
mxcounter.com/click.js?v=2.33PayPal
mxcounter.com/click.js?v=2.34 Authorize.Net
mxcounter.com/click.js?v=2.35 Verisign
mxcounter.com/cnt.jsAuthorize.Net
mxcounter.com/j.jsAuthorize.Net
newrelicnet.com/api.js?v=1.2Authorize.Net
newrelicnet.com/api.js?v=1.4 Authorize.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.0PayFort
nr-public.com/api.js?v=2.1 PayPal
nr-public.com/api.js?v=2.2 Authorize.Net
nr-public.com/api.js?v=2.3Stripe
nr-public.com/api.js?v=2.4First Data Global Gateway
nr-public.com/api.js?v=2.5 PsiGate
nr-public.com/api.js?v=2.6 Authorize.Net
nr-public.com/api.js?v=2.7Authorize.Net
nr-public.com/api.js?v=2.8 Moneris
nr-public.com/api.js?v=2.9 Authorize.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.3Moneris
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.7Westpac PayWay
nr-public.com/api.js?v=3.8 Authorize.Net
nr-public.com/api.js?v=4.0Moneris
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.4PayPal
nr-public.com/api.js?v=4.0.5Authorize.Net
nr-public.com/api.js?v=4.0.6USAePay
nr-public.com/api.js?v=4.0.7 EBizCharge
nr-public.com/api.js?v=4.0.8 Authorize.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.11Authorize.Net
ordercheckpays.com/api.js?v=2.12 PayPal
ordercheckpays.com/api.js?v=2.13Moneris
ordercheckpays.com/api.js?v=2.14Authorize.Net
ordercheckpays.com/api.js?v=2.15PayPal
ordercheckpays.com/api.js?v=2.16PayPal
ordercheckpays.com/api.js?v=2.17Westpac PayWay
ordercheckpays.com/api.js?v=2.18 Authorize.Net
ordercheckpays.com/api.js?v=2.19 Authorize.Net
ordercheckpays.com/api.js?v=2.21 Sage Pay
ordercheckpays.com/api.js?v=2.22 Verisign
ordercheckpays.com/api.js?v=2.23Authorize.Net
ordercheckpays.com/api.js?v=2.24 PayPal
ordercheckpays.com/api.js?v=2.25 PayFort
ordercheckpays.com/api.js?v=2.29 CyberSource
ordercheckpays.com/api.js?v=2.4 PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7Authorize.Net
ordercheckpays.com/api.js?v=2.8 Authorize.Net
ordercheckpays.com/api.js?v=2.9 Verisign
ordercheckpays.com/api.js?v=3.1 Authorize.Net
ordercheckpays.com/api.js?v=3.2 Authorize.Net
ordercheckpays.com/api.js?v=3.3Sage Pay
ordercheckpays.com/api.js?v=3.4 Authorize.Net
ordercheckpays.com/api.js?v=3.5Stripe
ordercheckpays.com/api.js?v=3.6Authorize.Net
ordercheckpays.com/api.js?v=3.7 Authorize.Net
ordercheckpays.com/api.js?v=3.8 Verisign
ordercheckpays.com/api.js?v=3.9PayPal
ordercheckpays.com/api.js?v=4.0 Authorize.Net
ordercheckpays.com/api.js?v=4.1Authorize.Net
ordercheckpays.com/api.js?v=4.2 Sage Pay
ordercheckpays.com/api.js?v=4.3Authorize.Net
reactjsapi.com/api.js?v=0.1.0 Authorize.Net
reactjsapi.com/api.js?v=0.1.1PayPal
reactjsapi.com/api.js?v=4.1.2 Flint
reactjsapi.com/api.js?v=4.1.4PayPal
reactjsapi.com/api.js?v=4.1.5Sage Pay
reactjsapi.com/api.js?v=4.1.51 Verisign
reactjsapi.com/api.js?v=4.1.6Authorize.Net
reactjsapi.com/api.js?v=4.1.7Authorize.Net
reactjsapi.com/api.js?v=4.1.8 Stripe
reactjsapi.com/api.js?v=4.1.9 Fat Zebra
reactjsapi.com/api.js?v=4.2.0Sage Pay
reactjsapi.com/api.js?v=4.2.1 Authorize.Net
reactjsapi.com/api.js?v=4.2.2 First Data Global Gateway
reactjsapi.com/api.js?v=4.2.3 Authorize.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.7PayPal
reactjsapi.com/api.js?v=4.2.8 QuickBooks Merchant Services
reactjsapi.com/api.js?v=4.2.9Verisign
reactjsapi.com/api.js?v=4.2.91 Sage Pay
reactjsapi.com/api.js?v=4.2.92Verisign
reactjsapi.com/api.js?v=4.2.94Authorize.Net
reactjsapi.com/api.js?v=4.3.97Authorize.Net
reactjsapi.com/api.js?v=4.5Sage Pay
reactjsapi.com/react.jsAuthorize.Net
sydneysalonsupplies.com/gtm.jseWAY Rapid
tagsmediaget.com/react.jsAuthorize.Net
tagstracking.com/tag.js?v=2.1.2ANZ eGate
tagstracking.com/tag.js?v=2.1.3PayPal
tagstracking.com/tag.js?v=2.1.5CyberSource
tagstracking.com/tag.js?v=2.1.7Authorize.Net
tagstracking.com/tag.js?v=2.1.8Sage Pay
tagstracking.com/tag.js?v=2.1.9Realex
tagstracking.com/tag.js?v=2.2.0CyberSource
tagstracking.com/tag.js?v=2.2.1 PayPal
tagstracking.com/tag.js?v=2.2.2PayPal
tagstracking.com/tag.js?v=2.2.3PayPal
tagstracking.com/tag.js?v=2.2.4Verisign
tagstracking.com/tag.js?v=2.2.5eWAY Rapid
tagstracking.com/tag.js?v=2.2.7Sage Pay
tagstracking.com/tag.js?v=2.2.8Sage Pay
tagstracking.com/tag.js?v=2.2.9Verisign
tagstracking.com/tag.js?v=2.3.0Authorize.Net
tagstracking.com/tag.js?v=2.3.1Authorize.Net
tagstracking.com/tag.js?v=2.3.2First Data Global Gateway
tagstracking.com/tag.js?v=2.3.3Authorize.Net
tagstracking.com/tag.js?v=2.3.4Authorize.Net
tagstracking.com/tag.js?v=2.3.5Moneris
tagstracking.com/tag.js?v=2.3.6Authorize.Net
tagstracking.com/tag.js?v=2.3.8PayPal

Sniffer hesel

Jednou z výhod JavaScriptových snifferů, které pracují na straně klienta webu, je jejich univerzálnost: škodlivý kód vložený na webovou stránku je schopen ukrást data jakéhokoli typu, ať už jde o platební údaje nebo přihlašovací jméno a heslo uživatelského účtu. Odborníci z Group-IB objevili vzorek snifferu patřícího do rodiny ReactGet, určeného ke krádeži e-mailových adres a hesel uživatelů webu.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Průnik se snifferem ImageID

V průběhu analýzy jednoho z infikovaných obchodů bylo zjištěno, že jeho web byl infikován dvakrát: kromě škodlivého kódu snifferu rodiny ReactGet byl objeven kód snifferu rodiny ImageID. Toto překrytí může být důkazem toho, že operátoři stojící za použitím obou snifferů používají podobné techniky pro vložení škodlivého kódu.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Univerzální sniffer

Během analýzy jedné z domén spojených s infrastrukturou snifferů ReactGet bylo zjištěno, že stejný uživatel zaregistroval tři další domény. Tyto tři domény imitovaly domény skutečných webových stránek a byly dříve používány k hostování snifferů. Při analýze kódu tří legitimních webů byl objeven neznámý sniffer, a další analýza ukázala, že se jedná o vylepšenou verzi snifferu ReactGet. Všechny dříve sledované verze snifferů této rodiny cílily na určité platební systémy, což znamenalo, že každému platebnímu systému byla potřebná speciální verze snifferu. V tomto případě však byla zjištěna univerzální verze snifferu, schopná krást informace z formulářů vztahujících se k 15 různým platebním systémům a modulům ecommerce webů pro provádění online plateb.

Na začátku své činnosti sniffer vyhledával základní pole formuláře obsahující osobní údaje oběti: celé jméno, fyzickou adresu, telefonní číslo.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Poté sniffer procházel více než 15 různými prefixy, odpovídajícími různým platebním systémům a modulům pro online platby.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Osobní údaje oběti a platební informace byly poté shromážděny dohromady a odeslány na server ovládaný útočníkem: v tomto konkrétním případě byly zjištěny dvě verze univerzálního snifferu ReactGet, umístěné na dvou různých hacknutých stránkách. Obě verze však zasílaly ukradené údaje na stejnou hacknutou stránku. zoobashop.com.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Analýza prefixů, které sniffer používal k vyhledávání polí obsahujících platební informace oběti, ukázala, že tento vzorek snifferu cílil na následující platební systémy:

  • Authorize.Net
  • Verisign
  • First Data
  • USAePay
  • Stripe
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Realex Payments
  • PsiGate
  • Heartland Payment Systems

Jaké nástroje se používají k ukradení platebních informací

První nástroj, který byl nalezen během analýzy infrastruktury útočníků, slouží k obfuskování škodlivých skriptů odpovědných za krádež bankovních karet. Na jednom z hostitelů útočníků byl nalezen bash skript, který využívá CLI projektu javascript-obfuscator k automatizaci obfuskování kódu snifferů.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Druhý nalezený nástroj slouží k vygenerování kódu, který zajišťuje načtení hlavního snifferu. Tento nástroj generuje JavaScriptový kód, který kontroluje, zda se uživatel nachází na stránce platby, tím, že hledá ve současné adrese uživatele řetězce checkout, košík a tak dále, a pokud je výsledek pozitivní, kód načte hlavní sniffer ze serveru útočníků. Pro skrytí škodlivé činnosti jsou všechny řetězce, včetně testovacích řetězců pro určení platební stránky, stejně jako odkaz na sniffer, zakódovány pomocí base64.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Phishingové útoky

Během analýzy síťové infrastruktury útočníků bylo zjištěno, že často k získání přístupu do administrativního panelu cílového online obchodu zločinecká skupina používá phishing. Útočníci registrují doménu, která vizuálně připomíná doménu obchodu, a poté na ní nasazují falešný formulář pro vstup do administrativního panelu Magento. V případě úspěchu útočníci získají přístup do administrativního panelu CMS Magento, což jim umožňuje editovat komponenty webu a implementovat sniffer pro krádež údajů o kreditních kartách.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Infrastruktura

DoménaDatum detekce/vzniku
mediapack.info04.05.2017
adsgetapi.com15.06.2017
simcounter.com14.08.2017
mageanalytics.com22.12.2017
maxstatics.com16.01.2018
reactjsapi.com19.01.2018
mxcounter.com02.02.2018
apitstatus.com01.03.2018
orderracker.com20.04.2018
tagstracking.com25.06.2018
adsapigate.com12.07.2018
trust-tracker.com15.07.2018
fbstatspartner.com02.10.2018
billgetstatus.com12.10.2018
aldenmlilhouse.com20.10.2018
balletbeautlful.com20.10.2018
bargalnjunkie.com20.10.2018
payselector.com21.10.2018
tagsmediaget.com02.11.2018
hs-payments.com16.11.2018
ordercheckpays.com19.11.2018
geisseie.com24.11.2018
gtmproc.com29.11.2018
livegetpay.com18.12.2018
sydneysalonsupplies.com18.12.2018
newrelicnet.com19.12.2018
nr-public.com03.01.2019
cloudodesc.com04.01.2019
ajaxstatic.com11.01.2019
livecheckpay.com21.01.2019
asianfoodgracer.com25.01.2019

Rodina G-Analytics

Tato rodina snifferů se používá pro krádež karet klientů online obchodů. První doménové jméno, které skupina použila, bylo registrováno v dubnu 2016, což může naznačovat začátek aktivity skupiny v polovině roku 2016.

V aktuální kampani skupina využívá doménová jména, která imitují skutečně existující služby, jako jsou Google Analytics a jQuery, a maskuje činnost snifferů legitimními skripty a podobnými legitimními doménovými jmény. Útoky cílené na weby, které pracují pod správou CMS Magento.

Jak se G-Analytics integruje do kódu online obchodu

Hlavní charakteristikou této skupiny je využití různých metod krádeže platebních informací uživatelů. Kromě klasického vkládání JavaScriptového kódu do klientské části webu, zločinecká skupina také používala techniku vkládání kódu do serverové části webu, konkrétně PHP skripty, které zpracovávají uživatelsky zadaná data. Tato technika je nebezpečná, protože ztěžuje odhalení škodlivého kódu externími výzkumníky. Specialisté skupiny Group-IB objevili verzi snifferu, která byla vložena do PHP kódu webu a využívala jako bránu doménu dittm.org.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Byla také objevena starší verze snifferu, která používá pro sběr ukradených dat stejnou doménu dittm.org, ale tato verze je určena již pro instalaci na klientské straně online obchodu.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Později skupina změnila svou taktiku a začala věnovat více pozornosti skrývání škodlivé činnosti a maskování.

Na začátku roku 2017 začala skupina používat doménu jquery-js.com, která se maskovala jako CDN pro jQuery: při návštěvě webu útočníků je uživatel přesměrován na legitimní web jquery.com.

A v polovině roku 2018 skupina zavedla doménové jméno g-analytics.com a začala maskovat činnost snifferu pod legitimní službu Google Analytics.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Analýza verzí

V rámci analýzy domén použitých pro ukládání kódu snifferů bylo zjištěno, že na webu je k dispozici velké množství verzí, které se liší přítomností obfuskace, stejně jako přítomností či absencí nedosažitelného kódu přidaného do souboru k odvádění pozornosti a skrytí škodlivého kódu.

Celkem na webu jquery-js.com bylo odhaleno šest verzí snifferů. Ukradená data tyto sniffery odesílají na adresu, která se nachází na tomtéž webu, kde je i 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

Pozdější doména g-analytics.com, kterou skupina používala v útocích od poloviny roku 2018, slouží jako úložiště pro větší množství snifferů. Celkem bylo odhaleno 16 různých verzí snifferu. V tomto případě byla brána pro odesílání ukradených dat maskována jako odkaz na obrázek ve formátu 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

Monetizace ukradených dat

Zločinecká skupina monetizuje ukradená data prodejem karet prostřednictvím speciálně vytvořeného podzemního obchodu, který poskytuje služby carderům. Analýza domén používaných útočníky umožnila zjistit, že google-analytics.cm byl registrován tím samým uživatelem, který vlastní doménu cardz.vc. Doména cardz.vc se vztahuje na obchod s prodejem odcizených bankovních karet Cardsurfs (Flysurfs), který si získal popularitu již v době aktivity podzemního tržiště AlphaBay jako obchod s prodejem bankovních karet, které byly ukradeny pomocí snifferu.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Analýzou domény analytic.is, umístěné na tom samém serveru jako domény využívané sniffery pro sběr ukradených dat, specialisté Group-IB objevili soubor obsahující logy Cookie-stealeru, který byl zřejmě později opuštěn vývojářem. Jeden záznam v logu obsahoval doménu iozoz.com, která byla dříve použita u jednoho ze snifferů aktivních v roce 2016. Předpokládá se, že tuto doménu dříve využíval útočník ke sběru ukradených karet pomocí snifferu. Tato doména byla registrována na emailovou adresu kts241@gmail.com, která byla také použita pro registraci domén cardz.su a cardz.vc, vztahujících se k obchodu s kardinovými kartami Cardsurfs.

Na základě získaných dat lze předpokládat, že rodina snifferů G-Analytics a podzemní obchod s prodejem bankovních karet Cardsurfs jsou řízeny stejnými lidmi, a obchod slouží k realizaci bankovních karet, které byly ukradeny pomocí snifferu.

Infrastruktura

DoménaDatum detekce/vzniku
iozoz.com08.04.2016
dittm.org10.09.2016
jquery-js.com02.01.2017
g-analytics.com31.05.2018
google-analytics.is21.11.2018
analytic.to04.12.2018
google-analytics.to06.12.2018
google-analytics.cm28.12.2018
analytic.is28.12.2018
googlc-analytics.cm17.01.2019

Rodina Illum

Illum je rodina snifferů, používaná pro útoky na online obchody, které pracují pod správou CMS Magento. Kromě implementace škodlivého kódu, operátoři tohoto snifferu také využívají plně fiktivní platební formuláře, které odesílají data na pod kontrolou útočníků.

Při analýze síťové infrastruktury, kterou používají operátoři tohoto snifferu, bylo zaznamenáno velké množství škodlivých skriptů, exploitů, podvržených platebních formulářů, a také sbírka příkladů se škodlivými sniffery konkurentů. Na základě informací o datech vzniku doménových jmen používaných skupinou lze předpokládat, že začátek kampaně se datuje na konec roku 2016.

Jak Illum proniká do kódu online obchodu

První nalezené verze snifferu byly implantovány přímo do kódu kompromitované stránky. Ukradená data byla odesílána na adresu cdn.illum[.]pw/records.php, brána byla kódována pomocí base64.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Později byla nalezena zabalená verze sniffu, která využívá jiný gateway — records.nstatistics[.]com/records.php.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Podle zpráva Willem de Groot, stejný hostitel byl použit ve snifferu, který byl nasazen na webové stránky obchodu, který patřil německé politické straně CSU.

Analýza webu útočníků

Experti Group-IB objevili a analyzovali web, který tato zločinecká skupina používala k ukládání nástrojů a sběru ukradených informací.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Mezi nástroji nalezenými na serveru útočníků byly skripty a exploit pro zvýšení oprávnění v OS Linux: například Skript pro kontrolu zvýšení oprávnění v Linuxu, který vytvořil Mike Czumak, a exploit pro CVE-2009-1185.

Přímo pro útoky na online obchody útočníci použili dva exploit: první je schopen zavést škodlivý kód do core_config_data pomocí exploitu CVE-2016-4010, druhé využívá zranitelnost typu RCE v pluginech pro CMS Magento, což umožňuje provést libovolný kód na zranitelném webovém serveru.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Během analýzy serveru byly také nalezeny různé vzorky snifferů a falešných platebních formulářů, které útočníci používali k shromažďování platebních informací z hacknutých webů. Jak je patrné z níže uvedeného seznamu, některé skripty byly vytvářeny individuálně pro každou hacknutou stránku, zatímco pro určité CMS a platební brány bylo použito univerzální řešení. Například skripty segapay_standart.js a segapay_onpage.js jsou určeny pro zavedení na weby, které používají platební bránu Sage Pay.

Seznam skriptů pro různé platební brány

SkriptPlatební brána
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//payrightnow[.]cf/?payment=
sr.illum[.]pw/magento/payment_redcrypt.js//payrightnow[.]cf/?payment=
sr.illum[.]pw/magento/payment_forminsite.js//paymentnow[.]tk/?payment=

Hostitel paymentnow[.]tk, používaný jako gateway ve skriptu payment_forminsite.js, byl nalezen jako subjectAltName v několika certifikátech vztahujících se k službě CloudFlare. Kromě toho byl na hostiteli přítomen skript evil.js. Soudě podle názvu skriptu mohl být použit v rámci exploitu CVE-2016-4010, díky kterému je možné zavést škodlivý kód do patičky webu řízeného CMS Magento. Jako gateway tento skript použil hostitel request.requestnet[.]tk, který používá tentýž certifikát jako hostitel paymentnow[.]tk.

Falešné platební formuláře

Níže je na obrázku ukázka formuláře pro zadání údajů o kartě. Tento formulář byl použit k zavedení na web online obchodu a krádeži dat z karet.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Na následujícím obrázku je příklad podvodného platebního formuláře PayPal, který zločinci použili k infiltraci na stránky s touto platební metodou.
Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Infrastruktura

DoménaDatum detekce/vzniku
cdn.illum.pw27/11/2016
records.nstatistics.com06/09/2018
request.payrightnow.cf25/05/2018
paymentnow.tk16/07/2017
payment-line.tk01/03/2018
paymentpal.cf04/09/2017
requestnet.tk28/06/2017

Rodina CoffeMokko

Rodina snifferů CoffeMokko, určených ke krádeži bankovních karet uživatelů internetových obchodů, se používá minimálně od května 2017. Předpokládá se, že operátory této rodiny snifferů je zločinecká skupina Group 1, popsaná odborníky RiskIQ v roce 2016. Útoku podléhaly webové stránky provozované na platformách jako Magento, OpenCart, WordPress, osCommerce, Shopify.

Jak se CoffeMokko integruje do kódu online obchodu

Operátoři této rodiny vytvářejí unikátní sniffery pro každé infikování: soubor snifferu se nachází v adresáři src nebo js na serveru zločinců. Integrace do kódu webu se provádí prostřednictvím přímého odkazu na sniffer.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
V kódu snifferu jsou pevně kódována jména polí formulářů, ze kterých je třeba data ukrást. Sniffer také kontroluje, zda se uživatel nachází na stránce platby, porovnáváním seznamu klíčových slov s aktuální adresou uživatele.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Některé nalezené verze snifferu byly obfuskovány a obsahovaly zašifrovaný řetězec, ve kterém byl uložen hlavní pole zdrojů: v něm byla jména polí formulářů pro různé platební systémy, stejně jako adresa brány, na kterou bylo třeba odeslat ukradené údaje.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Ukradené platební informace byly odesílány skriptu na serveru zločinců přes cestu /savePayment/index.php или /tr/index.php. Předpokládá se, že tento skript slouží k přenosu dat z brány na hlavní server, který konsoliduje data ze všech snifferů. Aby se skryly přenášené údaje, jsou všechny platební informace oběti kódovány pomocí base64, a poté dochází k několika výměnám znaků:

  • znak „e“ je nahrazen „:“
  • znak „w“ je nahrazen „+“
  • znak „o“ je nahrazen „%“
  • znak „d“ je nahrazen „#“
  • znak „a“ je nahrazen „-“
  • znak „7“ je nahrazen „^“
  • znak „h“ je nahrazen „_“
  • znak „T“ je nahrazen „@“
  • znak „0“ je nahrazen „/“
  • znak „Y“ je nahrazen „*“

V důsledku výměn znaků jsou kódovaná data pomocí base64 nemožná dekódovat, aniž by se provedla zpětná transformace.

Toto je ukázka kódu snifferu, který nebyl podroben obfuskaci:

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Analýza infrastruktury

V ranějších kampaních útočníci registrovali doménová jména, která byla podobná jménům legitimních webových obchodů. Jejich doména se mohla lišit od legitimní pouze jedním znakem nebo jinou TLD. Registrované domény byly využívány k uchovávání kódu snifferu, jehož odkaz byl vložen do kódu obchodu.

Tato skupina také používala domény, které připomínaly názvy populárních pluginů pro jQuery (slickjs[.]org pro weby, které používají tento plugin. slick.js), platebních bran (sagecdn[.]org pro weby, které používají platební systém Sage Pay).

Později skupina začala vytvářet domény, jejichž názvy neměly nic společného ani s doménou obchodu, ani s jeho tematikou.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Každé doméně odpovídal web, na kterém byla vytvořena adresářová struktura /js nebo /src. V tomto adresáři byly uchovávány skripty snifferů: po jednom snifferu na každé nové infikování. Sniffer byl vložen do kódu webu prostřednictvím přímého odkazu, avšak v ojedinělých případech útočníci modifikovali jeden z webových souborů a přidávali do něj škodlivý kód.

Analýza kódu

První algoritmus obfuskace

V některých zjištěných vzorcích snifferů této rodiny byl kód obfuskován a obsahoval zašifrovaná data potřebná pro jeho funkci: konkrétně adresu brány snifferu, seznam polí platebního formuláře a v některých případech také kód falešného platebního formuláře. V kódu uvnitř funkce byly zdroje zašifrovány pomocí XOR s klíčem, který byl předán jako argument této funkce.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Dešifrováním řetězce příslušným klíčem, unikátním pro každý vzorek, lze získat řetězec obsahující všechny řetězce z kódu snifferu oddělené oddělovačem.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Druhý algoritmus obfuskace

V novějších vzorcích snifferů této rodiny byl použit jiný mechanismus obfuskace: v tomto případě byla data zašifrována pomocí vlastního algoritmu. Řetězec obsahující zašifrovaná data potřebná pro fungování snifferu byl předán jako argument dešifrovací funkce.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Pomocí konzole prohlížeče lze dešifrovat zašifrovaná data a získat pole obsahující zdroje snifferu.

Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech

Spojení s ranými útoky MageCart

Při analýze jedné z domén, kterou skupina používala jako bránu pro sběr ukradených dat, bylo zjištěno, že na této doméně je nasazená infrastruktura k krádeži kreditních karet, identická s tou, která byla použita skupinou 1 — jednou z prvních skupin, zjištěných specialisty RiskIQ.

Na hostiteli rodiny snifferů CoffeMokko byly nalezeny dva soubory:

  • mage.js — soubor obsahující kód snifferu skupiny 1 s adresou brány js-cdn.link
  • mag.php — PHP skript odpovědný za sběr dat ukradených snifferem

Содержимое файла mage.js Čtyři JavaScriptové sniffery, které na vás čekají v internetových obchodech
Také bylo zjištěno, že první domény, které skupina stojící za rodinou snifferů CoffeMokko použila, byly registrovány 17. května 2017:

  • link-js[.]link
  • info-js[.]link
  • track-js[.]link
  • map-js[.]link
  • smart-js[.]link

Formát těchto doménových názvů odpovídá doménovým názvům skupiny 1, které byly použity při útocích v roce 2016.

Na základě zjištěných faktů lze učinit předpoklad, že mezi operátory snifferů CoffeMokko a zločineckou skupinou skupiny 1 existuje spojení. Předpokládá se, že operátoři CoffeMokko si mohli vypůjčit nástroje a software pro krádež karet od svých předchůdců. Je však mnohem pravděpodobnější, že zločinecká skupina stojící za používáním snifferů rodiny CoffeMokko jsou tytéž osoby, které prováděly útoky v rámci činnosti skupiny 1. Po publikaci první zprávy o činnosti zločinecké skupiny byly všechny jejich domény zablokovány a nástroje podrobně prozkoumány a popsány. Skupina byla nucena si dát pauzu, přepracovat své interní nástroje a přepsat kód snifferů, aby mohla pokračovat ve svých útocích a zůstat nepovšimnuta.

Infrastruktura

DoménaDatum detekce/vzniku
link-js.link17.05.2017
info-js.link17.05.2017
track-js.link17.05.2017
map-js.link17.05.2017
smart-js.link17.05.2017
adorebeauty.org03.09.2017
security-payment.su03.09.2017
braincdn.org04.09.2017
sagecdn.org04.09.2017
slickjs.org04.09.2017
oakandfort.org10.09.2017
citywlnery.org15.09.2017
dobell.su04.10.2017
childsplayclothing.org31.10.2017
jewsondirect.com05.11.2017
shop-rnib.org15.11.2017
closetlondon.org16.11.2017
misshaus.org28.11.2017
battery-force.org01.12.2017
kik-vape.org01.12.2017
greatfurnituretradingco.org02.12.2017
etradesupply.org04.12.2017
replacemyremote.org04.12.2017
all-about-sneakers.org05.12.2017
mage-checkout.org05.12.2017
nililotan.org07.12.2017
lamoodbighats.net08.12.2017
walletgear.org10.12.2017
dahlie.org12.12.2017
davidsfootwear.org20.12.2017
blackriverimaging.org23.12.2017
exrpesso.org02.01.2018
parks.su09.01.2018
pmtonline.su12.01.2018
ottocap.org15.01.2018
christohperward.org27.01.2018
coffetea.org31.01.2018
energycoffe.org31.01.2018
energytea.org31.01.2018
teacoffe.net31.01.2018
adaptivecss.org01.03.2018
coffemokko.com01.03.2018
londontea.net01.03.2018
ukcoffe.com01.03.2018
labbe.biz20.03.2018
batterynart.com03.04.2018
btosports.net09.04.2018
chicksaddlery.net16.04.2018
paypaypay.org11.05.2018
ar500arnor.com26.05.2018
authorizecdn.com28.05.2018
slickmin.com28.05.2018
bannerbuzz.info03.06.2018
kandypens.net08.06.2018
mylrendyphone.com15.06.2018
freshchat.info01.07.2018
3lift.org02.07.2018
abtasty.net02.07.2018
mechat.info02.07.2018
zoplm.com02.07.2018
zapaljs.com02.09.2018
foodandcot.com15.09.2018
freshdepor.com15.09.2018
swappastore.com15.09.2018
verywellfitnesse.com15.09.2018
elegrina.com18.11.2018
majsurplus.com19.11.2018
top5value.com19.11.2018

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster