Υποκλοπή καρτών στο checkout: formjacking και Magecart
Το κατάστημα δουλεύει. Οι παραγγελίες έρχονται, η τράπεζα πληρώνει, τίποτα δεν φαίνεται λάθος. Και εδώ και εβδομάδες ή μήνες, κάποιος άλλος μαζεύει τα στοιχεία των καρτών των πελατών σας.
Τι είναι
Formjacking λέγεται η υποκλοπή όσων πληκτρολογεί ο πελάτης σε μια φόρμα πληρωμής. Magecart είναι το όνομα που δόθηκε στις ομάδες που το κάνουν σε ηλεκτρονικά καταστήματα από τα μέσα της δεκαετίας του 2010, πρώτα στο Magento και μετά σε κάθε πλατφόρμα.
Η επίθεση δεν χαλάει το κατάστημα, γιατί ένα χαλασμένο κατάστημα διορθώνεται. Αλλάζει ένα μικρό πράγμα στη διαδρομή της πληρωμής και αφήνει όλα τα άλλα όπως είναι.
Οι τέσσερις τρόποι που γίνεται
1. Αλλάζει η διεύθυνση πληρωμής
Το κατάστημά σας στέλνει τον πελάτη στη σελίδα πληρωμής της τράπεζας. Ο εισβολέας αλλάζει αυτή τη διεύθυνση σε δική του σελίδα που μοιάζει ίδια, συχνά σε domain που διαφέρει κατά ένα γράμμα από το γνήσιο. Ο πελάτης γράφει εκεί την κάρτα και μετά προωθείται στην πραγματική σελίδα της τράπεζας, όπου η πληρωμή ολοκληρώνεται κανονικά. Ο πελάτης νομίζει ότι την έγραψε δύο φορές. Εσείς βλέπετε μια πληρωμένη παραγγελία.
2. Προστίθεται κώδικας στη σελίδα checkout
Λίγες γραμμές προστίθενται σε ένα αρχείο ή template του checkout στο κατάστημά σας. Αντιγράφουν ό,τι πληκτρολογείται στα πεδία της κάρτας και το στέλνουν αλλού, ενώ η φόρμα συνεχίζει να δουλεύει όπως πάντα.
3. Αλλάζουν οι ρυθμίσεις πληρωμής
Στα αρχεία δεν αλλάζει τίποτα. Ο εισβολέας αλλάζει τη διεύθυνση της πύλης πληρωμών ή τα στοιχεία του εμπόρου που είναι αποθηκευμένα στη βάση του καταστήματος, από τη διαχείριση ή απευθείας.
4. Αλλάζει το script ενός τρίτου
Το checkout σας φορτώνει ένα script από άλλη εταιρεία, για παράδειγμα ένα εργαλείο chat ή στατιστικών. Η εταιρεία αυτή παραβιάζεται και το script αλλάζει στον δικό της server. Στο κατάστημά σας δεν έχει αλλάξει τίποτα.
Δύο περιπτώσεις που έγιναν γνωστές
- British Airways, 2018. Κώδικας που προστέθηκε στη σελίδα πληρωμών της εταιρείας μάζευε στοιχεία καρτών πελατών. Το 2020 η βρετανική αρχή προστασίας δεδομένων επέβαλε στην εταιρεία πρόστιμο 20 εκατομμυρίων λιρών.
- Ticketmaster UK, 2018. Ο κώδικας ήρθε μέσα από ένα εργαλείο chat τρίτου στη σελίδα πληρωμών. Το 2020 η ίδια αρχή επέβαλε πρόστιμο 1,25 εκατομμυρίου λιρών.
Οι μεγάλες εταιρείες γίνονται είδηση. Η ίδια μέθοδος χρησιμοποιείται κάθε μέρα σε μικρά καταστήματα, όπου δεν κοιτάζει κανείς.
Γιατί τα συνηθισμένα εργαλεία δεν το βλέπουν
- Το antivirus ψάχνει γνωστό κακόβουλο κώδικα. Μια αλλαγμένη διεύθυνση δεν είναι ιός.
- Το firewall μπλοκάρει ύποπτη κίνηση. Όταν ο εισβολέας έχει μπει με κλεμμένο κωδικό, η αλλαγή μοιάζει με κανονική δουλειά.
- Ο εξωτερικός έλεγχος, μαζί και ο τριμηνιαίος έλεγχος PCI, κοιτάζει τον server από έξω. Από έξω το κατάστημα φαίνεται εντάξει.
- Εσείς βλέπετε παραγγελίες που πληρώνονται.
Πώς το μαθαίνουν συνήθως τα καταστήματα
- Η τράπεζα ή ο πάροχος καρτών τους ενημερώνει ότι κάρτες που χρησιμοποιήθηκαν στο κατάστημά τους χρησιμοποιήθηκαν αργότερα σε απάτες.
- Πελάτες γράφουν ότι τους ζητήθηκε η κάρτα δύο φορές, ή ότι είδαν χρεώσεις που δεν αναγνωρίζουν.
- Δεν το μαθαίνουν καθόλου.
Μέχρι τότε η αλλαγή βρίσκεται συνήθως στη θέση της εδώ και καιρό. Ακολουθούν έρευνα, πιθανή αναστολή των πληρωμών με κάρτα, και το ερώτημα αν πρέπει να ενημερωθούν οι πελάτες και η αρχή προστασίας δεδομένων.
Τι κάνει το HachiGuard για το καθένα
Εντοπίζεται στον επόμενο έλεγχο. Το καθαρό αρχείο μπαίνει πίσω αυτόματα και ενημερώνεστε.
Εντοπίζεται: κάθε αλλαγή σε αρχείο checkout αναφέρεται, και τα γνωστά μοτίβα υποκλοπής σημαίνουν κρίσιμο συναγερμό. Επαναφέρεται αυτόματα όταν η αλλαγή προσθέτει άγνωστο προορισμό.
Εντοπίζεται και αναφέρεται ως κρίσιμο όταν εμφανιστεί άγνωστη διεύθυνση. Οι ρυθμίσεις δεν αλλάζουν πίσω αυτόματα.
Καλύπτεται εν μέρει. Ο έλεγχός μας από έξω βλέπει ένα νέο domain τρίτου στις δημόσιες σελίδες σας. Μια αλλαγή μέσα σε script που υπήρχε ήδη, στον server του τρίτου, δεν εντοπίζεται.
Τι άλλο πρέπει να κάνετε
- Κρατάτε ενημερωμένη την πλατφόρμα και τα πρόσθετά της.
- Κάθε διαχειριστής να έχει δικό του λογαριασμό, με ισχυρό κωδικό και σύνδεση δύο βημάτων όπου το δίνει η πλατφόρμα. Αφαιρέστε τους λογαριασμούς που δεν χρησιμοποιεί κανείς.
- Όπου γίνεται, στέλνετε τον πελάτη στη σελίδα πληρωμής της ίδιας της τράπεζας, αντί να παίρνετε την κάρτα μέσα στο κατάστημά σας.
- Φορτώνετε όσο λιγότερα scripts τρίτων γίνεται στο checkout.