Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Σχεδόν όλοι χρησιμοποιούμε τις υπηρεσίες ηλεκτρονικών καταστημάτων, πράγμα που σημαίνει ότι αργά ή γρήγορα διατρέχουμε τον κίνδυνο να γίνουμε θύμα sniffers JavaScript - ειδικός κώδικας που εφαρμόζουν οι εισβολείς σε έναν ιστότοπο για να κλέψουν δεδομένα τραπεζικών καρτών, διευθύνσεις, στοιχεία σύνδεσης και κωδικούς πρόσβασης χρηστών .

Σχεδόν 400 χρήστες της ιστοσελίδας και της εφαρμογής για κινητά της British Airways έχουν ήδη επηρεαστεί από sniffer, καθώς και επισκέπτες της βρετανικής ιστοσελίδας του αθλητικού κολοσσού FILA και της αμερικανικής εταιρείας διανομής εισιτηρίων Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - αυτά και πολλά άλλα συστήματα πληρωμών μολύνθηκαν.

Ο αναλυτής του Threat Intelligence Group-IB Viktor Okorokov μιλά για τον τρόπο με τον οποίο οι sniffer διεισδύουν στον κώδικα ιστότοπου και κλέβουν πληροφορίες πληρωμής, καθώς και σε ποια CRM επιτίθενται.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

«Κρυφή απειλή»

Έτυχε ότι για μεγάλο χρονικό διάστημα οι sniffers της JS παρέμειναν μακριά από την οπτική γωνία των αναλυτών κατά των ιών και οι τράπεζες και τα συστήματα πληρωμών δεν τους έβλεπαν ως σοβαρή απειλή. Και εντελώς μάταια. Εμπειρογνώμονες του Group-IB αναλύονται 2440 μολυσμένα ηλεκτρονικά καταστήματα, των οποίων οι επισκέπτες - συνολικά περίπου 1,5 εκατομμύριο άνθρωποι την ημέρα - κινδύνευαν να συμβιβαστούν. Ανάμεσα στα θύματα δεν είναι μόνο χρήστες, αλλά και ηλεκτρονικά καταστήματα, συστήματα πληρωμών και τράπεζες που εξέδωσαν παραβιασμένες κάρτες.

Αναφορά Το Group-IB έγινε η πρώτη μελέτη της αγοράς του σκοτεινού δικτύου για sniffers, της υποδομής τους και των μεθόδων δημιουργίας εσόδων, η οποία αποφέρει στους δημιουργούς τους εκατομμύρια δολάρια. Εντοπίσαμε 38 οικογένειες sniffers, από τις οποίες μόνο οι 12 ήταν γνωστές στο παρελθόν στους ερευνητές.

Ας σταθούμε αναλυτικά στις τέσσερις οικογένειες sniffers που μελετήθηκαν κατά τη διάρκεια της μελέτης.

ReactGet Family

Τα Sniffers της οικογένειας ReactGet χρησιμοποιούνται για την κλοπή δεδομένων τραπεζικών καρτών σε ιστότοπους ηλεκτρονικών αγορών. Ο ανιχνευτής μπορεί να λειτουργήσει με έναν μεγάλο αριθμό διαφορετικών συστημάτων πληρωμών που χρησιμοποιούνται στον ιστότοπο: μία τιμή παραμέτρου αντιστοιχεί σε ένα σύστημα πληρωμών και μεμονωμένες ανιχνευμένες εκδόσεις του sniffer μπορούν να χρησιμοποιηθούν για την κλοπή διαπιστευτηρίων, καθώς και για την κλοπή δεδομένων τραπεζικής κάρτας από την πληρωμή μορφές πολλών συστημάτων πληρωμών ταυτόχρονα, όπως το λεγόμενο καθολικό sniffer. Διαπιστώθηκε ότι σε ορισμένες περιπτώσεις, οι εισβολείς πραγματοποιούν επιθέσεις phishing σε διαχειριστές διαδικτυακών καταστημάτων προκειμένου να αποκτήσουν πρόσβαση στον πίνακα διαχείρισης του ιστότοπου.

Μια καμπάνια που χρησιμοποιεί αυτήν την οικογένεια sniffers ξεκίνησε τον Μάιο του 2017· ιστότοποι που εκτελούν πλατφόρμες CMS και Magento, Bigcommerce και Shopify δέχθηκαν επίθεση.

Πώς εφαρμόζεται το ReactGet στον κώδικα ενός ηλεκτρονικού καταστήματος

