Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Téměř všichni využíváme služeb internetových obchodů, což znamená, že dříve nebo později riskujeme, že se staneme obětí snifferů JavaScriptu - speciálního kódu, který útočníci implementují na webové stránky, aby odcizili údaje o bankovních kartách, adresy, přihlašovací údaje a hesla uživatelů. .

Čichači již zasáhli téměř 400 000 uživatelů webu a mobilní aplikace British Airways a také návštěvníci britského webu sportovního giganta FILA a amerického distributora letenek Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris – tyto a mnohé další platební systémy byly infikovány.

Analytik Threat Intelligence Group-IB Viktor Okorokov hovoří o tom, jak sniffery pronikají do kódu webu a kradou platební informace, a také o tom, na jaké CRM útočí.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

„Skrytá hrozba“

Stalo se, že po dlouhou dobu zůstávali snifferové JS mimo dohled antivirových analytiků a banky a platební systémy je nepovažovaly za vážnou hrozbu. A úplně marně. Experti skupiny IB analyzovány 2440 1,5 infikovaných internetových obchodů, jejichž návštěvníkům – celkem asi XNUMX milionu lidí denně – hrozilo ohrožení. Mezi oběťmi jsou nejen uživatelé, ale také internetové obchody, platební systémy a banky, které kompromitované karty vydaly.

Zpráva Group-IB se stala první studií darknetového trhu pro sniffery, jejich infrastrukturu a způsoby monetizace, která jejich tvůrcům přináší miliony dolarů. Identifikovali jsme 38 rodin čichačů, z nichž pouze 12 bylo dříve vědcům známo.

Pojďme se podrobně věnovat čtyřem rodinám čichačů studovaných během studie.

ReactGet Family

Sniffery z rodiny ReactGet se používají ke krádeži údajů o bankovních kartách na stránkách online nakupování. Sniffer může pracovat s velkým množstvím různých platebních systémů používaných na webu: jedna hodnota parametru odpovídá jednomu platebnímu systému a jednotlivé detekované verze snifferu lze použít ke krádeži přihlašovacích údajů a také ke krádeži údajů o bankovní kartě z platby formy několika platebních systémů najednou, jako je tzv. univerzální sniffer. Bylo zjištěno, že v některých případech útočníci provádějí phishingové útoky na správce internetového obchodu, aby získali přístup k administrativnímu panelu webu.

Kampaň využívající tuto rodinu snifferů začala v květnu 2017; byly napadeny weby provozující CMS a platformy Magento, Bigcommerce a Shopify.

Jak je ReactGet implementován do kódu internetového obchodu

Kromě „klasické“ implementace skriptu přes odkaz používají operátoři rodiny snifferů ReactGet speciální techniku: pomocí JavaScript kódu zkontrolují, zda aktuální adresa, na které se uživatel nachází, splňuje určitá kritéria. Škodlivý kód bude spuštěn pouze v případě, že je podřetězec přítomen v aktuální adrese URL pokladna nebo jednokroková pokladna, jedna stránka/, out/onepag, pokladna/jedna, výběh/jeden. Sniffer kód se tedy spustí přesně v okamžiku, kdy uživatel přejde k platbě za nákupy a zadá platební údaje do formuláře na stránce.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Tento čichač používá nestandardní techniku. Platební a osobní údaje oběti jsou shromažďovány společně a zakódovány pomocí base64a výsledný řetězec se pak použije jako parametr k odeslání požadavku na web útočníků. Nejčastěji cesta k bráně napodobuje například JavaScriptový soubor resp.js, data.js a tak dále, ale používají se také odkazy na soubory obrázků, Gif и JPG. Zvláštností je, že sniffer vytvoří obrazový objekt o rozměrech 1 x 1 pixel a jako parametr použije dříve přijatý odkaz src Snímky. To znamená, že pro uživatele bude takový požadavek v provozu vypadat jako požadavek na obyčejný obrázek. Podobná technika byla použita v rodině ImageID snifferů. Technika použití obrázku 1 x 1 pixel se navíc používá v mnoha legitimních online analytických skriptech, což může také uživatele uvést v omyl.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Analýza verze

