Hacking
Ψεύτικες επεκτάσεις Firefox έκλεβαν seed phrases από πορτοφόλια κρυπτονομισμάτων
Τρεις κακόβουλες επεκτάσεις Firefox μιμήθηκαν γνωστά crypto wallets και ανταλλακτήρια, έκλεψαν seed phrases μέσω main-world injection και αποστολής δεδομένων σε υποδομές υπό bonto[.]io. Οδηγίες για άμεση αντίδραση και πρόληψη παρέχονται στο άρθρο.
Μια συντονισμένη καμπάνια κακόβουλων επεκτάσεων για Firefox μιμήθηκε τρεις δημοφιλείς εφαρμογές πορτοφολιών και ανταλλακτηρίων — Phantom, Jupiter και Bitget — με στόχο την αποκάλυψη των recovery phrases και ιδιωτικών κλειδιών χρηστών. Οι ερευνητές της Socket εντόπισαν ότι οι προσθήκες δεν περιορίζονταν σε απλό phishing: περιείχαν ενσωματωμένους stealers, μηχανισμούς απομακρυσμένης παράδοσης κώδικα και υποδομές που μάζευαν και διεκπεραίωναν κλεμμένα δεδομένα μέσω του domain bonto[.]io.
Οι αθέμιτες καταχωρίσεις αφαιρέθηκαν από το κατάστημα προτού δημοσιευθούν τα ευρήματα, στις 27 Οκτωβρίου 2026, αλλά τα τεχνικά μοτίβα και οι συνέπειες αυτής της επίθεσης αξίζουν προσεκτική ανάλυση, ειδικά για όσους διαχειρίζονται ψηφιακά περιουσιακά στοιχεία.
Πώς οι κακόβουλες επεκτάσεις απέμειναν “αληθοφανείς”
Οι επιτιθέμενοι χρησιμοποίησαν σε μεγάλο βαθμό κοινωνική μηχανική και οπτική πλαστοπροσωπία. Ο μίμος του Phantom εμφανιζόταν ως «OFFICIAL PHANTOM WALLET (Firefox Update)», ο «Jupiter» ισχυριζόταν πως ήταν «Built by Jupiter Exchange» και το «Bitget» έκρυβε την πραγματική του ταυτότητα κάτω από την εσωτερική ονομασία «TabFlow Pro». Επιπλέον, αντιγράφηκαν εικονίδια, marketing κείμενα και ακόμα χρησιμοποιήθηκαν Unicode homoglyphs — χαρακτήρες που μοιάζουν οπτικά με τους πραγματικούς, αλλά ανήκουν σε διαφορετικό σύνολο σημείων— για να παραπλανήσουν το μάτι του χρήστη.
Τέτοιες μικρές οπτικές αποκλίσεις δυσκολεύουν τον εκ μέρους χρήστη γρήγορο διαχωρισμό του νόμιμου από το κακόβουλο. Σε συνδυασμό με τίτλους που περιλαμβάνουν λέξεις-κλειδιά όπως «official» ή «update», ο μέσος χρήστης μπορεί να μην υποψιαστεί τίποτε λανθασμένο πριν εισάγει το seed phrase του ή συνδεθεί με το πορτοφόλι.
Τεχνική δομή επιθέσεων: από loader έως απομακρυσμένο JavaScript
Στο πακέτο του μιμητή του Phantom βρέθηκε ένας loader προσαρτημένος στο background/serviceWorker.js, που εμφανιζόταν ως προαιρετικό analytics component. Ο loader αναδόμησε το domain phantom[.]bonto[.]io από κωδικοποιημένους χαρακτήρες και έκανε αίτηση στο endpoint /config. Η απάντηση περιείχε σημαία ενεργοποίησης και Base64-encoded JavaScript, το οποίο αποκρυπτογραφήθηκε, αποθηκεύτηκε και ενέχυσε στον τοπικό cache της επέκτασης.
Αυτός ο μηχανισμός επέτρεψε την απομακρυσμένη αλλαγή συμπεριφοράς της επέκτασης χωρίς να χρειαστεί νέα υποβολή στο κατάστημα. Ο κώδικας εισήγαγε φορτία στα tabs του browser, προτιμώντας το main-world εκτέλεσης της σελίδας (όπου τρέχει το ίδιο το JavaScript του ιστοτόπου) προκειμένου να αποκτήσει πρόσβαση σε παρεμβολές που δεν θα ήταν διαθέσιμες σε απομονωμένο περιβάλλον content scripts.
Τι σημαίνει main-world vs isolated execution για πορτοφόλια
Οι browser extensions μπορούν να εκτελούν κώδικα είτε σε απομονωμένα περιβάλλοντα (isolated content scripts), είτε να εισάγουν script στο κύριο περιβάλλον της σελίδας (main world). Όταν ένα κακόβουλο script τρέχει στο main world, μπορεί να “δει” και να αλληλεπιδράσει με αντικείμενα που τοποθετούν τα ίδια τα web wallets στη σελίδα, όπως providers του τύπου window.ethereum ή window.solana. Αυτό άνοιξε τον δρόμο για την υποκλοπή δημοσίων κλειδιών συνδεδεμένων λογαριασμών και την ανάγνωση συμπληρωμάτων που οι ίδιοι οι wallets εισάγουν στο DOM.
Γι’ αυτό οι παραδοσιακές content scripts δεν ήταν αρκετές για τους επιτιθέμενους· προτίμησαν επεμβάσεις στο κύριο execution context ώστε να υποκλέψουν seed phrases όσο πληκτρολογούνταν ή επικολλούνταν, καθώς και να υποκλέψουν στοιχεία από το clipboard και τα πεδία εισαγωγής.
Τρόποι κλοπής: παρακολούθηση input, clipboard και αναγνώριση seed phrases
Στην αναλυτική συμπεριφορά των payloads, το κακόβουλο JavaScript σκανάρισε πεδία input και textarea, εγγραφές paste events και αλλαγές focus. Επίσης αναζητούσε ορατό κείμενο σελίδας που έταιζε με μοτίβα numbered recovery phrases και μοτίβα ιδιωτικών κλειδιών που χρησιμοποιούνται σε Ethereum-compatible δίκτυα και στη Solana. Όταν εντοπιζόταν πιθανό seed phrase ή ιδιωτικό κλειδί, τα δεδομένα πακετάρονταν σε JSON και αποστέλλονταν σε endpoints όπως phantom[.]bonto[.]io, jupiter[.]bonto[.]io και bitget[.]bonto[.]io.
Η προσέγγιση ήταν πολυεπίπεδη: ακόμα και αν η απομακρυσμένη παράδοση απενεργοποιούνταν, οι υποκλαπέντες stealers που περιλαμβάνονταν ήδη στο πακέτο της επέκτασης μπορούσαν να λειτουργήσουν ανεξάρτητα — κάτι που τα έρευνα της Socket επιβεβαίωσε.
Διαφορετικά παραδείγματα κακόβουλης συμπεριφοράς ανά “μόνιτορ”
Ο μιμητής του Jupiter (ID 3092666) ενσωμάτωνε ένα trojanized background.js που εξήγαγε mnemonics και ιδιωτικά κλειδιά κατά τη διαδικασία εισαγωγής πορτοφολιού, ενώ ένα hook.js υποκλάπηκε δεδομένα από inputs και το clipboard και τα έστελνε στο jupiter[.]bonto[.]io. Ο μιμητής του Bitget (ID 3092059) συνδύαζε σάρωση σελίδας με background worker που παρεμπόδιζε την αποθήκευση seeds καθώς αυτά αποκρυπτογραφούνταν στο browser και καθοδηγούσε τη δημιουργία νέων tabs σε τοπικές οθόνες εισαγωγής, ενισχύοντας την απάτη.
Επιπλέον, η έρευνα εντόπισε αρχεία backend στο πακέτο του Phantom που περιελάμβαναν Node.js κώδικα για logging, προώθηση πληροφοριών μέσω Telegram και ενδεχόμενη αποξήρανση χρημάτων σε εννέα blockchain δίκτυα. Η ύπαρξη των αρχείων δείχνει σχεδιασμό για ολοκληρωμένη υποδομή, έστω κι αν αυτά ήταν απλώς bundled artifacts και δεν σημαίνουν ότι Node.js εκτελέστηκε μέσα στον Firefox.
Πώς εντοπίστηκε και ποιες υποδομές χρησιμοποιήθηκαν
Η υποδομή των επιτιθέμενων έδειχνε συγκέντρωση domains υπό το bonto[.]io, με επιπλέον hosts όπως coinbase[.]bonto[.]io και exodus[.]bonto[.]io προετοιμασμένα, αν και αντίστοιχες καταχωρίσεις στο κατάστημα δεν βρέθηκαν. Κάθε κακόβουλη επέκταση είχε φτιαχτεί από ξεχωριστό disposable developer account, τεχνική που δυσχεραίνει το attribution και το μπλοκάρισμα των δημιουργών.
Στα πακέτα βρέθηκαν επίσης οδηγοί για AI jailbreaks μέσα σε αρχεία CLAUDE.md, δείγμα πιθανής προσπάθειας χρήσης AI για αυτόματη παραγωγή ή τροποποίηση κώδικα, χωρίς όμως άμεση απόδειξη για τον ρόλο αυτής της πρακτικής στην επίθεση.
Τι να κάνει ο χρήστης αν έχει εκτεθεί
Εφόσον έχετε εκτεθεί — αν δηλαδή έχετε εισαγάγει ή επικολλήσει το recovery phrase ή το ιδιωτικό κλειδί σε οποιαδήποτε επέκταση ή σε ύποπτο site — θεωρείστε το πορτοφόλι συμβιβασμένο. Η βασική πρακτική είναι άμεση μεταφορά των περιουσιακών στοιχείων σε νέο πορτοφόλι που δημιουργήθηκε σε καθαρή συσκευή. Αυτό σημαίνει: νέα seed phrase, νέα συσκευή χωρίς ύποπτο λογισμικό, και, αν είναι δυνατόν, χρήση hardware wallet.
Επιπλέον, πρέπει να αποσυνδέσετε και να ανακαλέσετε approvals από smart contracts που είχαν πρόσβαση στο πορτοφόλι σας, χρησιμοποιώντας υπηρεσίες που ελέγχουν permissions και allowances, και να εξετάσετε πιθανή μεταφορά tokens που προστατεύονται με multisig ή άλλες ασφαλιστικές διατάξεις.
Πρόληψη και πρακτικές ασφάλειας για browser wallets
Τα βασικά μέτρα προφύλαξης παραμένουν απλά αλλά κρίσιμα: εγκατάσταση επεκτάσεων μόνο από τις επίσημες σελίδες των παρόχων και όχι απευθείας από καταλόγους, έλεγχος της ταυτότητας της επέκτασης μέσα στο browser (ID, developer), και αποφυγή paste του seed phrase σε οποιαδήποτε ιστοσελίδα ή επέκταση. Επιπλέον, οι πιο προχωρημένοι χρήστες θα πρέπει να προτιμούν hardware wallets για μεγάλα υπόλοιπα, να κρατούν μικρά ποσά σε hot wallets και να χρησιμοποιούν ξεχωριστά προφίλ browser για περιήγηση και crypto δραστηριότητες.
Οργανισμοί και έργα λογισμικού θα πρέπει να ενισχύσουν τη διαδικασία ελέγχου και την παρακολούθηση καταχωρίσεων στο store, καθώς και να εκπαιδεύσουν χρήστες για homoglyph phishing και για τον τρόπο που λειτουργεί η απομακρυσμένη παράδοση κώδικα από επεκτάσεις.
Δείκτες συμβάντος (IOCs) και σημαντικές παρατηρήσεις
Οι ερευνητές διατήρησαν τις domains απο-σύνδεσμένες με τελεία αντικαταστημένη από [.] για την ασφάλεια των αναγνωστών. Μεταξύ των εμφανών IOCs είναι το bonto[.]io και υποτομείς όπως phantom[.]bonto[.]io, jupiter[.]bonto[.]io και bitget[.]bonto[.]io, καθώς και τα endpoints τύπου /config που χρησιμοποιήθηκαν για την απομακρυσμένη παράδοση του payload.
Παρά το ότι η Mozilla αφαίρεσε τις καταχωρίσεις προτού δημοσιοποιηθούν πλήρως τα ευρήματα της Socket, οι μέθοδοι που χρησιμοποιήθηκαν — απομακρυσμένη παραμικροδιαχείριση κώδικα, caching του φορτίου, main-world injection και bundled backend artifacts — δείχνουν μια καλά οργανωμένη προσπάθεια που θα μπορούσε να επαναληφθεί με παραλλαγές στο μέλλον.
Τι σημαίνει αυτό στην πράξη για τους χρήστες κρυπτονομισμάτων
Το περιστατικό υπενθυμίζει ότι το μεγαλύτερο ρίσκο για τα κρυπτονομίσματα δεν είναι απαραίτητα κάποιος «hacker» στο blockchain, αλλά η ανθρώπινη εμπιστοσύνη στα εργαλεία που χρησιμοποιούμε καθημερινά. Ένα seed phrase είναι η απόλυτη εξουσιοδότηση για ένα πορτοφόλι — όποιος το κατέχει, μπορεί να μεταφέρει αμέσως τα περιουσιακά στοιχεία. Επομένως, η οργάνωση μιας αμυντικής στρατηγικής γύρω από ασφαλείς πηγές, hardware wallets, και κανόνες για paste/clipboard είναι ουσιώδης.
Για την κοινότητα, το μάθημα είναι διπλό: οι χρήστες πρέπει να προσέχουν τι εγκαθιστούν, και οι πλατφόρμες πρέπει να βελτιώσουν τις διαδικασίες ανίχνευσης και αναλυτικής αξιολόγησης επεκτάσεων. Όσο τα κρυπτονομίσματα τραβούν μαζική υιοθέτηση, τέτοιου είδους απάτες θα γίνουν πιθανώς πιο συχνές — και η ετοιμότητα είναι το πιο αποτελεσματικό αντίδοτο.