Hacking
Phishing με GitHub Pages: πώς κλέβουν δεδομένα τραπεζών
Χρησιμοποιώντας κατανεμημένα repositories στο GitHub Pages, obfuscated JavaScript και SheetBest για να γεμίζουν Google Sheets, το modular phishing kit επιτυγχάνει ανθεκτική, real-time εξαγωγή δεδομένων. Το κείμενο εξηγεί τη δομή της επίθεσης και τι πρέπει να κάνουν τράπεζες και χρήστες.
Μια εξελιγμένη, μακρόχρονη επιχείρηση phishing μεταμορφώθηκε σε ένα serverless και modular σύστημα που εκμεταλλεύεται την αξιοπιστία πλατφορμών όπως το GitHub Pages για να αποσπάσει στοιχεία πληρωμών, κωδικούς και αναγνωριστικά πελατών τραπεζών στο Μεξικό. Η απειλή δεν βασίζεται πλέον σε μεμονωμένους domains αλλά σε μια κατανεμημένη υποδομή που δυσχεραίνει τον εντοπισμό και την άμεση κατάργηση των σελίδων.
Η περιγραφή και τα ευρήματα της έρευνας αποκαλύπτουν ένα επαναχρησιμοποιήσιμο phishing kit με επιλογέα (selector panel), templates για διαφορετικά ιδρύματα, και «serverless» εξαγωγή δεδομένων μέσω τρίτων υπηρεσιών όπως το SheetBest που γεμίζει Google Sheets σε πραγματικό χρόνο. Το αποτέλεσμα είναι ένα οικονομικό, εύκολα επαναδιανεμήσιμο εργαλείο με υψηλή ανθεκτικότητα.
Πώς λειτουργεί το modular phishing kit
Στο κέντρο της κακόβουλης επιχείρησης βρίσκεται ένα phishing kit με γραφικό πίνακα επιλογών: οι χειριστές επιλέγουν το target ίδρυμα και το kit παράγει σελίδες προσαρμοσμένες στην εμφάνιση και ροή σύνδεσης της κάθε τράπεζας. Τα templates υποστηρίζουν και desktop και mobile διεπαφές, ώστε να μεγιστοποιούν τα ποσοστά εμπλοκής — κάτι κρίσιμο όταν ο στόχος είναι χρήστες που συνδέονται από κινητό μέσω μηνύματος.
Η ροή επίθεσης είναι πολυεπίπεδη: πρώτα η απάτη τραβάει την προσοχή με ένα «ειδοποιητικό» ή «υποστηρικτικό» landing page που μοιάζει αξιόπιστο. Στη συνέχεια ο χρήστης ανακατευθύνεται σε φόρμες που μιμούνται βήματα σύνδεσης ή επαλήθευσης, όπου τα πεδία συλλέγονται χωρίς να φαίνεται κάτι ύποπτο στο UI. Οι φόρμες ενεργοποιούν JavaScript listeners που αναστέλλουν την προεπιλεγμένη συμπεριφορά και στέλνουν τα πεδία με ασφαλώς-εμφανιζόμενο HTTPS προς εξωτερικά API.
Serverless exfiltration με SheetBest και Google Sheets
Αντί για παραδοσιακούς C2 servers, οι επιτιθέμενοι χρησιμοποιούν το SheetBest για να γράφουν απευθείας σε Google Sheets. Τα JavaScript snippets στις σελίδες καλούν e.preventDefault(), σειριοποιούν τις τιμές σε JSON και κάνουν POST σε συγκεκριμένα endpoints του SheetBest. Αυτή η τεχνική επιτρέπει τη συλλογή δεδομένων σε πραγματικό χρόνο χωρίς να χρειάζεται να διαχειρίζονται ιδιόκτητους servers ή να εκθέτουν επιπλέον υποδομή.
Οι ερευνητές του Group-IB εντόπισαν πολλαπλά endpoints του SheetBest που οδηγούσαν στον ίδιο backend IP, καθώς και επαναλαμβανόμενη λογική αποστολής δεδομένων σε επιμέρους templates — ένδειξη κεντρικής, πολλαπλής συλλογής (many-to-one). Αυτός ο τρόπος λειτουργίας μειώνει το κόστος και αυξάνει την ταχύτητα αναπαραγωγής νέων σελίδων όταν κάποιο repository αφαιρεθεί.
Κατανεμημένη φιλοξενία στο GitHub Pages και οφέλη επιτήδειων
Αντί για ένα domain, το kit αναπτύχθηκε σε πάνω από 100 διαφορετικά repositories στο GitHub Pages, κάθε ένα με μοναδικά paths όπως /cancelacion/, /soporte/ ή /mb1/. Η διάσπαση αυτή προσφέρει πολλαπλά πλεονεκτήματα: κατανεμημένη ανθεκτικότητα, δυσκολία συσχέτισης των σελίδων μεταξύ τους, και γρήγορη αντικατάσταση όταν κάποιο repo διαγράφεται από την πλατφόρμα.
Η χρήση του GitHub Pages αξιοποιεί επίσης εμπιστοσύνη (domain reputation) και HTTPS, γεγονός που κάνει τις σελίδες να φαίνονται λιγότερο ύποπτες σε τεχνικά εργαλεία και στους χρήστες. Επιπλέον, οι σελίδες κατασκευάζονταν με Jekyll και αυτοματοποιούνταν μέσω GitHub Actions, επιτρέποντας συνεχή ενημέρωση templates και rotations endpoints χωρίς χειροκίνητη επέμβαση.
Τεχνικές απόκρυψης και εναλλαγής payload
Για να δυσκολέψουν τον εντοπισμό, οι σελίδες δεν περιέχουν όλη τη λογική inline. Αντίθετα φορτώνουν obfuscated εξωτερικά JavaScript μέσω τυχαίων paths, πράγμα που επιτρέπει την αλλαγή του «payload» χωρίς να αλλάζει η ορατή σελίδα. Αυτό ακυρώνει συχνά τις υπογραφές ανίχνευσης και κάνει τη στατική ανάλυση λιγότερο αξιόπιστη.
Σε κάποιες περιπτώσεις βρέθηκαν ακόμη και σκληροκωδικοποιημένα tokens από Telegram bots και chat IDs μέσα στο JavaScript, που προώθησαν τα κλεμμένα διαπιστευτήρια σε πραγματικό χρόνο σε χειριστές. Αυτή η ευελιξία δείχνει ότι οι επιτιθέμενοι χρησιμοποιούν πολλαπλά κανάλια εξαγωγής δεδομένων — από Google Sheets μέχρι Telegram — ανάλογα με το operational need.
Συνεχής συντήρηση και επιχειρησιακή πειθαρχία
Τα metadata των repositories και το ιστορικό commits αποκαλύπτουν ενεργή διαχείριση από πολλαπλούς λογαριασμούς για πάνω από ένα χρόνο. Οι χειριστές διατηρούν συνεχή commits, ενημερώσεις templates και rotation endpoints, στοιχεία που δείχνουν οργανωμένη, επιχειρησιακή προσέγγιση και όχι ερασιτεχνική δραστηριότητα.
Αυτή η «επαγγελματική» λειτουργία ενισχύει την αντοχή της καμπάνιας: ακόμα κι αν αφαιρεθούν ορισμένα repos, οι υπόλοιπες παρουσίες συνεχίζουν να λειτουργούν, ενώ νέες αναπληρώνονται γρήγορα. Η χρήση Open Graph metadata στις σελίδες επίσης διευκολύνει την παραγωγή πειστικών preview όταν τα links κοινοποιούνται σε μηνύματα, αυξάνοντας το CTR.
Γιατί οι παραδοσιακές άμυνες δεν αρκούν
Η εξάρτηση από blocklists, blacklists domains ή signature-based ανίχνευση γίνεται ανεπαρκής όταν επιτιθέμενοι χρησιμοποιούν αξιόπιστες πλατφόρμες φιλοξενίας και υπηρεσίες τρίτων για αποθήκευση δεδομένων. Μια URL σε github.io έχει ήδη κάποια βαθμίδα εμπιστοσύνης και προστατεύεται πίσω από HTTPS, ενώ οι επιτιθέμενοι μπορούν να αλλάζουν paths και υπάρχοντα scripts χωρίς να δημιουργούν καινούργια domains που θα μαρκάρονταν εύκολα.
Αυτό σημαίνει πως οι οργανισμοί πρέπει να μετατοπίσουν την άμυνα προς συμπεριφορικές μεθόδους: ανίχνευση μοτίβων φόρμας που στέλνουν ευαίσθητα πεδία σε τρίτες υπηρεσίες, συστηματική παρακολούθηση brand impersonation σε πλατφόρμες ανάπτυξης και hosting, και αυτοματοποιημένη ανίχνευση παρόμοιου JavaScript across repositories. Η ταχεία συνεργασία με παρόχους όπως το GitHub για takedown και το sharing indicators είναι πλέον κρίσιμη.
Τι σημαίνει για τους χρήστες και τις τράπεζες
Σε επίπεδο τελικού χρήστη, αυτό το μοντέλο phishing εντείνει την ανάγκη προσοχής σε κάθε μη αναμενόμενο μήνυμα που ζητά πληροφορίες. Οι τράπεζες πρέπει να επιταχύνουν την υιοθέτηση μέτρων όπως MFA, δυναμικός έλεγχος συναλλαγών και ειδοποιήσεις για ύποπτες αλλαγές. Επιπλέον, η γρήγορη ενημέρωση πελατών για τρέχουσες καμπάνιες phishing και συγκεκριμένα παραδείγματα link previews που χρησιμοποιούνται βοηθάει σημαντικά στη μείωση επιτυχίας των επιθέσεων.
Στο επιχειρησιακό επίπεδο, οι ομάδες ασφάλειας χρειάζονται καλύτερα εργαλεία για παρακολούθηση πλατφορμών προγραμματιστών (developer platforms), scripts που καλούν εξωτερικά APIs και αυτόματες ρουτίνες αναφοράς και κατάργησης. Η ανάλυση μεταδεδομένων όπως IP backends του SheetBest, patterns request payloads και reuse JavaScript signatures μπορεί να επιτρέψει γονιμοποίηση ασφαλείας (threat hunting) που εντοπίζει και μπλοκάρει ενεργές κακόβουλες παρουσίες.
Τι αλλάζει στην πράξη
Η μετάβαση σε serverless και κατανεμημένα phishing kits αλλάζει το τοπίο της απειλής: μειώνει τα τεχνικά κόστη των επιτιθέμενων και αυξάνει τον χρόνο ζωής των καμπανιών. Για να αντέξουμε, οι οργανισμοί πρέπει να επενδύσουν σε πολυεπίπεδες αμύνες — τεχνικές, διαδικαστικές και εκπαιδευτικές. Αυτό περιλαμβάνει:
- συνεχή παρακολούθηση για brand impersonation σε hosting/developer platforms,
- συνεργασία με παρόχους cloud για γρήγορα takedowns,
- σύνδεση phishing reports με SIEM/IR workflows και shared IOCs,
- ενημέρωση πελατών για συγκεκριμένες τακτικές social engineering και preview indicators.
Τελικά, η μεγαλύτερη άμυνα δεν είναι μόνο το τεχνικό μπλοκάρισμα αλλά η επίγνωση ότι οι πλατφόρμες που θεωρούμε «ασφαλείς» μπορούν να χρησιμοποιηθούν καταχρηστικά. Συνδυάζοντας τεχνολογική επαγρύπνηση, συνεργασία μεταξύ παρόχων και ενισχυμένη εκπαίδευση πελατών, μπορούμε να περιορίσουμε την αποτελεσματικότητα τέτοιων serverless, modular καμπανιών.