Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

GandrÄ«z visi no mums izmanto tieÅ”saistes veikalu pakalpojumus, kas nozÄ«mē, ka agrāk vai vēlāk riskējam kļūt par JavaScript sniffer upuriem - Ä«paÅ”u kodu, ko uzbrucēji ievieto vietnē, lai nozagtu bankas karÅ”u datus, adreses, lietotāju pieteikumvārdus un paroles. .

Jau gandrÄ«z 400 000 British Airways mājaslapas un mobilās aplikācijas lietotāju, kā arÄ« sporta giganta FILA un amerikāņu biļeÅ”u izplatÄ«tāja Ticketmaster britu mājaslapas apmeklētājus skāruÅ”i jau gandrÄ«z XNUMX XNUMX lietotāju. PayPal, Chase Paymenttech, USAePay, Moneris ā€“ Ŕīs un daudzas citas maksājumu sistēmas tika inficētas.

Threat Intelligence Group-IB analītiķis Viktors Okorokovs stāsta par to, kā smirdēji iekļūst vietnes kodā un nozog maksājumu informāciju, kā arī par to, kādiem CRM viņi uzbrūk.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

"Slēptie draudi"

Tā notika, ka ilgu laiku JS sniffers palika ārpus antivÄ«rusu analÄ«tiÄ·u redzesloka, un bankas un maksājumu sistēmas tos neuztvēra kā nopietnus draudus. Un pilnÄ«gi veltÄ«gi. Grupas-IB eksperti analizēts 2440 inficēti interneta veikali, kuru apmeklētāji ā€“ kopā aptuveni 1,5 miljoni cilvēku dienā ā€“ bija pakļauti kompromisa riskam. CietuÅ”o vidÅ« ir ne tikai lietotāji, bet arÄ« interneta veikali, maksājumu sistēmas un bankas, kas izsniedza kompromitētas kartes.

Ziņot Group-IB kļuva par pirmo pētÄ«jumu par tumŔā tÄ«kla tirgu snifferiem, to infrastruktÅ«ru un monetizācijas metodēm, kas to radÄ«tājiem ienes miljoniem dolāru. Mēs identificējām 38 sniferu Ä£imenes, no kurām tikai 12 iepriekÅ” bija zināmas pētniekiem.

Sīkāk pakavēsimies pie četrām pētījuma laikā pētītajām sniferu ģimenēm.

ReactGet ģimene

ReactGet Ä£imenes sniffers izmanto, lai nozagtu bankas karÅ”u datus tieÅ”saistes iepirkÅ”anās vietnēs. Sniffer var strādāt ar lielu skaitu dažādu vietnē izmantoto maksājumu sistēmu: viena parametra vērtÄ«ba atbilst vienai maksājumu sistēmai, un atseviŔķas atklātās sniffer versijas var izmantot akreditācijas datu nozagÅ”anai, kā arÄ« bankas karÅ”u datu nozagÅ”anai no maksājuma. vairāku maksājumu sistēmu formas vienlaikus, piemēram, tā sauktais universālais sniffer. Tika konstatēts, ka dažos gadÄ«jumos uzbrucēji veic pikŔķerÄ“Å”anas uzbrukumus tieÅ”saistes veikala administratoriem, lai piekļūtu vietnes administratÄ«vajam panelim.

Kampaņa, kurā tika izmantota Ŕī sniferu saime, sākās 2017. gada maijā; tika uzbrukts vietnēm, kurās darbojas CMS un Magento, Bigcommerce un Shopify platformas.

Kā ReactGet tiek ieviests tieŔsaistes veikala kodā

Papildus ā€œklasiskajaiā€ skripta ievieÅ”anai, izmantojot saiti, ReactGet snifferu saimes operatori izmanto Ä«paÅ”u tehniku: izmantojot JavaScript kodu, viņi pārbauda, ā€‹ā€‹vai paÅ”reizējā adrese, kurā atrodas lietotājs, atbilst noteiktiem kritērijiem. Ä»aunprātÄ«gais kods tiks izpildÄ«ts tikai tad, ja apakÅ”virkne atrodas paÅ”reizējā URL izrakstÄ«Å”anās vai viena soļa izrakstÄ«Å”anās, viena lapa/, out/onepag, izrakstÄ«Å”anās/viens, ckout/viens. Tādējādi sniffer kods tiks izpildÄ«ts tieÅ”i tajā brÄ«dÄ«, kad lietotājs sāks norēķināties par pirkumiem un ievadÄ«s maksājuma informāciju vietnes veidlapā.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Å is sniffer izmanto nestandarta tehniku. CietuŔā maksājums un personas dati tiek apkopoti kopā un kodēti, izmantojot base64, un pēc tam iegÅ«tā virkne tiek izmantota kā parametrs, lai nosÅ«tÄ«tu pieprasÄ«jumu uz uzbrucēja vietni. Visbiežāk ceļŔ uz vārtiem atdarina, piemēram, JavaScript failu resp.js, data.js un tā tālāk, bet tiek izmantotas arÄ« saites uz attēlu failiem, GIF Šø JPG. ÄŖpatnÄ«ba ir tāda, ka sniferis izveido attēla objektu, kura izmērs ir 1 x 1 pikselis, un kā parametru izmanto iepriekÅ” saņemto saiti. src Attēli. Tas ir, lietotājam Ŕāds pieprasÄ«jums satiksmē izskatÄ«sies kā pieprasÄ«jums pēc parasta attēla. LÄ«dzÄ«gs paņēmiens tika izmantots ImageID sniferu saimē. Turklāt 1 x 1 pikseļa attēla izmantoÅ”anas paņēmiens tiek izmantots daudzos likumÄ«gos tieÅ”saistes analÄ«zes skriptos, kas var arÄ« maldināt lietotāju.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Versiju analīze

ReactGet sniffer operatoru izmantoto aktÄ«vo domēnu analÄ«ze atklāja daudzas dažādas Ŕīs sniferu Ä£imenes versijas. Versijas atŔķiras ar apmulsuma esamÄ«bu vai neesamÄ«bu, turklāt katrs sniffer ir paredzēts noteiktai maksājumu sistēmai, kas apstrādā bankas karÅ”u maksājumus tieÅ”saistes veikaliem. IzŔķirot versijas numuram atbilstoŔā parametra vērtÄ«bu, Group-IB speciālisti saņēma pilnu pieejamo sniferu variantu sarakstu un pēc veidlapas lauku nosaukumiem, kurus katrs sniferis meklē lapas kodā, identificēja maksājumu sistēmas. uz ko sniferis ir tēmēts.

Snifferu saraksts un tiem atbilstoŔās maksājumu sistēmas

Sniffer URL Maksājumu sistēma
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 Svītra
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 Paymenttech
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 Kiber avots
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 Kiber avots
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 Kiber avots
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 Pirmā datu globālā vārteja
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 Svītra
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 Svītra
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 Svītra
nr-public.com/api.js?v=2.4 Pirmā datu globālā vārteja
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 Kiber avots
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 Svītra
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
reactjsapi.com/api.js?v=0.1.0 Authorize.Net
reactjsapi.com/api.js?v=0.1.1 PayPal
reactjsapi.com/api.js?v=4.1.2 Krams
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 Authorize.Net
reactjsapi.com/api.js?v=4.1.7 Authorize.Net
reactjsapi.com/api.js?v=4.1.8 Svītra
reactjsapi.com/api.js?v=4.1.9 Resnais zebra
reactjsapi.com/api.js?v=4.2.0 Sage Pay
reactjsapi.com/api.js?v=4.2.1 Authorize.Net
reactjsapi.com/api.js?v=4.2.2 Pirmā datu globālā vārteja
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.7 PayPal
reactjsapi.com/api.js?v=4.2.8 QuickBooks tirgotāju pakalpojumi
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 Authorize.Net
reactjsapi.com/api.js?v=4.3.97 Authorize.Net
reactjsapi.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 Kiber avots
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 Kiber avots
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 Pirmā datu globālā vārteja
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

Paroles sniferis

Viena no JavaScript snifferu priekÅ”rocÄ«bām, kas strādā vietnes klienta pusē, ir to daudzpusÄ«ba: vietnē iegultais ļaunprātÄ«gais kods var nozagt jebkāda veida datus, neatkarÄ«gi no tā, vai tie ir maksājumu dati vai lietotāja konta pieteikumvārds un parole. Grupas IB speciālisti atklāja ReactGet saimei piederoÅ”a snifera paraugu, kas paredzēts vietnes lietotāju e-pasta adreÅ”u un paroļu nozagÅ”anai.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Krustojums ar ImageID sniffer