Εκτός από την «κλασική» υλοποίηση ενός σεναρίου μέσω συνδέσμου, οι χειριστές της οικογένειας sniffers ReactGet χρησιμοποιούν μια ειδική τεχνική: χρησιμοποιώντας κώδικα JavaScript, ελέγχουν εάν η τρέχουσα διεύθυνση όπου βρίσκεται ο χρήστης πληροί ορισμένα κριτήρια. Ο κακόβουλος κώδικας θα εκτελεστεί μόνο εάν η δευτερεύουσα συμβολοσειρά υπάρχει στην τρέχουσα διεύθυνση URL checkout ή ταμείο ενός βήματος, μια σελίδα/, out/onepag, ταμείο/ένα, σκαουτ/ένας. Έτσι, ο κωδικός sniffer θα εκτελεστεί ακριβώς τη στιγμή που ο χρήστης θα προχωρήσει στην πληρωμή για αγορές και θα εισαγάγει τα στοιχεία πληρωμής στη φόρμα του ιστότοπου.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Αυτό το sniffer χρησιμοποιεί μια μη τυπική τεχνική. Η πληρωμή και τα προσωπικά δεδομένα του θύματος συλλέγονται μαζί και κωδικοποιούνται χρησιμοποιώντας base64, και στη συνέχεια η συμβολοσειρά που προκύπτει χρησιμοποιείται ως παράμετρος για την αποστολή αιτήματος στον ιστότοπο των εισβολέων. Τις περισσότερες φορές, η διαδρομή προς την πύλη μιμείται ένα αρχείο JavaScript, για παράδειγμα resp.js, data.js και ούτω καθεξής, αλλά χρησιμοποιούνται επίσης σύνδεσμοι προς αρχεία εικόνας, GIF и JPG. Η ιδιαιτερότητα είναι ότι ο sniffer δημιουργεί ένα αντικείμενο εικόνας διαστάσεων 1 επί 1 pixel και χρησιμοποιεί τον σύνδεσμο που έλαβε προηγουμένως ως παράμετρο src εικόνες. Δηλαδή, για τον χρήστη ένα τέτοιο αίτημα στην κυκλοφορία θα μοιάζει με αίτημα για μια συνηθισμένη εικόνα. Μια παρόμοια τεχνική χρησιμοποιήθηκε στην οικογένεια sniffers ImageID. Επιπλέον, η τεχνική της χρήσης εικόνας 1 επί 1 pixel χρησιμοποιείται σε πολλά νόμιμα σενάρια διαδικτυακών αναλυτικών στοιχείων, τα οποία μπορούν επίσης να παραπλανήσουν τον χρήστη.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Ανάλυση έκδοσης

Η ανάλυση των ενεργών τομέων που χρησιμοποιούνται από τους χειριστές sniffer του ReactGet αποκάλυψε πολλές διαφορετικές εκδόσεις αυτής της οικογένειας sniffer. Οι εκδόσεις διαφέρουν ως προς την παρουσία ή την απουσία συσκότισης και επιπλέον, κάθε sniffer έχει σχεδιαστεί για ένα συγκεκριμένο σύστημα πληρωμών που επεξεργάζεται πληρωμές με τραπεζική κάρτα για ηλεκτρονικά καταστήματα. Έχοντας ταξινομήσει την τιμή της παραμέτρου που αντιστοιχεί στον αριθμό έκδοσης, οι ειδικοί του Group-IB έλαβαν μια πλήρη λίστα με τις διαθέσιμες παραλλαγές sniffer και με τα ονόματα των πεδίων φόρμας που αναζητά κάθε sniffer στον κώδικα της σελίδας, προσδιόρισαν τα συστήματα πληρωμών που στοχεύει ο sniffer.

Κατάλογος sniffer και τα αντίστοιχα συστήματα πληρωμών τους

Διεύθυνση URL Sniffer Σύστημα πληρωμής
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 Αδέν
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 Μονέρης
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 Ταινία
apitstatus.com/api.js?v=3.0.2 Ρεάλξ
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 Μονέρης
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 Μονέρης
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 Αδέν
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93 Πηγή Cyber
cloudodesc.com/gtm.js?v=2.95 ANZ eGate
cloudodesc.com/gtm.js?v=2.97 Ρεάλξ
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 Ρεάλξ
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 Πηγή Cyber
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 Ρεάλξ
livegetpay.com/pay.js?v=2.2.0 Πηγή Cyber
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 First Data Global Gateway
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 Μονέρης
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 Ταινία
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 Ταινία
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 Ταινία
nr-public.com/api.js?v=2.4 First Data Global Gateway
nr-public.com/api.js?v=2.5 PsiGate
nr-public.com/api.js?v=2.6 Authorize.Net
nr-public.com/api.js?v=2.7 Authorize.Net
nr-public.com/api.js?v=2.8 Μονέρης
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 Μονέρης
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 Μονέρης
nr-public.com/api.js?v=4.0.2 PayPal
nr-public.com/api.js?v=4.0.3 Αδέν
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 Χρέωση EBiz
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 Μονέρης
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 Πηγή Cyber
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 Ταινία
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 Πυρόλιθος
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 Ταινία
reactjsapi.com/api.js?v=4.1.9 Λίπος ζέβρα
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 First Data Global Gateway
reactjsapi.com/api.js?v=4.2.3 Authorize.Net
reactjsapi.com/api.js?v=4.2.4 eWAY Rapid
reactjsapi.com/api.js?v=4.2.5 Αδέν
reactjsapi.com/api.js?v=4.2.7 PayPal
reactjsapi.com/api.js?v=4.2.8 Υπηρεσίες εμπόρων QuickBooks
reactjsapi.com/api.js?v=4.2.9 Verisign
reactjsapi.com/api.js?v=4.2.91 Sage Pay
reactjsapi.com/api.js?v=4.2.92 Verisign
reactjsapi.com/api.js?v=4.2.94 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 Πηγή Cyber
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 Ρεάλξ
tagstracking.com/tag.js?v=2.2.0 Πηγή Cyber
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 First Data Global Gateway
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 Μονέρης
tagstracking.com/tag.js?v=2.3.6 Authorize.Net
tagstracking.com/tag.js?v=2.3.8 PayPal

Ανιχνευτής κωδικού πρόσβασης

Ένα από τα πλεονεκτήματα των sniffers JavaScript που λειτουργούν στην πλευρά του πελάτη ενός ιστότοπου είναι η ευελιξία τους: κακόβουλος κώδικας που είναι ενσωματωμένος σε έναν ιστότοπο μπορεί να κλέψει κάθε τύπο δεδομένων, είτε πρόκειται για δεδομένα πληρωμής είτε για τη σύνδεση και τον κωδικό πρόσβασης ενός λογαριασμού χρήστη. Οι ειδικοί του Group-IB ανακάλυψαν ένα δείγμα ενός sniffer που ανήκει στην οικογένεια ReactGet, σχεδιασμένο να κλέβει διευθύνσεις email και κωδικούς πρόσβασης χρηστών του ιστότοπου.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Διασταύρωση με ImageID sniffer