Analýza aktivních domén používaných operátory snifferů ReactGet odhalila mnoho různých verzí této rodiny snifferů. Verze se liší přítomností či nepřítomností mlžení a navíc je každý sniffer určen pro konkrétní platební systém, který zpracovává platby bankovními kartami pro internetové obchody. Po třídění podle hodnoty parametru odpovídajícímu číslu verze dostali specialisté Group-IB kompletní seznam dostupných variant snifferů a podle názvů polí formuláře, která každý sniffer hledá v kódu stránky, identifikovali platební systémy. na které je čichač namířen.

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

Sniffer URL Platební 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.4 eWAY 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.7 USAePay
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.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 Proužek
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 Authorize.Net
billgetstatus.com/api.js?v=1.2 Authorize.Net
billgetstatus.com/api.js?v=1.3 Authorize.Net
billgetstatus.com/api.js?v=1.4 Authorize.Net
billgetstatus.com/api.js?v=1.5 Verisign
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.js Authorize.Net
cloudodesc.com/gtm.js?v=1.2 Authorize.Net
cloudodesc.com/gtm.js?v=1.3 ANZ eGate
cloudodesc.com/gtm.js?v=2.3 Authorize.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 Authorize.Net
cloudodesc.com/gtm.js?v=2.91 Adyen
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93 Kybernetický zdroj
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 Authorize.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.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 Authorize.Net
livecheckpay.com/api.js?v=2.4 Verisign
livecheckpay.com/react.js Authorize.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 Kybernetický zdroj
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 Kybernetický zdroj
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 Authorize.Net
livegetpay.com/pay.js?v=2.3.1 Authorize.Net
livegetpay.com/pay.js?v=2.3.2 První datová globální brána
livegetpay.com/pay.js?v=2.3.3 Authorize.Net
livegetpay.com/pay.js?v=2.3.4 Authorize.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.0 Verisign
maxstatics.com/site.js USAePay
mediapack.info/track.js?d=funlove.com USAePay
mediapack.info/track.js?d=qbedding.com Authorize.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 Proužek
mxcounter.com/c.js?v=1.6 Authorize.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 Authorize.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 Authorize.Net
mxcounter.com/c.js?v=2.33 PayPal
mxcounter.com/c.js?v=2.34 Authorize.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 Proužek
mxcounter.com/click.js?v=1.6 Authorize.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 Authorize.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 Authorize.Net
mxcounter.com/click.js?v=2.33 PayPal
mxcounter.com/click.js?v=2.34 Authorize.Net
mxcounter.com/click.js?v=2.35 Verisign
mxcounter.com/cnt.js Authorize.Net
mxcounter.com/j.js Authorize.Net
newrelicnet.com/api.js?v=1.2 Authorize.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.0 PayFort
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.3 Proužek
nr-public.com/api.js?v=2.4 První datová globální brána
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.7 Authorize.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.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 Authorize.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 Authorize.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 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.11 Authorize.Net
ordercheckpays.com/api.js?v=2.12 PayPal
ordercheckpays.com/api.js?v=2.13 Moneris
ordercheckpays.com/api.js?v=2.14 Authorize.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 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.23 Authorize.Net
ordercheckpays.com/api.js?v=2.24 PayPal
ordercheckpays.com/api.js?v=2.25 PayFort
ordercheckpays.com/api.js?v=2.29 Kybernetický zdroj
ordercheckpays.com/api.js?v=2.4 PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7 Authorize.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.3 Sage Pay
ordercheckpays.com/api.js?v=3.4 Authorize.Net
ordercheckpays.com/api.js?v=3.5 Proužek
ordercheckpays.com/api.js?v=3.6 Authorize.Net
ordercheckpays.com/api.js?v=3.7 Authorize.Net
ordercheckpays.com/api.js?v=3.8 Verisign
ordercheckpays.com/api.js?v=3.9 PayPal
ordercheckpays.com/api.js?v=4.0 Authorize.Net
ordercheckpays.com/api.js?v=4.1 Authorize.Net
ordercheckpays.com/api.js?v=4.2 Sage Pay
ordercheckpays.com/api.js?v=4.3 Authorize.Net
reagovatjsapi.com/api.js?v=0.1.0 Authorize.Net
reagovatjsapi.com/api.js?v=0.1.1 PayPal
reagovatjsapi.com/api.js?v=4.1.2 Pazourek
reagovatjsapi.com/api.js?v=4.1.4 PayPal
reagovatjsapi.com/api.js?v=4.1.5 Sage Pay
reagovatjsapi.com/api.js?v=4.1.51 Verisign
reagovatjsapi.com/api.js?v=4.1.6 Authorize.Net
reagovatjsapi.com/api.js?v=4.1.7 Authorize.Net
reagovatjsapi.com/api.js?v=4.1.8 Proužek
reagovatjsapi.com/api.js?v=4.1.9 Tlustá zebra
reagovatjsapi.com/api.js?v=4.2.0 Sage Pay
reagovatjsapi.com/api.js?v=4.2.1 Authorize.Net
reagovatjsapi.com/api.js?v=4.2.2 První datová globální brána
reagovatjsapi.com/api.js?v=4.2.3 Authorize.Net
reagovatjsapi.com/api.js?v=4.2.4 eWAY Rapid
reagovatjsapi.com/api.js?v=4.2.5 Adyen
reagovatjsapi.com/api.js?v=4.2.7 PayPal
reagovatjsapi.com/api.js?v=4.2.8 Obchodní služby QuickBooks
reagovatjsapi.com/api.js?v=4.2.9 Verisign
reagovatjsapi.com/api.js?v=4.2.91 Sage Pay
reagovatjsapi.com/api.js?v=4.2.92 Verisign
reagovatjsapi.com/api.js?v=4.2.94 Authorize.Net
reagovatjsapi.com/api.js?v=4.3.97 Authorize.Net
reagovatjsapi.com/api.js?v=4.5 Sage Pay
reactjsapi.com/react.js Authorize.Net
sydneysalonsupplies.com/gtm.js eWAY Rapid
tagsmediaget.com/react.js Authorize.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 Kybernetický zdroj
tagstracking.com/tag.js?v=2.1.7 Authorize.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 Kybernetický zdroj
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 Authorize.Net
tagstracking.com/tag.js?v=2.3.1 Authorize.Net
tagstracking.com/tag.js?v=2.3.2 První datová globální brána
tagstracking.com/tag.js?v=2.3.3 Authorize.Net
tagstracking.com/tag.js?v=2.3.4 Authorize.Net
tagstracking.com/tag.js?v=2.3.5 Moneris
tagstracking.com/tag.js?v=2.3.6 Authorize.Net
tagstracking.com/tag.js?v=2.3.8 PayPal