Analizējot vienu no inficētajiem veikaliem, tika konstatēts, ka tā vietne ir inficēta divas reizes: papildus ReactGet Ä£imenes sniffer kaitÄ«gajam kodam tika atklāts ImageID Ä£imenes sniffer kods. Å Ä« pārklāŔanās varētu bÅ«t pierādÄ«jums tam, ka operatori, kas atrodas aiz abiem sniferiem, izmanto lÄ«dzÄ«gas metodes, lai ievadÄ«tu ļaunprātÄ«gu kodu.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Universāls sniferis

Analizējot vienu no domēna vārdiem, kas saistÄ«ti ar ReactGet sniffer infrastruktÅ«ru, atklājās, ka tas pats lietotājs bija reÄ£istrējis trÄ«s citus domēna nosaukumus. Å ie trÄ«s domēni atdarināja reālās dzÄ«ves vietņu domēnus un iepriekÅ” tika izmantoti snifferu mitināŔanai. Analizējot trÄ«s likumÄ«gu vietņu kodu, tika atklāts nezināms sniffer, un turpmākā analÄ«ze parādÄ«ja, ka tā ir uzlabota ReactGet sniffer versija. Visas iepriekÅ” uzraudzÄ«tās Ŕīs sniferu saimes versijas bija vērstas uz vienotu maksājumu sistēmu, tas ir, katrai maksājumu sistēmai bija nepiecieÅ”ama Ä«paÅ”a sniffer versija. Tomēr Å”ajā gadÄ«jumā tika atklāta universāla sniffer versija, kas spēj nozagt informāciju no veidlapām, kas saistÄ«tas ar 15 dažādām maksājumu sistēmām un e-komercijas vietņu moduļiem tieÅ”saistes maksājumu veikÅ”anai.

Tātad darba sākumā sniferis meklēja pamata formas laukus, kuros bija cietuŔā personiskā informācija: pilns vārds, fiziskā adrese, tālruņa numurs.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Pēc tam sniffer meklēja vairāk nekā 15 dažādus prefiksus, kas atbilst dažādām maksājumu sistēmām un tieÅ”saistes maksājumu moduļiem.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Pēc tam tika apkopoti upura personas dati un maksājumu informācija un nosÅ«tÄ«ta uz vietni, kuru kontrolē uzbrucējs: Å”ajā konkrētajā gadÄ«jumā tika atklātas divas universālā ReactGet sniffer versijas, kas atrodas divās dažādās uzlauztajās vietnēs. Tomēr abas versijas nosÅ«tÄ«ja zagtus datus uz vienu un to paÅ”u uzlauzto vietni zoobashop.com.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Prefiksu analÄ«ze, ko sniferis izmantoja, lai meklētu laukus, kuros bija cietuŔā maksājuma informācija, ļāva mums noteikt, ka Å”is snifera paraugs bija paredzēts Ŕādām maksājumu sistēmām:

  • Authorize.Net
  • VeriSign
  • Pirmie dati
  • USAePay
  • SvÄ«tra
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Realex maksājumi
  • PsiGate
  • Heartland maksājumu sistēmas

Kādi rīki tiek izmantoti maksājumu informācijas nozagŔanai?

Pirmais rÄ«ks, kas atklāts, analizējot uzbrucēju infrastruktÅ«ru, tiek izmantots, lai aptumÅ”otu ļaunprātÄ«gos skriptus, kas ir atbildÄ«gi par bankas karÅ”u zādzÄ«bām. Vienā no uzbrucēja saimniekiem tika atklāts bash skripts, kas izmanto projekta CLI javascript-obfuscator lai automatizētu snifera koda apmulsināŔanu.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Otrais atklātais rÄ«ks ir paredzēts, lai Ä£enerētu kodu, kas ir atbildÄ«gs par galvenā snifera ielādi. Å is rÄ«ks Ä£enerē JavaScript kodu, kas pārbauda, ā€‹ā€‹vai lietotājs atrodas maksājumu lapā, meklējot virknes lietotāja paÅ”reizējā adresē. izrakstÄ«Å”anās, ratiņi un tā tālāk, un, ja rezultāts ir pozitÄ«vs, kods ielādē galveno sniffer no uzbrucēja servera. Lai paslēptu ļaunprātÄ«gu darbÄ«bu, visas rindas, tostarp pārbaudes rindas maksājuma lapas noteikÅ”anai, kā arÄ« saite uz sniffer, tiek kodētas, izmantojot base64.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

PikŔķerÄ“Å”anas uzbrukumi

Uzbrucēju tÄ«kla infrastruktÅ«ras analÄ«ze atklāja, ka noziedzÄ«gā grupa bieži izmanto pikŔķerÄ“Å”anu, lai piekļūtu mērÄ·a tieÅ”saistes veikala administratÄ«vajam panelim. Uzbrucēji reÄ£istrē domēnu, kas vizuāli ir lÄ«dzÄ«gs veikala domēnam, un pēc tam izvieto tajā viltotu Magento administrācijas paneļa pieteikÅ”anās veidlapu. Ja tas izdosies, uzbrucēji iegÅ«s piekļuvi Magento CMS administratÄ«vajam panelim, kas dod viņiem iespēju rediģēt vietnes komponentus un ieviest sniffer, lai nozagtu kredÄ«tkarÅ”u datus.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Infrastruktūra

Domēna vārds AtklāŔanas/parādÄ«Å”anās datums
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
baletbeautlful.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

G-Analytics ģimene

Å Ä« sniferu saime tiek izmantota klientu karÅ”u zagÅ”anai interneta veikalos. Pats pirmais domēna vārds, ko grupa izmantoja, tika reÄ£istrēts 2016. gada aprÄ«lÄ«, kas var liecināt, ka grupa sāka darbÄ«bu 2016. gada vidÅ«.

PaÅ”reizējā kampaņā grupa izmanto domēna nosaukumus, kas atdarina reālās dzÄ«ves pakalpojumus, piemēram, Google Analytics un jQuery, maskējot snifferu darbÄ«bu ar likumÄ«giem skriptiem un domēna nosaukumiem, kas ir lÄ«dzÄ«gi likumÄ«giem. Tika uzbrukts vietnēm, kurās darbojas Magento CMS.

Kā G-Analytics tiek ieviests tieŔsaistes veikala kodā

Å Ä«s Ä£imenes atŔķirÄ«ga iezÄ«me ir dažādu metožu izmantoÅ”ana, lai nozagtu lietotāja maksājumu informāciju. Papildus klasiskajai JavaScript koda ievadÄ«Å”anai vietnes klienta pusē noziedzÄ«gā grupa izmantoja arÄ« koda ievadÄ«Å”anas metodes vietnes servera pusē, proti, PHP skriptus, kas apstrādā lietotāja ievadÄ«tos datus. Å is paņēmiens ir bÄ«stams, jo tas treÅ”o puÅ”u pētniekiem apgrÅ«tina ļaunprātÄ«ga koda atklāŔanu. Grupas IB speciālisti atklāja vietnes PHP kodā iegultu sniffer versiju, izmantojot domēnu kā vārtus. dittm.org.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Tika atklāta arÄ« agrÄ«na snifera versija, kas izmanto to paÅ”u domēnu, lai savāktu nozagtus datus dittm.org, bet Ŕī versija ir paredzēta uzstādÄ«Å”anai tieÅ”saistes veikala klienta pusē.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Grupa vēlāk mainÄ«ja savu taktiku un sāka vairāk koncentrēties uz ļaunprātÄ«gas aktivitātes un maskÄ“Å”anās slēpÅ”anu.

2017. gada sākumā grupa sāka lietot domēnu jquery-js.com, kas tiek maskēts kā jQuery CDN: dodoties uz uzbrucēju vietni, lietotājs tiek novirzÄ«ts uz likumÄ«gu vietni jquery.com.

Un 2018. gada vidÅ« grupa pieņēma domēna nosaukumu g-analytics.com un sāka slēpt snifera darbÄ«bas kā likumÄ«gu Google Analytics pakalpojumu.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Versiju analīze

Veicot sniffer koda glabāŔanai izmantoto domēnu analÄ«zi, tika konstatēts, ka vietne satur lielu skaitu versiju, kas atŔķiras ar apmulsumu, kā arÄ« failam pievienota nesasniedzama koda esamÄ«bu vai neesamÄ«bu, lai novērstu uzmanÄ«bu. un paslēpt kaitÄ«go kodu.

Kopā vietnē jquery-js.com Tika identificētas seÅ”as sniferu versijas. Å ie sniferi nosÅ«ta nozagtos datus uz adresi, kas atrodas tajā paŔā vietnē, kur atrodas pats snifers: 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

Vēlāk domēns g-analytics.com, ko grupa izmantoja uzbrukumos kopÅ” 2018. gada vidus, kalpo kā krātuve lielākam skaitam snifferu. Kopumā tika atklātas 16 dažādas snifera versijas. Å ajā gadÄ«jumā vārti zagtu datu nosÅ«tÄ«Å”anai tika slēpti kā saite uz attēla 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

Nozagto datu monetizācija

Noziedzīgais grupējums nozagtos datus monetizē, pārdodot kartes caur speciāli izveidotu pazemes veikalu, kas sniedz pakalpojumus kārējiem. Uzbrucēju izmantoto domēnu analīze ļāva mums to noteikt google-analytics.cm reģistrēja tas pats lietotājs kā domēnu cardz.vc. Domēns cardz.vc attiecas uz veikalu, kurā pārdod zagtas bankas kartes Cardsurfs (Flysurfs), kas popularitāti ieguva vēl pagrīdes tirdzniecības platformas AlphaBay darbības laikos kā veikals, kurā pārdod, izmantojot sniferi, nozagtas bankas kartes.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Domēna analÄ«ze analÄ«tisks.is, kas atrodas tajā paŔā serverÄ«, kur domēni, ko izmanto sniffers, lai vāktu zagtus datus, Group-IB speciālisti atklāja failu, kurā bija sÄ«kfailu zagÅ”anas žurnāli, kuru izstrādātājs, Ŕķiet, vēlāk pameta. Viens no žurnāla ierakstiem ietvēra domēnu iozoz.com, kas iepriekÅ” tika izmantots vienā no sniferiem, kas aktÄ«vi darbojās 2016. gadā. Jādomā, ka Å”o domēnu iepriekÅ” izmantoja uzbrucējs, lai savāktu kartÄ«tes, kas nozagtas, izmantojot sniffer. Å is domēns tika reÄ£istrēts uz e-pasta adresi [e-pasts aizsargāts], kas tika izmantota arÄ« domēnu reÄ£istrācijai cardz.su Šø cardz.vc, kas saistÄ«ts ar kārÅ”u veikalu Cardsurfs.

Pamatojoties uz iegÅ«tajiem datiem, var pieņemt, ka G-Analytics sniferu saimi un pazemes veikalu, kas pārdod bankas kartes Cardsurfs, pārvalda vieni un tie paÅ”i cilvēki, un veikals tiek izmantots, lai pārdotu bankas kartes, kas nozagtas, izmantojot sniferi.

Infrastruktūra

Domēna vārds AtklāŔanas/parādÄ«Å”anās datums
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ītisks.to 04.12.2018
google-analytics.to 06.12.2018
google-analytics.cm 28.12.2018
analītisks.is 28.12.2018
googlc-analytics.cm 17.01.2019

Illu ģimene

Illum ir sniferu Ä£imene, ko izmanto, lai uzbruktu tieÅ”saistes veikaliem, kuros darbojas Magento CMS. Papildus ļaunprātÄ«ga koda ievieÅ”anai Ŕī sniffer operatori izmanto arÄ« pilnvērtÄ«gu viltotu maksājumu veidlapu ievieÅ”anu, kas nosÅ«ta datus uz uzbrucēju kontrolētiem vārtiem.

Analizējot tÄ«kla infrastruktÅ«ru, ko izmanto Ŕī sniffer operatori, tika atzÄ«mēts liels skaits ļaunprātÄ«gu skriptu, ļaunprātÄ«gu izmantoÅ”anu, viltotu maksājumu veidlapu, kā arÄ« piemēru kolekcija ar konkurentu ļaunprātÄ«giem snifferiem. Balstoties uz informāciju par grupas izmantoto domēna vārdu parādÄ«Å”anās datumiem, var pieņemt, ka kampaņa sākās 2016. gada beigās.

Kā Illum tiek ieviests tieŔsaistes veikala kodā

Pirmās atklātās sniffer versijas tika iegultas tieÅ”i apdraudētās vietnes kodā. Nozagtie dati nosÅ«tÄ«ti uz cdn.illum[.]pw/records.php, vārti tika kodēti, izmantojot base64.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Vēlāk tika atklāta iepakotā sniffer versija, kas izmanto citus vārtus - records.nstatistics[.]com/records.php.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Saskaņā ar Ziņot Vilems de Grūts, tas pats saimnieks tika izmantots sniffer, kas tika ieviests veikala vietne, kas pieder Vācijas politiskajai partijai CSU.

Uzbrucēju vietnes analīze

Grupas-IB speciālisti atklāja un analizēja tÄ«mekļa vietni, ko Ŕī noziedzÄ«gā grupa izmantoja rÄ«ku glabāŔanai un zagtas informācijas vākÅ”anai.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Starp uzbrucēju serverÄ« atrastajiem rÄ«kiem bija skripti un ekspluatācijas privilēģiju palielināŔanai Linux OS: piemēram, Maika Čumaka izstrādātais Linux privilēģiju eskalācijas pārbaudes skripts, kā arÄ« CVE-2009-1185.

Uzbrucēji izmantoja divus varoņdarbus tieÅ”i, lai uzbruktu tieÅ”saistes veikaliem: pirmais spēj ievadÄ«t ļaunprātÄ«gu kodu core_config_data izmantojot CVE-2016-4010, otrais izmanto CMS Magento spraudņu RCE ievainojamÄ«bu, ļaujot ievainojamā tÄ«mekļa serverÄ« izpildÄ«t patvaļīgu kodu.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Tāpat servera analÄ«zes laikā tika atklāti dažādi snifferu un viltotu maksājumu veidlapu paraugi, kurus uzbrucēji izmantoja, lai vāktu informāciju par maksājumiem no uzlauztām vietnēm. Kā redzams zemāk esoÅ”ajā sarakstā, daži skripti tika izveidoti atseviŔķi katrai uzlauztajai vietnei, savukārt atseviŔķām CMS un maksājumu vārtejām tika izmantots universāls risinājums. Piemēram, skripti segapay_standart.js Šø segapay_onpage.js paredzēts ievieÅ”anai vietnēs, kurās tiek izmantota maksājumu vārteja Sage Pay.

Dažādu maksājumu vārteju skriptu saraksts

Skripts Maksājumu vārteja
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=

Saimnieks maksājums tagad[.]tk, ko izmanto kā vārti skriptā payment_forminsite.js, tika atklāts kā SubjectAltName vairākos sertifikātos, kas saistÄ«ti ar CloudFlare pakalpojumu. Turklāt saimniekdatorā bija skripts ļaunais.js. Spriežot pēc skripta nosaukuma, to varētu izmantot kā daļu no CVE-2016-4010 izmantoÅ”anas, pateicoties kam ir iespējams ievadÄ«t ļaunprātÄ«gu kodu vietnes, kurā darbojas CMS Magento, kājenē. Saimnieks izmantoja Å”o skriptu kā vārtus request.requestnet[.]tkizmantojot to paÅ”u sertifikātu kā saimniekdators maksājums tagad[.]tk.

Viltus maksājumu veidlapas

Zemāk redzamajā attēlā ir parādÄ«ts kartes datu ievadÄ«Å”anas veidlapas piemērs. Å Ä« veidlapa tika izmantota, lai iefiltrētos tieÅ”saistes veikalā un nozagtu karÅ”u datus.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Nākamajā attēlā ir parādÄ«ts viltotas PayPal maksājuma veidlapas piemērs, ko uzbrucēji izmantoja, lai iefiltrētos vietnēs ar Å”o maksājuma veidu.
Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Infrastruktūra

Domēna vārds AtklāŔanas/parādÄ«Å”anās datums
cdn.illum.pw 27/11/2016
records.nstatistics.com 06/09/2018
request.payrightnow.cf 25/05/2018
paymentnow.tk 16/07/2017
maksājumu līnija.tk 01/03/2018
paypal.cf 04/09/2017
requestnet.tk 28/06/2017

CoffeeMokko ģimene

CoffeMokko sniferu saime, kas paredzēta bankas karÅ”u zagÅ”anai interneta veikala lietotājiem, tiek izmantota vismaz kopÅ” 2017. gada maija. Jādomā, ka Ŕīs sniferu saimes operatori ir RiskIQ speciālistu 1. gadā aprakstÄ«tais noziedzÄ«gais grupējums 2016. grupa. Tika uzbruktas vietnēm, kurās darbojas SPS, piemēram, Magento, OpenCart, WordPress, osCommerce un Shopify.

Kā CoffeMokko tiek ieviests tieŔsaistes veikala kodā

Å Ä«s Ä£imenes operatori katrai infekcijai izveido unikālus sniffers: sniffer fails atrodas direktorijā src vai js uzbrucēju serverÄ«. IekļauÅ”ana vietnes kodā tiek veikta, izmantojot tieÅ”u saiti uz sniffer.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Sniffer kods stingri iekodē veidlapas lauku nosaukumus, no kuriem ir jānozag dati. Sniffer arÄ« pārbauda, ā€‹ā€‹vai lietotājs atrodas maksājumu lapā, pārbaudot atslēgvārdu sarakstu ar lietotāja paÅ”reizējo adresi.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Dažas atklātās sniffer versijas tika aptumÅ”otas un saturēja Å”ifrētu virkni, kurā tika glabāts galvenais resursu masÄ«vs: tajā bija dažādu maksājumu sistēmu veidlapu lauku nosaukumi, kā arÄ« vārtu adrese, uz kuru jānosÅ«ta nozagtie dati.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Nozagtā maksājuma informācija pa ceļam tika nosÅ«tÄ«ta uz skriptu uzbrucēju serverÄ« /savePayment/index.php vai /tr/index.php. Jādomā, ka Å”is skripts tiek izmantots, lai nosÅ«tÄ«tu datus no vārtiem uz galveno serveri, kas apkopo datus no visiem snifferiem. Lai slēptu pārsÅ«tÄ«tos datus, visa upura maksājumu informācija tiek Å”ifrēta, izmantojot base64, un tad notiek vairākas rakstzÄ«mju aizstāŔanas:

  • rakstzÄ«me "e" tiek aizstāta ar ":"
  • simbols "w" tiek aizstāts ar "+"
  • rakstzÄ«me "o" tiek aizstāta ar "%"
  • rakstzÄ«me "d" tiek aizstāta ar "#"
  • rakstzÄ«me "a" tiek aizstāta ar "-"
  • simbolu "7" aizstāj ar "^"
  • rakstzÄ«me "h" tiek aizstāta ar "_"
  • simbolu "T" aizstāj ar "@"
  • rakstzÄ«me "0" tiek aizstāta ar "/"
  • rakstzÄ«me "Y" tiek aizstāta ar "*"

RakstzÄ«mju aizstāŔanas rezultātā, kas kodēta, izmantojot base64 Datus nevar atÅ”ifrēt, neveicot apgriezto konvertÄ“Å”anu.

Šādi izskatās sniffer koda fragments, kas nav apslēpts:

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Infrastruktūras analīze

Sākotnējās kampaņās uzbrucēji reÄ£istrēja domēna nosaukumus, kas ir lÄ«dzÄ«gi likumÄ«gu tieÅ”saistes iepirkÅ”anās vietņu nosaukumiem. Viņu domēns var atŔķirties no likumÄ«gā ar vienu simbolu vai citu TLD. ReÄ£istrētie domēni tika izmantoti sniffer koda glabāŔanai, saite uz kuru tika iegulta veikala kodā.

Šī grupa izmantoja arī domēna nosaukumus, kas atgādina populārus jQuery spraudņus (slickjs[.]org vietnēm, kurās tiek izmantots spraudnis slick.js), maksājumu vārtejas (sagecdn[.]org vietnēm, kurās tiek izmantota maksājumu sistēma Sage Pay).

Vēlāk grupa sāka veidot domēnus, kuru nosaukumiem nebija nekāda sakara ar veikala domēnu vai veikala tēmu.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Katrs domēns atbilda vietnei, kurā tika izveidots direktorijs /js vai / src. Sniffer skripti tika glabāti Å”ajā direktorijā: viens sniffer par katru jaunu infekciju. Sniffer tika iegults vietnes kodā, izmantojot tieÅ”u saiti, taču retos gadÄ«jumos uzbrucēji pārveidoja kādu no vietnes failiem un pievienoja tam ļaunprātÄ«gu kodu.

Koda analīze

Pirmais apmulsināŔanas algoritms

Dažos atklātajos Ŕīs Ä£imenes sniferu paraugos kods tika apslēpts un saturēja Å”ifrētus datus, kas nepiecieÅ”ami, lai snifers darbotos: jo Ä«paÅ”i snifera vārtu adrese, maksājuma veidlapas lauku saraksts un dažos gadÄ«jumos viltus kods. maksājuma forma. Funkcijas kodā resursi tika Å”ifrēti, izmantojot XOR ar atslēgu, kas tika nodota kā arguments tai paÅ”ai funkcijai.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
AtÅ”ifrējot virkni ar atbilstoÅ”u atslēgu, kas ir unikāla katram paraugam, jÅ«s varat iegÅ«t virkni, kurā ir visas virknes no sniffer koda, kas atdalÄ«tas ar atdalÄ«Å”anas rakstzÄ«mi.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Otrais apmulsināŔanas algoritms

Vēlākajos Ŕīs Ä£imenes sniferu paraugos tika izmantots cits apmulsināŔanas mehānisms: Å”ajā gadÄ«jumā dati tika Å”ifrēti, izmantojot paÅ”rakstÄ«tu algoritmu. Virkne, kas satur Å”ifrētus datus, kas nepiecieÅ”ami sniffer darbÄ«bai, tika nodota kā arguments atÅ”ifrÄ“Å”anas funkcijai.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Izmantojot pārlÅ«kprogrammas konsoli, varat atÅ”ifrēt Å”ifrētos datus un iegÅ«t masÄ«vu, kas satur sniffer resursus.

Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos

Savienojums ar agrīniem MageCart uzbrukumiem

Analizējot vienu no domēniem, ko grupa izmantoja kā vārteju zagtu datu vākÅ”anai, tika konstatēts, ka Å”ajā domēnā ir izvietota kredÄ«tkarÅ”u zādzÄ«bu infrastruktÅ«ra, kas ir identiska tai, ko izmanto 1. grupa, viena no pirmajām grupām, atklāja RiskIQ speciālisti.

Uz CoffeMokko sniferu ģimenes saimnieka tika atrasti divi faili:

  • mage.js ā€” fails, kas satur 1. grupas sniffer kodu ar vārtu adresi js-cdn.link
  • mag.php ā€” PHP skripts, kas atbild par snifera nozagto datu vākÅ”anu

Mage.js faila saturs Četri JavaScript snifferi, kas jÅ«s gaida tieÅ”saistes veikalos
Tika arī noteikts, ka agrākie domēni, kurus izmantoja CoffeMokko sniferu saimes grupa, tika reģistrēti 17. gada 2017. maijā:

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

Å o domēna nosaukumu formāts atbilst 1. grupas domēna nosaukumiem, kas tika izmantoti 2016. gada uzbrukumos.

Pamatojoties uz atklātajiem faktiem, var pieņemt, ka pastāv saikne starp CoffeMokko sniferu operatoriem un noziedzÄ«go grupējumu 1. grupa. Jādomā, ka CoffeMokko operatori varētu bÅ«t aizņēmuÅ”ies rÄ«kus un programmatÅ«ru no saviem priekÅ”gājējiem, lai nozagtu kartes. Tomēr, visticamāk, noziedzÄ«gais grupējums aiz CoffeMokko sniferu Ä£imenes izmantoÅ”anas ir tās paÅ”as personas, kuras veica 1. grupas uzbrukumus.Pēc pirmā ziņojuma par noziedzÄ«gās grupas darbÄ«bām publicÄ“Å”anas visi viņu domēna vārdi tika bloķēta, un instrumenti tika detalizēti izpētÄ«ti un aprakstÄ«ti. Grupa bija spiesta ieturēt pauzi, pilnveidot savus iekŔējos rÄ«kus un pārrakstÄ«t sniffer kodu, lai turpinātu uzbrukumus un paliktu neatklāta.

Infrastruktūra

Domēna vārds AtklāŔanas/parādÄ«Å”anās datums
saite-js.saite 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
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
aizstājietmyremote.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
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

Avots: www.habr.com

Pievieno komentāru