Κατά την ανάλυση ενός από τα μολυσμένα καταστήματα, διαπιστώθηκε ότι ο ιστότοπός του μολύνθηκε δύο φορές: εκτός από τον κακόβουλο κώδικα του sniffer της οικογένειας ReactGet, εντοπίστηκε και ο κωδικός του sniffer της οικογένειας ImageID. Αυτή η επικάλυψη θα μπορούσε να είναι απόδειξη ότι οι χειριστές πίσω από τα δύο sniffer χρησιμοποιούν παρόμοιες τεχνικές για να εισάγουν κακόβουλο κώδικα.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Universal sniffer

Μια ανάλυση ενός από τα ονόματα τομέα που σχετίζονται με την υποδομή sniffer ReactGet αποκάλυψε ότι ο ίδιος χρήστης είχε καταχωρήσει τρία άλλα ονόματα τομέα. Αυτοί οι τρεις τομείς μιμήθηκαν τους τομείς πραγματικών ιστότοπων και χρησιμοποιήθηκαν προηγουμένως για τη φιλοξενία sniffers. Κατά την ανάλυση του κώδικα τριών νόμιμων τοποθεσιών, εντοπίστηκε ένα άγνωστο sniffer και περαιτέρω ανάλυση έδειξε ότι ήταν μια βελτιωμένη έκδοση του sniffer ReactGet. Όλες οι προηγουμένως παρακολουθούμενες εκδόσεις αυτής της οικογένειας sniffer στόχευαν σε ένα ενιαίο σύστημα πληρωμών, δηλαδή, κάθε σύστημα πληρωμών απαιτούσε μια ειδική έκδοση του sniffer. Ωστόσο, σε αυτήν την περίπτωση, ανακαλύφθηκε μια καθολική έκδοση του sniffer που είναι ικανή να κλέβει πληροφορίες από φόρμες που σχετίζονται με 15 διαφορετικά συστήματα πληρωμών και ενότητες ιστοτόπων ηλεκτρονικού εμπορίου για την πραγματοποίηση πληρωμών στο διαδίκτυο.

Έτσι, στην αρχή της εργασίας, ο ανιχνευτής αναζήτησε βασικά πεδία φόρμας που περιέχουν τα προσωπικά στοιχεία του θύματος: πλήρες όνομα, φυσική διεύθυνση, αριθμό τηλεφώνου.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Στη συνέχεια, ο ανιχνευτής αναζήτησε πάνω από 15 διαφορετικά προθέματα που αντιστοιχούν σε διαφορετικά συστήματα πληρωμών και ηλεκτρονικές μονάδες πληρωμής.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Στη συνέχεια, τα προσωπικά δεδομένα του θύματος και οι πληροφορίες πληρωμής συλλέχθηκαν μαζί και στάλθηκαν σε έναν ιστότοπο που ελέγχεται από τον εισβολέα: στη συγκεκριμένη περίπτωση, ανακαλύφθηκαν δύο εκδόσεις του καθολικού ανιχνευτή ReactGet, που βρίσκονται σε δύο διαφορετικούς ιστοτόπους που έχουν παραβιαστεί. Ωστόσο, και οι δύο εκδόσεις έστειλαν κλεμμένα δεδομένα στον ίδιο παραβιασμένο ιστότοπο zoobashop.com.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Η ανάλυση των προθεμάτων που χρησιμοποιούσε ο ανιχνευτής για την αναζήτηση πεδίων που περιέχουν τις πληροφορίες πληρωμής του θύματος μας επέτρεψε να προσδιορίσουμε ότι αυτό το δείγμα sniffer απευθυνόταν στα ακόλουθα συστήματα πληρωμών:

  • Authorize.Net
  • Verisign
  • Πρώτα δεδομένα
  • USAePay
  • Ταινία
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Πληρωμές Realex
  • PsiGate
  • Συστήματα πληρωμών Heartland

Ποια εργαλεία χρησιμοποιούνται για την κλοπή πληροφοριών πληρωμής;

Το πρώτο εργαλείο, που ανακαλύφθηκε κατά την ανάλυση της υποδομής των επιτιθέμενων, χρησιμοποιείται για τη συσκότιση κακόβουλων σεναρίων που ευθύνονται για την κλοπή τραπεζικών καρτών. Ένα σενάριο bash που χρησιμοποιεί το CLI του έργου ανακαλύφθηκε σε έναν από τους οικοδεσπότες του εισβολέα javascript-obfuscator για την αυτοματοποίηση της συσκότισης του κώδικα sniffer.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Το δεύτερο εργαλείο που ανακαλύφθηκε έχει σχεδιαστεί για τη δημιουργία κώδικα που είναι υπεύθυνος για τη φόρτωση του κύριου sniffer. Αυτό το εργαλείο δημιουργεί κώδικα JavaScript που ελέγχει εάν ο χρήστης βρίσκεται στη σελίδα πληρωμής αναζητώντας συμβολοσειρές στην τρέχουσα διεύθυνση του χρήστη checkout, καλάθι και ούτω καθεξής, και αν το αποτέλεσμα είναι θετικό, τότε ο κώδικας φορτώνει τον κύριο ανιχνευτή από τον διακομιστή των εισβολέων. Για την απόκρυψη κακόβουλης δραστηριότητας, όλες οι γραμμές, συμπεριλαμβανομένων των δοκιμαστικών γραμμών για τον προσδιορισμό της σελίδας πληρωμής, καθώς και ένας σύνδεσμος προς τον ανιχνευτή, κωδικοποιούνται χρησιμοποιώντας base64.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Επιθέσεις phishing