Sledovač hesel

Jednou z výhod JavaScriptových snifferů pracujících na klientské straně webu je jejich všestrannost: škodlivý kód vložený na web může ukrást jakýkoli typ dat, ať už jde o platební údaje nebo přihlašovací jméno a heslo k uživatelskému účtu. Specialisté Group-IB objevili vzorek snifferu patřícího do rodiny ReactGet, který byl navržen tak, aby ukradl e-mailové adresy a hesla uživatelů webu.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Průnik s ImageID sniffer

Při analýze jednoho z infikovaných obchodů bylo zjištěno, že jeho stránka byla infikována dvakrát: kromě škodlivého kódu snifferu rodiny ReactGet byl zjištěn kód snifferu rodiny ImageID. Toto překrývání by mohlo být důkazem toho, že operátoři za oběma sniffery používají podobné techniky k vkládání škodlivého kódu.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Univerzální čichač

Analýza jednoho z doménových jmen spojených s infrastrukturou ReactGet sniffer odhalila, že stejný uživatel zaregistroval tři další doménová jména. Tyto tři domény napodobovaly 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 stránek byl zjištěn neznámý sniffer a další analýza ukázala, že se jednalo o vylepšenou verzi snifferu ReactGet. Všechny dříve sledované verze této rodiny snifferů byly zaměřeny na jednotný platební systém, to znamená, že každý platební systém vyžadoval speciální verzi snifferu. V tomto případě však byla objevena univerzální verze snifferu, která je schopna krást informace z formulářů souvisejících s 15 různými platebními systémy a moduly webů elektronického obchodu pro provádění online plateb.

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

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Sniffer poté prohledal přes 15 různých předvoleb odpovídajících různým platebním systémům a online platebním modulům.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Dále byly shromážděny osobní údaje oběti a informace o platbách a odeslány na stránku kontrolovanou útočníkem: v tomto konkrétním případě byly objeveny dvě verze univerzálního snifferu ReactGet umístěné na dvou různých napadených stránkách. Obě verze však odeslaly odcizená data na stejný hacknutý web zoobashop.com.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Analýza prefixů, které sniffer použil k vyhledávání polí obsahujících platební informace oběti, nám umožnila určit, že tento vzorek snifferu byl zaměřen na následující platební systémy:

  • Authorize.Net
  • Verisign
  • První data
  • USAePay
  • Proužek
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Platby Realex
  • PsiGate
  • Platební systémy Heartland

