
Praktikisht çdo njeri prej nesh përdor shërbimet e dyqaneve online, prandaj, herët a vonë, rrezikon të bëhet viktimë e JavaScript-snifferëve — një kod i veçantë që sulmuesit e injektojnë në faqet e internetit për të vjedhur të dhënat e kartave bankare, adresave, emrave të përdoruesve dhe fjalëkalimeve.
Rreth 400,000 përdorues të faqes dhe aplikacionit mobil të kompanisë ajrore British Airways, si dhe vizitorët e faqes britanike të gjigandit sportiv FILA dhe distributorit amerikan të biletave Ticketmaster, kanë pësuar dëme nga snifferët. PayPal, Chase Paymenttech, USAePay, Moneris — këto dhe shumë sisteme të tjera pagesash janë infektuar.
Analisti i Threat Intelligence Group-IB, Viktor Okorokov, flet për mënyrat se si snifferët injektohen në kodin e faqes dhe vjedhin informacionin e pagesës, si dhe për CRM-të që ata sulmojnë.

«Kërcënimi i fshehtë»
Kështu ndodhi që për një kohë të gjatë, JS-snifferët mbetën jashtë fokusit të analistëve të antivirusëve, dhe bankat e sistemet e pagesave nuk i shihnin si një kërcënim të rëndësishëm. Dhe kjo ishte krejtësisht e kotë. Ekspertët e Group-IB 2440 dyqane online të infektuara, vizitorët e të cilëve — së bashku rreth 1.5 milion njerëz në ditë — ishin në rrezik të komprometimit. Mes të prekurve ishin jo vetëm përdoruesit, por edhe dyqanet online, sistemet e pagesave dhe bankat që lëshuan karta të komprometuar.
Group-IB ishte studimi i parë për tregun e errët të snifferëve, strukturën e tyre dhe metodat e monetizimit, që i sjellin krijuesve të tyre miliona dollarë. Ne identifikuam 38 familje snifferësh, prej të cilave vetëm 12 ishin të njohura më parë për studiuesit.
Le të ndalemi detailed në katër familjet e snifferëve, të studiuara gjatë hulumtimit.
Familja ReactGet
Snifferët e familjes ReactGet përdoren për të vjedhur të dhënat e kartave bankare në faqet e dyqaneve online. Snifferi mund të punojë me një numër të madh sistemesh pagesash të ndryshme që përdoren në faqen: një vlerë parametri korrespondon me një sistem pagesash, dhe versione të veçanta të zbuluara të snifferit mund të përdoren për të vjedhur kredencialet, si dhe për të vjedhur të dhënat e bankave nga format e pagesave të disa sistemeve të ndryshme, siç është një sniffer universale. Është përcaktuar se në disa raste, sulmuesit realizojnë sulme phishing ndaj administratorëve të dyqaneve online për të marrë qasje në panelin administrativ të faqes.
Fushata që përdor këtë familje snifferësh filloi në maj 2017, teksa u sulmuan faqet që menaxhohen nga CMS-ja dhe platformat Magento, Bigcommerce, Shopify.
Si ReactGet injektohet në kodin e dyqanit online
Përveç injektimit të zakonshëm të skriptit përmes një lidhjeje, operatorët e snifferëve të familjes ReactGet përdorin një teknikë të veçantë: me anë të kodit JavaScript kontrollohet nëse adresa aktuale ku ndodhet përdoruesi përputhet me kritere të caktuara. Kodi keqdashës do të ekzekutohet vetëm nëse URL-ja e tanishme përmban nënstring checkout ose onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Kështu, kodi i snifferit do të ekzekutohet në momentin kur përdoruesi kalon në pagesë dhe fut informacionin e pagesës në formularin e faqes.

Ky sniffer përdor një teknikë jo standarde. Të dhënat e pagesës dhe personale të viktimës mblidhen së bashku, kodohen duke përdorur base64, dhe pastaj stringu i marrë përdoret si parametr për dërgimin e një kërkese në faqen e sulmuesve. Më së shpeshti rruga deri te porta imiton një skedar JavaScript, për shembull resp.js, data.js dhe kështu me radhë, por po ashtu përdoren lidhje për skedarë imazhesh, GIF dhe JPG. Karakteristika është se snifferi krijon një objekt imazhi të madhësisë 1 me 1 piksel dhe përdor lidhjen e marrë më parë si parametr src të imazhit. Kështu për përdoruesin, një kërkesë e tillë në trafik do të duket si një kërkesë për një biletë normale. Një teknikë e ngjashme është përdorur te snifferët e familjes ImageID. Për më tepër, teknika me përdorimin e një imazhi të madhësisë 1 me 1 piksel aplikohet në shumë skripta legjitime të analitikës online, që gjithashtu mund ta çojë në mashtrim përdoruesin.