Μια ανάλυση της υποδομής δικτύου των επιτιθέμενων αποκάλυψε ότι η εγκληματική ομάδα συχνά χρησιμοποιεί ηλεκτρονικό ψάρεμα για να αποκτήσει πρόσβαση στον πίνακα διαχείρισης του στοχευόμενου διαδικτυακού καταστήματος. Οι εισβολείς καταχωρούν έναν τομέα που είναι οπτικά παρόμοιος με τον τομέα ενός καταστήματος και, στη συνέχεια, αναπτύσσουν μια ψεύτικη φόρμα σύνδεσης πίνακα διαχείρισης Magento σε αυτόν. Εάν επιτύχουν, οι εισβολείς θα αποκτήσουν πρόσβαση στον πίνακα διαχείρισης του Magento CMS, το οποίο τους δίνει την ευκαιρία να επεξεργαστούν στοιχεία ιστότοπου και να εφαρμόσουν ένα sniffer για την κλοπή δεδομένων πιστωτικής κάρτας.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Υποδομή

Όνομα τομέα Ημερομηνία ανακάλυψης/εμφάνισης
mediapack.info 04.05.2017
adsgetapi.com 15.06.2017
simcounter.com 14.08.2017
mageanalytics.com 22.12.2017
maxstatics.com 16.01.2018
reactjsapi.com 19.01.2018
mxcounter.com 02.02.2018
apitstatus.com 01.03.2018
orderracker.com 20.04.2018
tagstracking.com 25.06.2018
adsapigate.com 12.07.2018
trust-tracker.com 15.07.2018
fbstatspartner.com 02.10.2018
billgetstatus.com 12.10.2018
www.aldenmlilhouse.com 20.10.2018
balletbeautlful.com 20.10.2018
bargalnjunkie.com 20.10.2018
payselector.com 21.10.2018
tagsmediaget.com 02.11.2018
hs-payments.com 16.11.2018
ordercheckpays.com 19.11.2018
geisseie.com 24.11.2018
gtmproc.com 29.11.2018
livegetpay.com 18.12.2018
sydneysalonsupplies.com 18.12.2018
newrelicnet.com 19.12.2018
nr-public.com 03.01.2019
cloudodesc.com 04.01.2019
ajaxstatic.com 11.01.2019
livecheckpay.com 21.01.2019
asianfoodgracer.com 25.01.2019

Οικογένεια G-Analytics

Αυτή η οικογένεια sniffers χρησιμοποιείται για την κλοπή καρτών πελατών από ηλεκτρονικά καταστήματα. Το πρώτο όνομα τομέα που χρησιμοποιήθηκε από την ομάδα καταχωρήθηκε τον Απρίλιο του 2016, γεγονός που μπορεί να υποδηλώνει ότι η ομάδα ξεκίνησε τη δραστηριότητα στα μέσα του 2016.

Στην τρέχουσα καμπάνια, η ομάδα χρησιμοποιεί ονόματα τομέων που μιμούνται υπηρεσίες πραγματικής ζωής, όπως το Google Analytics και το jQuery, καλύπτοντας τη δραστηριότητα των sniffer με νόμιμα σενάρια και ονόματα τομέα παρόμοια με τα νόμιμα. Οι ιστότοποι που εκτελούν το Magento CMS δέχθηκαν επίθεση.

Πώς ενσωματώνεται το G-Analytics στον κώδικα ενός ηλεκτρονικού καταστήματος

Ένα χαρακτηριστικό γνώρισμα αυτής της οικογένειας είναι η χρήση διαφόρων μεθόδων για την κλοπή πληροφοριών πληρωμής χρηστών. Εκτός από την κλασική ένεση κώδικα JavaScript στην πλευρά του πελάτη του ιστότοπου, η εγκληματική ομάδα χρησιμοποίησε επίσης τεχνικές έγχυσης κώδικα στην πλευρά του διακομιστή του ιστότοπου, συγκεκριμένα σενάρια PHP που επεξεργάζονται δεδομένα που έχουν εισαχθεί από τον χρήστη. Αυτή η τεχνική είναι επικίνδυνη γιατί δυσκολεύει τους ερευνητές τρίτων να εντοπίσουν κακόβουλο κώδικα. Οι ειδικοί του Group-IB ανακάλυψαν μια έκδοση ενός sniffer ενσωματωμένη στον κώδικα PHP του ιστότοπου, χρησιμοποιώντας έναν τομέα ως πύλη dittm.org.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Ανακαλύφθηκε επίσης μια πρώιμη έκδοση ενός sniffer που χρησιμοποιεί τον ίδιο τομέα για τη συλλογή κλεμμένων δεδομένων dittm.org, αλλά αυτή η έκδοση προορίζεται για εγκατάσταση στην πλευρά του πελάτη ενός ηλεκτρονικού καταστήματος.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Η ομάδα αργότερα άλλαξε την τακτική της και άρχισε να επικεντρώνεται περισσότερο στην απόκρυψη κακόβουλης δραστηριότητας και καμουφλάζ.

Στις αρχές του 2017, η ομάδα άρχισε να χρησιμοποιεί τον τομέα jquery-js.com, που μεταμφιέζεται ως CDN για το jQuery: όταν πηγαίνει στον ιστότοπο των εισβολέων, ο χρήστης ανακατευθύνεται σε έναν νόμιμο ιστότοπο jquery.com.

Και στα μέσα του 2018, ο όμιλος υιοθέτησε το όνομα τομέα g-analytics.com και άρχισε να συγκαλύπτει τις δραστηριότητες του sniffer ως νόμιμη υπηρεσία Google Analytics.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Ανάλυση έκδοσης