Jaké nástroje se používají ke krádeži platebních údajů?

První nástroj, objevený při analýze infrastruktury útočníků, slouží k oblažení škodlivých skriptů odpovědných za krádeže bankovních karet. Na jednom z útočníkových hostitelů byl objeven bash skript využívající CLI projektu javascript-obfuscator k automatizaci zatemnění kódu snifferu.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Druhý objevený nástroj je navržen tak, aby generoval kód zodpovědný za načtení hlavního snifferu. Tento nástroj generuje kód JavaScript, který zkontroluje, zda je uživatel na platební stránce, vyhledáním řetězců v aktuální adrese uživatele pokladna, vozík a tak dále, a pokud je výsledek kladný, pak kód načte hlavní sniffer ze serveru útočníků. Aby se skryla škodlivá aktivita, jsou všechny řádky, včetně testovacích řádků pro určení platební stránky a odkazu na sniffer, zakódovány pomocí base64.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Phishingové útoky

Analýza síťové infrastruktury útočníků odhalila, že zločinecká skupina často využívá phishing k získání přístupu do administrativního panelu cílového internetového obchodu. Útočníci si zaregistrují doménu, která je vizuálně podobná doméně obchodu, a poté na ni nasadí falešný přihlašovací formulář pro administrační panel Magento. Pokud budou úspěšní, útočníci získají přístup do administrativního panelu Magento CMS, který jim dává možnost upravovat komponenty webu a implementovat sniffer pro krádež dat o kreditních kartách.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
infrastruktura

Domén Datum objevení/objevení
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
reagovatjsapi.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

Rodina G-Analytics

Tato rodina snifferů se používá ke krádežím zákaznických karet z internetových obchodů. Úplně první doménové jméno používané skupinou bylo zaregistrováno v dubnu 2016, což může naznačovat, že skupina zahájila činnost v polovině roku 2016.

V aktuální kampani skupina používá názvy domén, které napodobují skutečné služby, jako je Google Analytics a jQuery, a maskuje aktivitu snifferů pomocí legitimních skriptů a doménových jmen podobných těm legitimním. Stránky provozující Magento CMS byly napadeny.

Jak je G-Analytics implementován do kódu internetového obchodu

Charakteristickým rysem této rodiny je použití různých metod ke krádeži platebních údajů uživatele. Kromě klasického vkládání kódu JavaScript do klientské strany webu zločinecká skupina používala také techniky vkládání kódu na serverovou stranu webu, konkrétně PHP skripty, které zpracovávají data zadaná uživatelem. Tato technika je nebezpečná, protože výzkumníkům třetích stran ztěžuje detekci škodlivého kódu. Specialisté Group-IB objevili verzi snifferu vloženého do kódu PHP webu pomocí domény jako brány dittm.org.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Byla také objevena raná verze snifferu, který používá stejnou doménu ke shromažďování ukradených dat dittm.org, ale tato verze je určena pro instalaci na klientské straně internetového obchodu.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Skupina později změnila taktiku a začala se více soustředit na skrývání škodlivé činnosti a maskování.

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

A v polovině roku 2018 skupina přijala název domény g-analytics.com a začal snifferovy aktivity maskovat jako legitimní službu Google Analytics.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Analýza verze

Během analýzy domén používaných k ukládání sniffer kódu bylo zjištěno, že stránka obsahuje velké množství verzí, které se liší přítomností zmatku a také přítomností nebo nepřítomností nedostupného kódu přidaného do souboru, aby odvrátil pozornost a skrýt škodlivý kód.

Celkem na webu jquery-js.com Bylo identifikováno šest verzí čichačů. Tyto sniffery odesílají odcizená data na adresu umístěnou na stejné webové stránce jako samotný 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ěji doména g-analytics.com, který skupina používá při útocích od poloviny roku 2018, slouží jako úložiště pro více snifferů. Celkem bylo objeveno 16 různých verzí snifferu. V tomto případě byla brána pro odesílání odcizených dat maskována jako odkaz na obrázkový formát 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 odcizených dat

Zločinecká skupina zpeněžuje odcizená data prodejem karet prostřednictvím speciálně vytvořeného podzemního obchodu, který poskytuje služby kartářům. Analýza domén používaných útočníky nám to umožnila určit google-analytics.cm byla registrována stejným uživatelem jako doména cardz.vc. Doména cardz.vc označuje obchod prodávající kradené bankovní karty Cardsurfs (Flysurfs), který si získal oblibu již v dobách činnosti podzemní obchodní platformy AlphaBay jako obchod prodávající bankovní karty odcizené pomocí snifferu.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Analýza domény analytický.je, který se nachází na stejném serveru jako domény používané sniffery ke shromažďování odcizených dat, objevili specialisté Group-IB soubor obsahující protokoly o krádeži cookies, který, jak se zdá, později vývojář opustil. Jedna z položek v protokolu obsahovala doménu iozoz.com, který byl dříve použit v jednom ze snifferů aktivních v roce 2016. Tuto doménu pravděpodobně dříve používal útočník ke sbírání karet ukradených pomocí snifferu. Tato doména byla zaregistrována na e-mailovou adresu [chráněno e-mailem], který sloužil i k registraci domén cardz.su и cardz.vc, související s mykacím obchodem Cardsurfs.

Na základě získaných údajů lze předpokládat, že rodinu snifferů G-Analytics a podzemní obchod prodávající bankovní karty Cardsurfs spravují stejní lidé a obchod slouží k prodeji bankovních karet odcizených pomocí snifferu.

infrastruktura

Domén Datum objevení/objevení
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
analytický.k 04.12.2018
google-analytics.to 06.12.2018
google-analytics.cm 28.12.2018
analytický.je 28.12.2018
googlec-analytics.cm 17.01.2019

Rodina Illumů

Illum je rodina snifferů používaných k útokům na internetové obchody provozující Magento CMS. Provozovatelé tohoto snifferu využívají kromě zavádění škodlivého kódu i zavedení plnohodnotných falešných platebních formulářů, které odesílají data na brány ovládané útočníky.

Při analýze síťové infrastruktury používané provozovateli tohoto snifferu bylo zaznamenáno velké množství škodlivých skriptů, exploitů, falešných platebních formulářů a také sbírka příkladů se škodlivými sniffery od konkurence. Na základě informací o datech výskytu doménových jmen používaných skupinou lze předpokládat, že kampaň začala na konci roku 2016.

Jak je Illum implementován do kódu internetového obchodu

První objevené verze snifferu byly vloženy přímo do kódu napadeného webu. Ukradená data byla odeslána na cdn.illum[.]pw/records.php, brána byla zakódována pomocí base64.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Později byla objevena zabalená verze snifferu, která používá jinou bránu - records.nstatistics[.]com/records.php.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Podle zpráva Willem de Groot, stejný hostitel byl použit ve snifferu, který byl implementován na webové stránky obchodu, vlastněná německou politickou stranou CSU.

Analýza webu útočníků

Specialisté Group-IB objevili a analyzovali webovou stránku, kterou tato zločinecká skupina používá k ukládání nástrojů a shromažďování odcizených informací.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Mezi nástroji nalezenými na serveru útočníků byly skripty a exploity pro eskalaci oprávnění v OS Linux: například Linux Privilege Escalation Check Script vyvinutý Mikem Czumakem, stejně jako exploit pro CVE-2009-1185.

K útoku na internetové obchody útočníci použili přímo dva exploity: první schopný vložit škodlivý kód do core_config_data pomocí CVE-2016-4010, druhý využívá zranitelnost RCE v zásuvných modulech pro CMS Magento a umožňuje spuštění libovolného kódu na zranitelném webovém serveru.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Během analýzy serveru byly také objeveny různé vzorky snifferů a falešných platebních formulářů, které útočníci používali ke shromažďování platebních informací z hacknutých stránek. Jak můžete vidět z níže uvedeného seznamu, některé skripty byly vytvořeny individuálně pro každý hacknutý web, zatímco pro určité CMS a platební brány bylo použito univerzální řešení. Například skripty segapay_standart.js и segapay_onpage.js navrženo pro implementaci na stránkách využívajících platební bránu Sage Pay.

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

Skript Platební 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 brána ve scénáři payment_forminsite.js, byl objeven jako PředmětAltName v několika certifikátech souvisejících se službou CloudFlare. Hostitel navíc obsahoval skript evil.js. Soudě podle názvu skriptu by mohl být použit v rámci exploitace CVE-2016-4010, díky kterému je možné vložit škodlivý kód do patičky webu, na kterém běží CMS Magento. Hostitel použil tento skript jako bránu request.requestnet[.]tkpomocí stejného certifikátu jako hostitel paymentnow[.]tk.

Falešné platební formuláře

Na obrázku níže je ukázka formuláře pro zadání údajů o kartě. Tento formulář byl použit k infiltraci internetového obchodu a odcizení údajů o kartě.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Následující obrázek ukazuje příklad falešného platebního formuláře PayPal, který útočníci použili k infiltraci stránek s touto platební metodou.
Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
infrastruktura

Domén Datum objevení/objevení
cdn.illum.pw 27/11/2016
records.nstatistics.com 06/09/2018
request.payrightnow.cf 25/05/2018
paymentnow.tk 16/07/2017
platba-line.tk 01/03/2018
paymentpal.cf 04/09/2017
requestnet.tk 28/06/2017

Rodina CoffeeMokko

Rodina snifferů CoffeMokko, navržená ke krádeži bankovních karet od uživatelů internetového obchodu, se používá minimálně od května 2017. Provozovateli této rodiny snifferů jsou pravděpodobně zločinecká skupina Group 1, popsaná specialisty RiskIQ v roce 2016. Napadeny byly stránky provozující CMS jako Magento, OpenCart, WordPress, osCommerce a Shopify.

Jak je CoffeMokko implementováno do kódu internetového obchodu

Operátoři této rodiny vytvářejí jedinečné sniffery pro každou infekci: soubor sniffer je umístěn v adresáři src nebo js na serveru útočníků. Začlenění do kódu webu se provádí přes přímý odkaz na sniffer.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Sniffer kód pevně zakóduje názvy polí formuláře, ze kterých je třeba ukrást data. Sniffer také zkontroluje, zda je uživatel na platební stránce, a to kontrolou seznamu klíčových slov s aktuální adresou uživatele.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Některé objevené verze snifferu byly zamlženy a obsahovaly zašifrovaný řetězec, ve kterém bylo uloženo hlavní pole zdrojů: obsahoval názvy polí formulářů pro různé platební systémy a také adresu brány, na kterou mají být ukradená data odeslána.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Ukradené platební údaje byly po cestě odeslány do skriptu na serveru útočníků /savePayment/index.php nebo /tr/index.php. Tento skript se pravděpodobně používá k odesílání dat z brány na hlavní server, který konsoliduje data ze všech snifferů. Pro skrytí přenášených dat jsou všechny platební informace oběti šifrovány pomocí base64a poté dojde k několika záměnám znaků:

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

V důsledku substitucí znaků kódovaných pomocí base64 Data nelze dekódovat bez provedení zpětné konverze.

Takto vypadá fragment kódu sniffer, který nebyl zatemněn:

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Analýza infrastruktury