Analiza e versioneve
Analiza e domain-eve aktive, të përdorura nga operatorët e snifferëve ReactGet, ka lejuar zbulimin e shumë versioneve të ndryshme të snifferëve të kësaj familje. Versionet ndryshojnë në praninë ose mungesën e obfuskimit, dhe përveç kësaj, çdo sniffer është dizajnuar për një sistem të caktuar pagesash që përpunon pagesat me karta bankare për dyqanet online. Duke kaluar përmes vlerës së parametrave, që korrespondon me numrin e versionit, specialistët e Group-IB morën një listë të plotë të varianteve të disponueshme të snifferëve, dhe nga emrat e fushave të formave që çdo sniffer kërkon në kodin e faqes, përcaktuan sistemet e pagesave që snifferi ka si objektiv.
Lista e sniffereve dhe sistemeve përkatëse të pagesave
| URL i sniffereve | Sistemi i pagesës |
|---|---|
| Authorize.Net | |
| Cardsave | |
| Authorize.Net | |
| Authorize.Net | |
| eWAY Rapid | |
| Authorize.Net | |
| Adyen | |
| USAePay | |
| Authorize.Net | |
| USAePay | |
| Authorize.Net | |
| Moneris | |
| USAePay | |
| PayPal | |
| Sage Pay | |
| Verisign | |
| PayPal | |
| Stripe | |
| Realex | |
| PayPal | |
| LinkPoint | |
| PayPal | |
| PayPal | |
| DataCash | |
| PayPal | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| Moneris | |
| Sage Pay | |
| USAePay | |
| Authorize.Net | |
| Authorize.Net | |
| ANZ eGate | |
| Authorize.Net | |
| Moneris | |
| Sage Pay | |
| Sage Pay | |
| Chase Paymentech | |
| Authorize.Net | |
| Adyen | |
| PsiGate | |
| CyberSource | |
| ANZ eGate | |
| Realex | |
| USAePay | |
| Authorize.Net | |
| Authorize.Net | |
| ANZ eGate | |
| PayPal | |
| PayPal | |
| Realex | |
| Sage Pay | |
| PayPal | |
| Verisign | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| ANZ eGate | |
| PayPal | |
| CyberSource | |
| Authorize.Net | |
| Sage Pay | |
| Realex | |
| CyberSource | |
| PayPal | |
| PayPal | |
| PayPal | |
| Verisign | |
| eWAY Rapid | |
| Sage Pay | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| First Data Global Gateway | |
| Authorize.Net | |
| Authorize.Net | |
| Moneris | |
| Authorize.Net | |
| PayPal | |
| Verisign | |
| USAePay | |
| USAePay | |
| Authorize.Net | |
| Verisign | |
| PayPal | |
| Authorize.Net | |
| Stripe | |
| Authorize.Net | |
| eWAY Rapid | |
| Sage Pay | |
| Authorize.Net | |
| Braintree | |
| Braintree | |
| PayPal | |
| Sage Pay | |
| Sage Pay | |
| Authorize.Net | |
| PayPal | |
| Authorize.Net | |
| Verisign | |
| PayPal | |
| Authorize.Net | |
| Stripe | |
| Authorize.Net | |
| eWAY Rapid | |
| Sage Pay | |
| Authorize.Net | |
| Braintree | |
| PayPal | |
| Sage Pay | |
| Sage Pay | |
| Authorize.Net | |
| PayPal | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Sage Pay | |
| Westpac PayWay | |
| PayFort | |
| PayPal | |
| Authorize.Net | |
| Stripe | |
| First Data Global Gateway | |
| PsiGate | |
| Authorize.Net | |
| Authorize.Net | |
| Moneris | |
| Authorize.Net | |
| Sage Pay | |
| Verisign | |
| Moneris | |
| PayPal | |
| LinkPoint | |
| Westpac PayWay | |
| Authorize.Net | |
| Moneris | |
| PayPal | |
| Adyen | |
| PayPal | |
| Authorize.Net | |
| USAePay | |
| EBizCharge | |
| Authorize.Net | |
| Verisign | |
| Verisign | |
| Authorize.Net | |
| PayPal | |
| Moneris | |
| Authorize.Net | |
| PayPal | |
| PayPal | |
| Westpac PayWay | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| PayPal | |
| PayFort | |
| CyberSource | |
| PayPal Payflow Pro | |
| Authorize.Net | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Authorize.Net | |
| Stripe | |
| Authorize.Net | |
| Authorize.Net | |
| Verisign | |
| PayPal | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Authorize.Net | |
| Authorize.Net | |
| PayPal | |
| Flint | |
| PayPal | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Stripe | |
| Fat Zebra | |
| Sage Pay | |
| Authorize.Net | |
| First Data Global Gateway | |
| Authorize.Net | |
| eWAY Rapid | |
| Adyen | |
| PayPal | |
| Shërbimet Merchant të QuickBooks | |
| Verisign | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Authorize.Net | |
| eWAY Rapid | |
| Authorize.Net | |
| ANZ eGate | |
| PayPal | |
| CyberSource | |
| Authorize.Net | |
| Sage Pay | |
| Realex | |
| CyberSource | |
| PayPal | |
| PayPal | |
| PayPal | |
| Verisign | |
| eWAY Rapid | |
| Sage Pay | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| First Data Global Gateway | |
| Authorize.Net | |
| Authorize.Net | |
| Moneris | |
| Authorize.Net | |
| PayPal |
Sniffer i fjalëkalimeve
Një nga avantazhet e sniffereve JavaScript që punojnë në anën e klientit të faqes është universialiteti: kodi keqdashës i inkorporuar në faqen e internetit mund të vjedhë të dhëna të çdo lloji, qoftë ato të dhëna pagese apo përdorimi dhe fjalëkalimi për llogarinë e përdoruesit. Specialistët e Group-IB zbuluan një mostër snifferi në familjen ReactGet, të destinuar për të vjedhur adresat e emaileve dhe fjalëkalimet e përdoruesve të faqes.