Κατά την ανάλυση των τομέων που χρησιμοποιούνται για την αποθήκευση του κώδικα sniffer, διαπιστώθηκε ότι ο ιστότοπος περιέχει μεγάλο αριθμό εκδόσεων, οι οποίες διαφέρουν ως προς την παρουσία συσκότισης, καθώς και την παρουσία ή απουσία μη προσβάσιμου κώδικα που προστέθηκε στο αρχείο για να αποσπάσει την προσοχή και απόκρυψη κακόβουλου κώδικα.

Σύνολο στον ιστότοπο jquery-js.com Εντοπίστηκαν έξι εκδοχές sniffers. Αυτοί οι sniffer στέλνουν τα κλεμμένα δεδομένα σε μια διεύθυνση που βρίσκεται στον ίδιο ιστότοπο με τον ίδιο τον 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

Μεταγενέστερος τομέας g-analytics.com, που χρησιμοποιείται από την ομάδα σε επιθέσεις από τα μέσα του 2018, λειτουργεί ως αποθήκη για περισσότερους sniffers. Συνολικά, ανακαλύφθηκαν 16 διαφορετικές εκδοχές του sniffer. Σε αυτήν την περίπτωση, η πύλη για την αποστολή κλεμμένων δεδομένων μεταμφιέστηκε ως σύνδεσμος προς μια μορφή εικόνας 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

Δημιουργία εσόδων από κλεμμένα δεδομένα

Η εγκληματική ομάδα κερδίζει χρήματα από τα κλεμμένα δεδομένα πουλώντας κάρτες μέσω ενός ειδικά δημιουργημένου υπόγειου καταστήματος που παρέχει υπηρεσίες σε carders. Η ανάλυση των τομέων που χρησιμοποιήθηκαν από τους εισβολείς μας επέτρεψε να το προσδιορίσουμε αυτό google-analytics.cm καταχωρήθηκε από τον ίδιο χρήστη με τον τομέα cardz.vc. Τομέα cardz.vc αναφέρεται σε ένα κατάστημα που πωλούσε κλεμμένες τραπεζικές κάρτες Cardsurfs (Flysurfs), το οποίο κέρδισε δημοτικότητα στις μέρες της δραστηριότητας της υπόγειας πλατφόρμας συναλλαγών AlphaBay ως κατάστημα που πωλούσε τραπεζικές κάρτες που είχαν κλαπεί με χρήση sniffer.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Ανάλυση του τομέα αναλυτικό.είναι, που βρίσκεται στον ίδιο διακομιστή με τους τομείς που χρησιμοποιούνται από τους sniffers για τη συλλογή κλεμμένων δεδομένων, οι ειδικοί του Group-IB ανακάλυψαν ένα αρχείο που περιείχε αρχεία καταγραφής κλοπής cookie, το οποίο φαίνεται να εγκαταλείφθηκε αργότερα από τον προγραμματιστή. Μία από τις εγγραφές στο αρχείο καταγραφής περιείχε έναν τομέα iozoz.com, το οποίο είχε χρησιμοποιηθεί προηγουμένως σε ένα από τα sniffer που δραστηριοποιήθηκαν το 2016. Προφανώς, αυτός ο τομέας χρησιμοποιήθηκε προηγουμένως από έναν εισβολέα για τη συλλογή καρτών που είχαν κλαπεί χρησιμοποιώντας ένα sniffer. Αυτός ο τομέας καταχωρήθηκε σε μια διεύθυνση ηλεκτρονικού ταχυδρομείου [προστασία μέσω email], το οποίο χρησιμοποιήθηκε επίσης για την καταχώρηση τομέων cardz.su и cardz.vc, που σχετίζεται με το κατάστημα λαναρίσματος Cardsurfs.

Με βάση τα δεδομένα που ελήφθησαν, μπορεί να υποτεθεί ότι η οικογένεια sniffers G-Analytics και το υπόγειο κατάστημα που πουλά τραπεζικές κάρτες Cardsurfs διαχειρίζονται τα ίδια άτομα και το κατάστημα χρησιμοποιείται για την πώληση τραπεζικών καρτών που έχουν κλαπεί χρησιμοποιώντας το sniffer.

Υποδομή

Όνομα τομέα Ημερομηνία ανακάλυψης/εμφάνισης
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
αναλυτικό.να 04.12.2018
google-analytics.to 06.12.2018
google-analytics.cm 28.12.2018
αναλυτικό.είναι 28.12.2018
googlc-analytics.cm 17.01.2019

Οικογένεια Illum

Το Illum είναι μια οικογένεια sniffers που χρησιμοποιούνται για να επιτεθούν σε ηλεκτρονικά καταστήματα που διαθέτουν το Magento CMS. Εκτός από την εισαγωγή κακόβουλου κώδικα, οι χειριστές αυτού του sniffer χρησιμοποιούν επίσης την εισαγωγή πλήρους πλαστών φορμών πληρωμής που στέλνουν δεδομένα σε πύλες που ελέγχονται από εισβολείς.

Κατά την ανάλυση της δικτυακής υποδομής που χρησιμοποιούν οι χειριστές αυτού του sniffer, σημειώθηκε ένας μεγάλος αριθμός κακόβουλων σεναρίων, εκμεταλλεύσεων, πλαστών μορφών πληρωμής, καθώς και μια συλλογή παραδειγμάτων με κακόβουλους sniffer από ανταγωνιστές. Με βάση πληροφορίες σχετικά με τις ημερομηνίες εμφάνισης των ονομάτων τομέα που χρησιμοποιεί η ομάδα, μπορεί να υποτεθεί ότι η καμπάνια ξεκίνησε στα τέλη του 2016.

Πώς ενσωματώνεται το Illum στον κώδικα ενός ηλεκτρονικού καταστήματος