V prvních kampaních si útočníci registrovali názvy domén podobné názvům legitimních internetových obchodů. Jejich doména se může lišit od legitimní jedním symbolem nebo jinou TLD. Registrované domény sloužily k uložení sniffer kódu, odkaz na který byl vložený do kódu obchodu.

Tato skupina také používala názvy domén připomínající oblíbené pluginy jQuery (slickjs[.]org pro weby používající plugin slick.js), platební brány (sagecdn[.]org pro stránky využívající platební systém Sage Pay).

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

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Každá doména odpovídala webu, na kterém byl adresář vytvořen /js nebo / src. Sniffer skripty byly uloženy v tomto adresáři: jeden sniffer pro každou novou infekci. Sniffer byl vložen do kódu webu prostřednictvím přímého odkazu, ale ve vzácných případech útočníci upravili jeden ze souborů webu a přidali do něj škodlivý kód.

Analýza kódu

První obfuskační algoritmus

V některých objevených vzorcích snifferů této rodiny byl kód zatemněn a obsahoval zašifrovaná data nezbytná k tomu, aby sniffer fungoval: zejména adresa snifferové brány, seznam polí platebního formuláře a v některých případech kód falešného platební formulář. V kódu uvnitř funkce byly prostředky zašifrovány pomocí XOR klíčem, který byl předán jako argument stejné funkci.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Dešifrováním řetězce pomocí příslušného klíče, jedinečného pro každý vzorek, můžete získat řetězec obsahující všechny řetězce z kódu sniffer oddělené oddělovacím znakem.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Druhý obfuskační algoritmus

V pozdějších vzorcích snifferů této rodiny byl použit jiný zatemňovací mechanismus: v tomto případě byla data zašifrována pomocí samonapsaného algoritmu. Řetězec obsahující zašifrovaná data nezbytná pro fungování snifferu byl předán jako argument funkci dešifrování.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Pomocí konzoly prohlížeče můžete dešifrovat zašifrovaná data a získat pole obsahující prostředky snifferu.

Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech

Připojení k časným útokům MageCart

Během analýzy jedné z domén, které skupina používala jako bránu pro sběr odcizených dat, bylo zjištěno, že tato doména hostila infrastrukturu pro krádeže kreditních karet, identickou s infrastrukturou používanou skupinou 1, jednou z prvních skupin, objevil od specialistů RiskIQ.

U hostitele rodiny čichačů 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 zodpovědný za shromažďování dat ukradených snifferem

Obsah souboru mage.js Čtyři čichači JavaScriptu, kteří na vás číhají v internetových obchodech
Bylo také zjištěno, že nejstarší domény používané skupinou za rodinou snifferů CoffeMokko byly zaregistrovány 17. května 2017:

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

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

Na základě zjištěných skutečností lze předpokládat, že mezi provozovateli čichačů CoffeMokko a zločineckou skupinou Group 1 existuje spojení. Operátoři CoffeMokko si pravděpodobně mohli půjčit nástroje a software od svých předchůdců ke krádeži karet. Pravděpodobnější však je, že zločineckou skupinou, která stojí za využitím čichačů rodiny CoffeMokko, jsou titíž lidé, kteří provedli útoky skupiny 1. Od zveřejnění první zprávy o činnosti zločinecké skupiny byla všechna jejich doménová jména zablokovány a nástroje byly podrobně prostudovány a popsány. Skupina byla nucena dát si pauzu, vylepšit své vnitřní nástroje a přepsat sniffer kód, aby pokračovala v útocích a zůstala neodhalena.

infrastruktura

Domén Datum objevení/objevení
link-js.link 17.05.2017
info-js.link 17.05.2017
track-js.link 17.05.2017
map-js.link 17.05.2017
smart-js.link 17.05.2017
adorebeauty.org 03.09.2017
security-payment.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
dětské oblečení.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
nahradit myremote.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
parks.su 09.01.2018
pmtonline.su 12.01.2018
otocap.org 15.01.2018
christohperward.org 27.01.2018
coffee.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
authorizedecdn.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

Zdroj: www.habr.com

Přidat komentář