Kryqëzimi me snifferin ImageID
Gjatë analizës së një nga dyqaneve të infektuara, u zbuluar se fakti se faqja e tij kishte përjetuar infektim dy herë: përveç kodit keqdashës të snifferit nga familja ReactGet, ishte zbuluar edhe kodi i snifferit nga familja ImageID. Ky kryqëzim mund të jetë një tregues se operatorët që qëndrojnë pas përdorimit të të dy snifferëve përdorin teknika të ngjashme për të inkorporuar kodin keqdashës.

Sniffer universial
Gjatë analizës së emrave të domeneve që lidhen me infrastrukturën e sniffereve ReactGet, u zbulua se i njëjti përdorues kishte regjistruar edhe tri emra të tjerë domeni. Këto tri domene imitonin domene të faqeve reale dhe ishin përdorur më parë për të hostuar sniffere. Gjatë analizës së kodit të tre faqeve legjitime u zbulua një sniffer i panjohur, dhe analiza e mëtejshme zbuloi se ky ishte një version i avancuar i snifferit ReactGet. Të gjitha versionet e mëparshme të gjeneratës së këtij snifferi ishin fokusuar në një sistem të caktuar pagesash, do thotë se për çdo sistem pagesash ishte nevojitur një version specifik snifferi. Megjithatë, në këtë rast u zbulua një version universial snifferi, i cili mund të vjedhë informacion nga format që lidhen me 15 sisteme të ndryshme pagesash dhe module të faqeve ecommerce për kryerjen e pagesave online.
Pra, në fillim të punës, snifferi kërkonte fushat bazë të formularit që përmbanin informacionin personal të viktimës: emrin e plotë, adresën fizike, numrin e telefonit.

Më pas, snifferi kërkonte për më shumë se 15 prefikse të ndryshme, që i përgjigjeshin sistemeve të ndryshme të pagesave dhe moduleve për pagesat online.

Më pas, të dhënat personale të viktimës dhe informacioni mbi pagesat përmblidheshin dhe dërgoheshin në faqen e internetit të kontrolluar nga sulmuesi: në këtë rast specifik u zbuluan dy versione të snifferit universial ReactGet, që ishin vendosur në dy faqe të ndryshme të hakuara. Megjithatë, të dy versionet dërguan të dhënat e vjedhura në të njëjtin site të hakuar. zoobashop.com.

Analiza e prefikseve që u përdorën nga snifferi për të kërkuar fushat që përmbanin informacionin mbi pagesat të viktimës, ndihmoi në përcaktimin se kjo mostër snifferi ishte fokusuar në sistemet e mëposhtme të pagesave:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Stripe
- PayPal
- ANZ eGate
- Braintree
- DataCash (MasterCard)
- Realex Payments
- PsiGate
- Heartland Payment Systems
Cilat mjete përdoren për vjedhjen e informacionit mbi pagesat
Instrumenti i parë që u zbulua gjatë analizës së infrastrukturës së sulmuesve shërben për obfuscimin e skripteve keqdashëse përgjegjëse për vjedhjen e kartave bankare. Në një nga hostet e sulmuesve u zbulua një skript bash që përdor CLI të projektit për automatizimin e obfuscimit të kodit të sniffereve.
![]()
Instrumenti i dytë i zbuluar është për të gjeneruar kodin që është përgjegjës për ngarkimin e snifferit kryesor. Ky instrument gjeneron kod JavaScript, i cili kontrollon nëse përdoruesi ndodhet në faqen e pagesës, duke kërkuar në adresën aktuale të përdoruesit për vargje checkout, cart e kështu me radhë, dhe nëse rezultati është pozitiv, kodi ngarkon snifferin kryesor nga serverët e sulmuesve. Për të fshehur aktivitetin e keqdashës, të gjitha vargjet, duke përfshirë vargjet testuese për të përcaktuar faqen e pagesës, si dhe lidhjen për snifferin, janë koduar me base64.

Sulmet phishing
Gjatë analizës së infrastrukturës rrjetore të sulmuesve, u zbulua se shpeshherë për të fituar akses në panelin administrativ të dyqanit online, grupi kriminal përdor phishing. Sulmuesit regjistrojnë një domain që duket vizualisht si domain i dyqanit dhe më pas vendosin një formular të rremë për hyrjen në panelin administrativ të Magento. Nëse sulmuesit kanë sukses, ata do të fitojnë akses në panelin administrativ të CMS Magento, gjë që u ofron atyre mundësinë për të redaktuar komponentet e faqes dhe për të inkorporuar një sniffer për të vjedhur të dhënat e kartave të kreditit.

Infrastruktura
| Domeni | Data e zbulimit/shfaqjes |
|---|---|
| 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 |
| 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 |
Familja G-Analytics
Kjo familje sniffer-sh përdoret për të vjedhur kartat e klientëve të dyqaneve online. Emri i parë i domain-it që u regjistrua nga grupi ishte në prill 2016, që mund të tregojë fillimin e aktiviteteve të grupit në mes të vitit 2016.
Në fushatën aktuale, grupi përdor domain-e që imitojnë shërbime të vërteta si Google Analytics dhe jQuery, duke maskuar aktivitetin e sniffer-ave me skripte legjitime dhe emra domain-esh që duken legjitimë. Sitet e sulmuara kanë qenë ato që punojnë nën menaxhimin e CMS Magento.
Si G-Analytics integrohet në kodin e dyqanit online
Karakteristika dalluese e kësaj familjeje është përdorimi i mënyrave të ndryshme për të vjedhur informacionin e pagesës së përdoruesit. Përveç integrimit klasik të kodit JavaScript në përmbajtjen e klientit të sitit, grupi kriminal gjithashtu ka aplikuar teknika integrimi të kodit në pjesën server-side të sitit, përkatësisht skripte PHP që përpunojnë të dhënat e futur nga përdoruesi. Kjo teknikë është e rrezikshme për shkak se e vështirëson zbulesën e kodit të dëmshëm nga kërkuesit e palëve të treta. Specialistët e Group-IB kanë zbuluar një version të sniffer-it të integruar në kodin PHP të sitit, i cili përdor si gateway domain-in dittm.org.

Po ashtu është zbuluar një version i hershëm i sniffer-it, që përdor të njëjtin domain për mbledhjen e të dhënave të vjedhura dittm.org, por ky version është i destinuar për të u instaluar në anën klientit të dyqanit online.

Më vonë grupi ndryshoi taktikën e tij dhe filloi të kushtojë më shumë vëmendje fshehjes së aktiviteteve për të dëmshme dhe maskimit.
Në fillim të vitit 2017, grupi filloi të përdorë domain-in jquery-js.com, i cili maskohet si CDN për jQuery: kur përdoruesi kalon në sitin e sulmuesve, ai redirigjohet në sitin legjitim jquery.com.
Dhe në mes të vitit 2018, grupi mori në përdorim emrin e domain-it g-analytics.com dhe filloi të maskojë aktivitetin e sniffer-it nën shërbimin legjitim Google Analytics.