Οι πρώτες εκδόσεις του sniffer που ανακαλύφθηκαν ενσωματώθηκαν απευθείας στον κώδικα του παραβιασμένου ιστότοπου. Τα κλεμμένα δεδομένα στάλθηκαν στο cdn.illum[.]pw/records.php, η πύλη κωδικοποιήθηκε χρησιμοποιώντας base64.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Αργότερα, ανακαλύφθηκε μια συσκευασμένη έκδοση του sniffer που χρησιμοποιεί μια διαφορετική πύλη - records.nstatistics[.]com/records.php.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Σύμφωνα με κανω ΑΝΑΦΟΡΑ Willem de Groot, ο ίδιος οικοδεσπότης χρησιμοποιήθηκε στο sniffer, το οποίο εφαρμόστηκε στις ιστοσελίδα καταστήματος, που ανήκει στο γερμανικό πολιτικό κόμμα CSU.

Ανάλυση της ιστοσελίδας των επιτιθέμενων

Οι ειδικοί του Group-IB ανακάλυψαν και ανέλυσαν έναν ιστότοπο που χρησιμοποιούσε αυτή η εγκληματική ομάδα για την αποθήκευση εργαλείων και τη συλλογή κλεμμένων πληροφοριών.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Μεταξύ των εργαλείων που βρέθηκαν στον διακομιστή των εισβολέων ήταν σενάρια και εκμεταλλεύσεις για την κλιμάκωση των δικαιωμάτων στο λειτουργικό σύστημα Linux: για παράδειγμα, το σενάριο ελέγχου κλιμάκωσης δικαιωμάτων Linux που αναπτύχθηκε από τον Mike Czumak, καθώς και ένα exploit για το CVE-2009-1185.

Οι εισβολείς χρησιμοποίησαν δύο εκμεταλλεύσεις απευθείας για να επιτεθούν σε ηλεκτρονικά καταστήματα: πρώτα μπορεί να εισάγει κακόβουλο κώδικα σε core_config_data με την εκμετάλλευση του CVE-2016-4010, δεύτερος εκμεταλλεύεται μια ευπάθεια RCE σε προσθήκες για το CMS Magento, επιτρέποντας την εκτέλεση αυθαίρετου κώδικα σε έναν ευάλωτο διακομιστή ιστού.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Επίσης, κατά την ανάλυση του διακομιστή, ανακαλύφθηκαν διάφορα δείγματα sniffers και πλαστά έντυπα πληρωμής, τα οποία χρησιμοποιούσαν οι εισβολείς για τη συλλογή πληροφοριών πληρωμής από παραβιασμένους ιστότοπους. Όπως μπορείτε να δείτε από την παρακάτω λίστα, ορισμένα σενάρια δημιουργήθηκαν ξεχωριστά για κάθε παραβιασμένο ιστότοπο, ενώ χρησιμοποιήθηκε μια καθολική λύση για ορισμένα CMS και πύλες πληρωμής. Για παράδειγμα, σενάρια segapay_standart.js и segapay_onpage.js έχει σχεδιαστεί για εφαρμογή σε ιστότοπους που χρησιμοποιούν την πύλη πληρωμής Sage Pay.

Λίστα σεναρίων για διάφορες πύλες πληρωμής

Γραφή Πύλη πληρωμής
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=

Πλήθος πληρωμή τώρα[.]tk, χρησιμοποιείται ως πύλη σε σενάριο payment_forminsite.js, ανακαλύφθηκε ως subjectAltName σε πολλά πιστοποιητικά που σχετίζονται με την υπηρεσία CloudFlare. Επιπλέον, ο οικοδεσπότης περιείχε ένα σενάριο κακό.js. Κρίνοντας από το όνομα του σεναρίου, θα μπορούσε να χρησιμοποιηθεί ως μέρος της εκμετάλλευσης του CVE-2016-4010, χάρη στο οποίο είναι δυνατή η εισαγωγή κακόβουλου κώδικα στο υποσέλιδο ενός ιστότοπου που εκτελεί το Magento CMS. Ο οικοδεσπότης χρησιμοποίησε αυτό το σενάριο ως πύλη request.requestnet[.]tkχρησιμοποιώντας το ίδιο πιστοποιητικό με τον κεντρικό υπολογιστή πληρωμή τώρα[.]tk.

Ψεύτικες φόρμες πληρωμής

Το παρακάτω σχήμα δείχνει ένα παράδειγμα φόρμας για την εισαγωγή δεδομένων κάρτας. Αυτή η φόρμα χρησιμοποιήθηκε για να διεισδύσει σε ένα ηλεκτρονικό κατάστημα και να κλέψει δεδομένα κάρτας.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Το παρακάτω σχήμα δείχνει ένα παράδειγμα ψεύτικης φόρμας πληρωμής PayPal που χρησιμοποιήθηκε από εισβολείς για να διεισδύσουν σε ιστότοπους με αυτήν τη μέθοδο πληρωμής.
Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Υποδομή

Όνομα τομέα Ημερομηνία ανακάλυψης/εμφάνισης
cdn.illum.pw 27/11/2016
records.nstatistics.com 06/09/2018
request.payrightnow.βλ 25/05/2018
paynow.tk 16/07/2017
pay-line.tk 01/03/2018
paypal.βλ 04/09/2017
requestnet.tk 28/06/2017

Οικογένεια CoffeeMokko

Η οικογένεια sniffers CoffeMokko, σχεδιασμένη για να κλέβει τραπεζικές κάρτες από χρήστες διαδικτυακών καταστημάτων, χρησιμοποιείται τουλάχιστον από τον Μάιο του 2017. Προφανώς, οι χειριστές αυτής της οικογένειας sniffers είναι η εγκληματική ομάδα Group 1, που περιγράφεται από τους ειδικούς του RiskIQ το 2016. Ιστότοποι που εκτελούν CMS όπως Magento, OpenCart, WordPress, osCommerce και Shopify δέχθηκαν επίθεση.

Πώς ενσωματώνεται το CoffeMokko στον κώδικα ενός ηλεκτρονικού καταστήματος

Οι χειριστές αυτής της οικογένειας δημιουργούν μοναδικά sniffer για κάθε μόλυνση: το αρχείο sniffer βρίσκεται στον κατάλογο src ή js στον διακομιστή των εισβολέων. Η ενσωμάτωση στον κώδικα του ιστότοπου πραγματοποιείται μέσω απευθείας σύνδεσης με τον ανιχνευτή.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Ο κωδικός sniffer κωδικοποιεί τα ονόματα των πεδίων φόρμας από τα οποία πρέπει να κλαπούν δεδομένα. Ο ανιχνευτής ελέγχει επίσης εάν ο χρήστης βρίσκεται στη σελίδα πληρωμής ελέγχοντας τη λίστα των λέξεων-κλειδιών με την τρέχουσα διεύθυνση του χρήστη.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Ορισμένες εκδόσεις του sniffer που ανακαλύφθηκαν ήταν ασαφείς και περιείχαν μια κρυπτογραφημένη συμβολοσειρά στην οποία ήταν αποθηκευμένη η κύρια συστοιχία πόρων: περιείχε τα ονόματα των πεδίων φόρμας για διάφορα συστήματα πληρωμών, καθώς και τη διεύθυνση πύλης στην οποία έπρεπε να αποσταλούν τα κλεμμένα δεδομένα.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Τα κλεμμένα στοιχεία πληρωμής στάλθηκαν σε ένα σενάριο στον διακομιστή των εισβολέων στην πορεία /savePayment/index.php ή /tr/index.php. Προφανώς, αυτό το σενάριο χρησιμοποιείται για την αποστολή δεδομένων από την πύλη στον κύριο διακομιστή, ο οποίος ενοποιεί δεδομένα από όλους τους sniffers. Για την απόκρυψη των μεταδιδόμενων δεδομένων, όλες οι πληροφορίες πληρωμής του θύματος κρυπτογραφούνται χρησιμοποιώντας base64, και στη συνέχεια συμβαίνουν αρκετές αντικαταστάσεις χαρακτήρων:

  • ο χαρακτήρας "e" αντικαθίσταται από ":"
  • το σύμβολο "w" αντικαθίσταται από "+"
  • ο χαρακτήρας "o" αντικαθίσταται από "%"
  • ο χαρακτήρας "d" αντικαθίσταται με "#"
  • ο χαρακτήρας "a" αντικαθίσταται από "-"
  • το σύμβολο "7" αντικαθίσταται από "^"
  • ο χαρακτήρας "h" αντικαθίσταται από "_"
  • το σύμβολο "Τ" αντικαθίσταται από "@"
  • ο χαρακτήρας "0" αντικαθίσταται από "/"
  • ο χαρακτήρας "Y" αντικαθίσταται από "*"

Ως αποτέλεσμα αντικαταστάσεων χαρακτήρων που κωδικοποιούνται χρησιμοποιώντας base64 Τα δεδομένα δεν μπορούν να αποκωδικοποιηθούν χωρίς να πραγματοποιηθεί η αντίστροφη μετατροπή.

Έτσι μοιάζει ένα τμήμα του κώδικα sniffer που δεν έχει συγκαλυφθεί:

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Ανάλυση Υποδομής

Σε πρώιμες καμπάνιες, οι εισβολείς κατέγραψαν ονόματα τομέα παρόμοια με αυτά των νόμιμων ιστότοπων διαδικτυακών αγορών. Ο τομέας τους μπορεί να διαφέρει από το νόμιμο ένα προς ένα σύμβολο ή το άλλο TLD. Οι καταχωρημένοι τομείς χρησιμοποιήθηκαν για την αποθήκευση του κωδικού sniffer, ένας σύνδεσμος στον οποίο ήταν ενσωματωμένος στον κωδικό καταστήματος.

Αυτή η ομάδα χρησιμοποίησε επίσης ονόματα τομέα που θυμίζουν δημοφιλή πρόσθετα jQuery (slickjs[.]org για ιστότοπους που χρησιμοποιούν την προσθήκη slick.js), πύλες πληρωμής (sagecdn[.]org για ιστότοπους που χρησιμοποιούν το σύστημα πληρωμών Sage Pay).

Αργότερα, η ομάδα άρχισε να δημιουργεί domains των οποίων τα ονόματα δεν είχαν καμία σχέση με τον τομέα του καταστήματος ή με το θέμα του καταστήματος.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Κάθε τομέας αντιστοιχούσε σε έναν ιστότοπο στον οποίο δημιουργήθηκε ο κατάλογος /js ή / src. Τα σενάρια Sniffer αποθηκεύτηκαν σε αυτόν τον κατάλογο: ένα sniffer για κάθε νέα μόλυνση. Το sniffer ενσωματώθηκε στον κώδικα του ιστότοπου μέσω απευθείας συνδέσμου, αλλά σε σπάνιες περιπτώσεις, οι εισβολείς τροποποίησαν ένα από τα αρχεία του ιστότοπου και πρόσθεσαν κακόβουλο κώδικα σε αυτό.

Ανάλυση Κώδικα

Πρώτος αλγόριθμος συσκότισης