Analiza e versioneve
Në analizën e domain-eve të përdorura për ruajtjen e kodit të sniffer-ave, u përcaktua se në sit ndodhen shumë versione, të cilat ndryshojnë për nga prania e obfuscation dhe nga prania ose mungesa e kodit të paarritshëm të shtuar në skedarin për të tërhequr vëmendjen dhe fshehjen e kodit të dëmshëm.
Në total në sit jquery-js.com u zbuluan gjashtë versione sniffer-ash. Të dhënat e vjedhura këto sniffer-a i dërgojnë në një adresë që ndodhet në të njëjtin sit me vetë sniffer-in: 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
Domaini më vonë g-analytics.com, i përdorur nga grupi në sulmet që prej mesit të vitit 2018, shërben si magazinë për një numër më të madh sniffer-ash. Në total janë zbuluar 16 versione të ndryshme sniffer-ash. Në këtë rast, gateway për dërgimin e të dhënave të vjedhura është maskuar si një lidhje në një imazh në formatin 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
Monetizimi i të dhënave të vjedhura
Grupi kriminal monetizon të dhënat e vjedhura duke i shitur kartat përmes një dyqani të posaçëm të nënkuptuar, që ofron shërbime për karderinë. Analiza e domain-eve të përdorura nga sulmuesit ka lejuar të përcaktohet se google-analytics.cm u regjistrua nga i njëjti përdorues që regjistroi domain-in cardz.vc. Domaini cardz.vc i përket dyqanit për shitjen e kartave bankare të vjedhura Cardsurfs (Flysurfs), i cili fitoi popullaritet që në kohën e aktiviteteve të tregtisë underground AlphaBay si një dyqan për shitjen e kartave bankare të vjedhura përmes sniffer-ës.

Duke analizuar domain-in analytic.is, i cili ndodhet në të njëjtin server me domain-et e përdorura nga sniffer-at për mbledhjen e të dhënave të vjedhura, specialistët e Group-IB zbuluan një skedar që përmban logjet e cookie-stiller-ave, i cili duket se më vonë u braktis nga zhvilluesi. Një nga regjistrimet në log kishte domain-in iozoz.com, që më parë ishte përdorur në një nga sniffer-at aktivë në vitin 2016. Supozohet se ky domain ishte përdorur më parë nga sulmuesi për mbledhjen e kartave të vjedhura përmes sniffer-ës. Ky domain ishte regjistruar me adresën e email-it kts241@gmail.com, e cila gjithashtu ishte përdorur për regjistrimin e domain-eve cardz.su dhe cardz.vc, që i përkasin dyqanit për kartat bankare Cardsurfs.
Duke u bazuar në të dhënat e marra, mund të supozohet se familja e sniffer-ëve G-Analytics dhe dyqani underground për shitjen e kartave bankare Cardsurfs menaxhohen nga të njëjtit persona, ndërsa dyqani përdoret për realizimin e kartave bankare të vjedhura përmes sniffer-ëve.
Infrastruktura
| Domeni | Data e zbulimit/shfaqjes |
|---|---|
| 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 |
| analytic.to | 04.12.2018 |
| google-analytics.to | 06.12.2018 |
| google-analytics.cm | 28.12.2018 |
| analytic.is | 28.12.2018 |
| googlc-analytics.cm | 17.01.2019 |
Familja Illum
Illum — një familje sniffersh që përdoren për sulme ndaj dyqaneve online që punojnë me CMS Magento. Përveç injektimit të kodit të dëmshëm, operatoret e këtij sniffers gjithashtu përdorin injektimin e formave të rreme të pagesës, të cilat dërgojnë të dhënat në porta të kontrolluara nga kriminelët.
Gjatë analizës së infrastruktures rrjetësore që përdorin operatoret e këtij sniffers, u vërejt një numër i madh skenesh të dëmshme, eksploita, formash të rreme pagesash, si dhe një përmbledhje e shembujve me sniffers të dëmshëm të konkurentëve. Duke u bazuar në informacionin e datave të shfaqjes së emrave të domenëve që përdoren nga grupi, mund të supozohet se fillimi i fushatës përkon me fundin e vitit 2016.
Si Illum futet në kodin e dyqanit online
Versionet e para të zbuluara të sniffers u injektuan direkt në kodin e faqes së komprometuar. Të dhënat e vjedhura dërgoheshin në adresën cdn.illum[.]pw/records.php, ndersa porta ishte e koduar me base64.

Më vonë u zbulua një version i paketuar i sniffers, duke përdorur një portë tjetër — records.nstatistics[.]com/records.php.

Sipas Willem de Groot, e njëjta host ishte përdorur në sniffersin që u injektua në , që i përkiste partisë politike gjermane CSU.
Analiza e faqes së kriminelëve
Ekspertët e Group-IB zbuluan dhe analizuan faqen e përdorur nga ky grup kriminal për të ruajtur mjetet dhe për të mbledhur informacionin e vjedhur.

Në mesin e mjeteve të zbuluara në serverin e kriminelëve, u gjetën skenare dhe eksploita për rritjen e privilegjeve në OS Linux: për shembull, Skripti i Kontrollit për Rritjen e Privilegjeve në Linux, i zhvilluar nga Mike Czumak, dhe gjithashtu një exploit për CVE-2009-1185.
Për sulmet ndaj dyqaneve online, kriminelët përdorën dy eksploita: që është në gjendje të inkorporojë kod të dëmshëm në core_config_data me anë të eksploatimit të CVE-2016-4010, ekspozon një vulnerabilitet të tipit RCE në plugins për CMS Magento, duke lejuar ekzekutimin e kodit të rastësishëm në një server web të prekur.

Gjithashtu, gjatë analizës së serverit u zbuluan mostra të ndryshme snifferësh dhe formash të rreme pagesash që përdoren nga kriminelët për të mbledhur informacionin e pagesave nga faqet e hakuara. Siç mund të vërehet nga lista më poshtë, disa skenare u krijuan individualisht për çdo faqe të hakuar, ndërsa për disa CMS dhe portat e pagesave u përdor një zgjidhje universale. Për shembull, skenaret segapay_standart.js dhe segapay_onpage.js janë të destinuara për t'u injektuar në faqet që përdorin portalin e pagesave Sage Pay.
Lista e skenareve për portat e ndryshme të pagesave
| Skripti | Portal pagesash |
|---|---|
| [.]pw/mjs_special/visiondirect.co.uk.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/topdierenshop.nl.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/tiendalenovo.es.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/pro-bolt.com.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/plae.co.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/ottolenghi.co.uk.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/oldtimecandy.com.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/mylook.ee.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs_special/luluandsky.com.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/julep.com.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs_special/gymcompany.es.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/grotekadoshop.nl.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/fushi.co.uk.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/fareastflora.com.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/compuindia.com.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs/segapay_standart.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs/segapay_onpage.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs/replace_standart.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs/all_inputs.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs/add_inputs_standart.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/magento/payment_standart.js | //cdn.illum[.]pw/records.php |
| [.]pw/magento/payment_redirect.js | //payrightnow[.]cf/?payment= |
| [.]pw/magento/payment_redcrypt.js | //payrightnow[.]cf/?payment= |
| [.]pw/magento/payment_forminsite.js | //paymentnow[.]tk/?payment= |
Host paymentnow[.]tk, që përdorej si portë në skenarin payment_forminsite.js, u gjet si subjectAltName në disa sertifikata që i përkasin shërbimit CloudFlare. Përveç kësaj, në host ishte një skenar evil.js. Duket se nga emri i skenarit, ai mund të ishte përdorur në kuadër të eksploatimit të CVE-2016-4010, me anë të të cilit mund të inkorporohet kod i dëmshëm në footer-in e një faqeje nën menaxhimin e CMS Magento. Si portë, ky skenar përdori hostin request.requestnet[.]tk, që përdor të njëjtin sertifikatë si hosti paymentnow[.]tk.
Formularët e rreme të pagesave
Më poshtë, në figurë, është një shembull i formularit për futjen e të dhënave të kartës. Ky formular u përdor për t'u injektuar në faqen e dyqanit online dhe për të vjedhur të dhënat e kartave.

Në figurën tjetër është një shembull i formularit të rremë të pagesës PayPal, që kriminelët e përdorën për të injektuar në faqet që përdorin këtë metodë pagesash.

Infrastruktura
| Domeni | Data e zbulimit/shfaqjes |
|---|---|
| cdn.illum.pw | 27/11/2016 |
| records.nstatistics.com | 06/09/2018 |
| request.payrightnow.cf | 25/05/2018 |
| paymentnow.tk | 16/07/2017 |
| payment-line.tk | 01/03/2018 |
| paymentpal.cf | 04/09/2017 |
| requestnet.tk | 28/06/2017 |
Familja CoffeMokko
Familja e sniffersve CoffeMokko, të destinuar për të vjedhur kartat bankare të përdoruesve të dyqaneve online, është përdorur të paktën që nga maji i vitit 2017. Supozohet se operatorët e kësaj familjeje sniffersh janë grupi kriminal Group 1, i përshkruar nga ekspertët e RiskIQ në vitin 2016. Sulmet goditën faqet nën menaxhimin e CMS-ve të tilla si Magento, OpenCart, WordPress, osCommerce, Shopify.
Si CoffeMokko futet në kodin e dyqanit online
Operatorët e kësaj familjeje krijojnë sniffers unik për çdo infeksion: skedari i sniffers vendoset në direktorinë src ose js në serverin e kriminelëve. Futja në kodin e faqes bëhet përmes një lidhjeje të drejtpërdrejtë me sniffers.

Në kodin e sniffers është koduar fort emrat e fushave të formularit nga të cilat duhet të vidhen të dhënat. Gjithashtu, snifferi kontrollon nëse përdoruesi ndodhet në faqen e pagesës, duke krahasuar listën e fjalëve kyç me adresën aktuale të përdoruesit.

Disa versionet e zbuluara të snifferit ishin obfuscated dhe përmbanin një varg të enkriptuar, ku ruhej array kryesor i burimeve: aty ndodhen emrat e fushave të formularëve për sistemet e ndryshme të pagesave, si dhe adresa e portës, në të cilën duhet të dërgohen të dhënat e vjedhura.

Informacioni i vjedhur i страницыні msg ание paraishikë eечuhл heдheшhse gодуbеishтарhиiene aнеиле стпuнгca дахь iahesht hufарheneah tкайше කර වෙතhоh. /savePayment/index.php или /tr/index.php. Supozohet se ky script shërben për dërgimin e të dhënave nga porta në serverin kryesor, që konsolidon të dhënat nga të gjithë snifferët. Për të fshehur të dhënat e dërguara, e gjithë informacioni financiar i viktimës kodifikohet duke përdorur base64, dhe më pas ndodhin disa zëvendësime të karaktereve:
- karakteri «e» zëvendësohet me «:»
- karakteri «w» zëvendësohet me «+»
- karakteri «o» zëvendësohet me «%»
- karakteri «d» zëvendësohet me «#»
- karakteri «a» zëvendësohet me «-»
- karakteri «7» zëvendësohet me «^»
- karakteri «h» zëvendësohet me «_»
- karakteri «T» zëvendësohet me «@»
- karakteri «0» zëvendësohet me «/»
- karakteri «Y» zëvendësohet me «*»
Si rezultat i zëvendësimeve të karaktereve, të dhënat e koduara me base64 nuk mund të dekodohen pa u kryer një transformim të kundërt.
Kështu duket një fragment kodi nga snifferi, i cili nuk është në obfuscation:

Analiza e infrastrukturës
Në fushatat e hershme, sulmuesit regjistronin emra domain-i të ngjashëm me domain-et e faqeve të dyqanëve të ligjshëm online. Domain-i i tyre mund të ndryshonte nga ai legjitim me një karakter ose me një TLD tjetër. Domain-et e regjistruara janë përdorur për të akomoduar kodin e sniffer-ëve, linku i të cilit ishte i inkorporuar në kodin e dyqanit.
Gjithashtu, kjo grup përdori emra domain-i që i ngjanin emrave të plugin-eve popullore për jQuery (slickjs[.]org për faqet që përdorin plugin-in slick.js), portave të pagesave (sagecdn[.]org për faqet që përdorin sistemin e pagesave Sage Pay).
Më vonë, grupi filloi të krijonte domain-e, emrat e të cilave nuk kishin asnjë lidhje me domain-in e dyqanit ose me tematiken e dyqanit.

Çdo domain kish një uebfaqe, ku krijohej një direktori /js ose /src. Në këtë direktori ruheshin skriptet e snifferëve: një sniffer për çdo infeksion të ri. Sniffer-i ishte inkorporuar në kodin e faqes përmes një linku të drejtpërdrejtë, por në raste të rralla sulmuesit modifikonin një nga skedarët e faqes dhe shtonin në të kod të dëmshëm.
Analiza e kodit
Algoritmi i parë i obfuscation
Në disa mostra të identifikuara të snifferëve të këtij grupi, kodi ishte obfuskated dhe përmbante të dhënat e koduara, të nevojshme për funksionimin e sniffer-it: veçanërisht, adresën e portës së sniffer-it, listën e fushave të formularit të pagesës dhe në disa raste — kodin e formularit të falsifikuar të pagesës. Në kodin brenda funksionit, burimet ishin koduar me XOR me një çelës që kalonte si argument në këtë funksion.

Duke dekoduar vargun me çelësin përkatës, unik për çdo mostër, mund të merrni një varg, që përmban të gjitha vargjet nga kodi i sniffer-it të ndara me një karakter ndarës.

Algoritmi i dytë i obfuscation
Në mostrave më të vona të snifferëve të këtij grupi u përdor një mekanizëm tjetër obfuscation: në këtë rast të dhënat ishte koduar me një algoritëm të shkruar vetë. Vargu me të dhënat e koduara, të nevojshme për funksionimin e sniffer-it, kalonte si argument në funksionin e dekodimit.

Me ndihmën e konsolës së shfletuesit, është e mundur të dekodohen të dhënat e koduara dhe të merrni një array që përmban burimet e sniffer-it.

Lidhja me sulmet e hershme MageCart
Gjatë analizës së një prej domain-eve, të përdorura nga grupi si një portë për të mbledhur të dhënat e vjedhura, u konstatua se në këtë domain ishte vendosur një infrastrukturë për vjedhjen e kartave të kreditit, e ngjashme me atë, e cila ishte përdorur nga Grupi 1 — një nga grupet e para, nga specialistët e RiskIQ.
Në hostin e familjes së snifferëve CoffeMokko u gjetën dy skedarë:
- mage.js — skedari që përmban kodin e sniffer-it të Grupit 1 me adresën e portës js-cdn.link
- mag.php — skripti PHP, përgjegjës për mbledhjen e të dhënave të vjedhura nga sniffer-i
Содержимое файла mage.js 
Ishte gjithashtu e qartë se domain-et më të hershme që përdoren nga grupi i qëndronte prapa familjes së snifferëve CoffeMokko ishin regjistruar më 17 maj 2017:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- map-js[.]link
- smart-js[.]link
Formati i këtyre emrave të domain-eve përputhej me emrat e domain-eve të Grupit 1, të cilat ishin përdorur në sulmet e vitit 2016.
Në bazë të fakteve të zbuluara, mund të supozohet se ka një lidhje midis operatorëve të snifferave CoffeMokko dhe grupit të krimit Group 1. Supozohet se operatorët e CoffeMokko mund të kenë huazuar nga paraardhësit e tyre mjete dhe programe për vjedhjen e kartave. megjithatë, është më e mundshme që grupi kriminal që qëndron pas përdorimit të snifferave të familjes CoffeMokko, janë të njëjtat njerëz që realizuan sulmet në kuadër të aktivitetit të Group 1. Pas publikimit të raportit të parë mbi aktivitetin e grupit të krimit, të gjitha emrat e tyre të domenit u bllokuan dhe mjetet u studiuan dhe u përshkruan në detaje. Grupi ishte i detyruar të merrte një pushim, të rinovonte mjetet e brendshme dhe të ri-shkruante kodin e snifferave për të vazhduar sulmet e tyre dhe për të mbetur të padukshëm.
Infrastruktura
| Domeni | Data e zbulimit/shfaqjes |
|---|---|
| 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 |
| childsplayclothing.org | 31.10.2017 |
| jewsondirect.com | 05.11.2017 |
| shop-rnib.org | 15.11.2017 |
| closetlondon.org | 16.11.2017 |
| misshaus.org | 28.11.2017 |
| battery-force.org | 01.12.2017 |
| kik-vape.org | 01.12.2017 |
| greatfurnituretradingco.org | 02.12.2017 |
| etradesupply.org | 04.12.2017 |
| replacemyremote.org | 04.12.2017 |
| all-about-sneakers.org | 05.12.2017 |
| mage-checkout.org | 05.12.2017 |
| nililotan.org | 07.12.2017 |
| lamoodbighats.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 |
| ottocap.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 |
Burimi: habr.com