Σε ορισμένα ανακαλυφθέντα δείγματα sniffers αυτής της οικογένειας, ο κωδικός ήταν συγκεχυμένος και περιείχε κρυπτογραφημένα δεδομένα που ήταν απαραίτητα για να λειτουργήσει ο sniffer: συγκεκριμένα, τη διεύθυνση της πύλης sniffer, μια λίστα με πεδία φόρμας πληρωμής και σε ορισμένες περιπτώσεις, τον κωδικό ενός πλαστού έντυπο πληρωμής. Στον κώδικα μέσα στη συνάρτηση, οι πόροι κρυπτογραφήθηκαν χρησιμοποιώντας XOR από το κλειδί που μεταβιβάστηκε ως όρισμα στην ίδια συνάρτηση.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Αποκρυπτογραφώντας τη συμβολοσειρά με το κατάλληλο κλειδί, μοναδικό για κάθε δείγμα, μπορείτε να λάβετε μια συμβολοσειρά που περιέχει όλες τις συμβολοσειρές από τον κωδικό sniffer που χωρίζονται με έναν διαχωριστικό χαρακτήρα.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Δεύτερος αλγόριθμος συσκότισης

Σε μεταγενέστερα δείγματα sniffers αυτής της οικογένειας, χρησιμοποιήθηκε ένας διαφορετικός μηχανισμός συσκότισης: σε αυτήν την περίπτωση, τα δεδομένα κρυπτογραφήθηκαν χρησιμοποιώντας έναν αυτογραφικό αλγόριθμο. Μια συμβολοσειρά που περιέχει κρυπτογραφημένα δεδομένα απαραίτητα για τη λειτουργία του sniffer μεταβιβάστηκε ως όρισμα στη συνάρτηση αποκρυπτογράφησης.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Χρησιμοποιώντας την κονσόλα του προγράμματος περιήγησης, μπορείτε να αποκρυπτογραφήσετε τα κρυπτογραφημένα δεδομένα και να αποκτήσετε έναν πίνακα που περιέχει πόρους sniffer.

Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα

Σύνδεση με πρώιμες επιθέσεις MageCart

Κατά την ανάλυση ενός από τους τομείς που χρησιμοποιούσε η ομάδα ως πύλη για τη συλλογή κλεμμένων δεδομένων, διαπιστώθηκε ότι αυτός ο τομέας ανέπτυξε μια υποδομή για κλοπή πιστωτικών καρτών, πανομοιότυπη με αυτή που χρησιμοποιούσε η Ομάδα 1, μια από τις πρώτες ομάδες, ανακαλύφθηκε από ειδικούς του RiskIQ.

Δύο αρχεία βρέθηκαν στον οικοδεσπότη της οικογένειας sniffers CoffeMokko:

  • μάγος.js — αρχείο που περιέχει κωδικό sniffer της ομάδας 1 με διεύθυνση πύλης js-cdn.link
  • mag.php — Σενάριο PHP υπεύθυνο για τη συλλογή δεδομένων που έχουν κλαπεί από τον ανιχνευτή

Περιεχόμενα του αρχείου mage.js Τέσσερα JavaScript sniffer που σας περιμένουν σε ηλεκτρονικά καταστήματα
Καθορίστηκε επίσης ότι οι παλαιότεροι τομείς που χρησιμοποιήθηκαν από την ομάδα πίσω από την οικογένεια sniffers CoffeMokko καταχωρήθηκαν στις 17 Μαΐου 2017:

  • σύνδεσμος-js[.]σύνδεσμος
  • σύνδεσμος info-js[.]
  • track-js[.]σύνδεσμος
  • map-js[.]σύνδεσμος
  • σύνδεσμος smart-js[.]

Η μορφή αυτών των ονομάτων τομέα ταιριάζει με τα ονόματα τομέα της Ομάδας 1 που χρησιμοποιήθηκαν στις επιθέσεις του 2016.

Με βάση τα γεγονότα που ανακαλύφθηκαν, μπορεί να υποτεθεί ότι υπάρχει σύνδεση μεταξύ των χειριστών των sniffers CoffeMokko και της εγκληματικής ομάδας 1. Προφανώς, οι χειριστές CoffeMokko θα μπορούσαν να έχουν δανειστεί εργαλεία και λογισμικό από τους προκατόχους τους για να κλέψουν κάρτες. Ωστόσο, είναι πιο πιθανό ότι η εγκληματική ομάδα πίσω από τη χρήση της οικογένειας sniffers CoffeMokko είναι τα ίδια άτομα που πραγματοποίησαν τις επιθέσεις της Ομάδας 1. Μετά τη δημοσίευση της πρώτης αναφοράς για τις δραστηριότητες της εγκληματικής ομάδας, όλα τα ονόματα τομέα τους ήταν μπλοκαρίστηκαν και τα εργαλεία μελετήθηκαν λεπτομερώς και περιγράφηκαν. Η ομάδα αναγκάστηκε να κάνει ένα διάλειμμα, να βελτιώσει τα εσωτερικά της εργαλεία και να ξαναγράψει τον κώδικα sniffer για να συνεχίσει τις επιθέσεις της και να παραμείνει απαρατήρητη.

Υποδομή

Όνομα τομέα Ημερομηνία ανακάλυψης/εμφάνισης
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
ασφάλεια-πληρωμή.su 03.09.2017
braincdn.org 04.09.2017
sagecdn.org 04.09.2017
slickjs.org 04.09.2017
oakandfort.org 10.09.2017
citywlnery.org 15.09.2017
dobell.su 04.10.2017
Childrensplayclothing.org 31.10.2017
jewsondirect.com 05.11.2017
shop-rnib.org 15.11.2017
closetlondon.org 16.11.2017
misshaus.org 28.11.2017
battery-force.org 01.12.2017
kik-vape.org 01.12.2017
greatfurnituretradingco.org 02.12.2017
etradesupply.org 04.12.2017
replacemyremote.org 04.12.2017
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
πάρκα.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
autorizecdn.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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο