Hacking
G_Wagon: npm πακέτο που αδειάζει browser και πορτοφόλια
G_Wagon: npm πακέτο που αδειάζει browser και πορτοφόλια Τι εντοπίστηκε και σε ποιο πλαίσιο Την 23η Ιανουαρίου 2026
Τι εντοπίστηκε και σε ποιο πλαίσιο
Την 23η Ιανουαρίου 2026 ερευνητές ασφάλειας ανίχνευσαν ένα ιδιαίτερα περίπλοκο infostealer που κρυβόταν μέσα σε ένα φαινομενικά ακίνδυνο πακέτο στο npm. Το πακέτο εμφανιζόταν ως «ελαφρύ, modular UI component system» με το όνομα ansi-universal-ui, αλλά στην πραγματικότητα δεν περιείχε κανένα νόμιμο UI. Πίσω από τη βιτρίνα κρυβόταν το κακόβουλο πρόγραμμα που οι αναλυτές ονόμασαν G_Wagon, ένα multi-stage stealer σχεδιασμένο να αποσπά διαπιστευτήρια, πορτοφόλια κρυπτονομισμάτων, κλειδιά cloud και tokens εφαρμογών μηνυμάτων από μολυσμένα συστήματα.
Η περίπτωση δεν είναι απλώς ένα τυπικό malware. Όπως δείχνει η ανάλυση της ιστορίας εκδόσεων, ο δράστης έδειξε προγραμματιστική ευχέρεια και συνεχή ανάπτυξη επί αρκετών εκδόσεων μέσα σε λίγες ημέρες, βελτιώνοντας τεχνικές απόκρυψης, anti-forensics και εκτέλεσης σε μνήμη. Η επεισοδιακή και επαναλαμβανόμενη ωρίμανση της επίθεσης την κατατάσσει σε πιο προσεγμένα «targeted» supply-chain incidents, παρά σε πρόχειρο script kiddie εγχείρημα.
Πώς λειτουργεί το κακόβουλο πακέτο
Αντί να προσθέσει έγκυρα components, το ansi-universal-ui περιλαμβάνει ένα postinstall hook που εκτελεί σειρές ενεργειών για να φιλοξενήσει και να εκτελέσει ένα Python-based infostealer. Το πρώτο στρατηγικό στοιχείο είναι ότι το πακέτο κατεβάζει το περιβάλλον χρόνου εκτέλεσης του (runtime) και στη συνέχεια «στραγγαλίζει» τον κώδικα με πολυεπίπεδη κωδικοποίηση και obfuscation πριν τον τροφοδοτήσει στον interpreter. Σε νεότερες εκδόσεις, αντί να γράφει Python αρχεία στο δίσκο, ο κώδικας παίρνει base64-encoded payload από απομακρυσμένους servers, αποκωδικοποιείται σε μνήμη και περνάει στον Python interpreter μέσω stdin — μια τεχνική που δυσκολεύει τα εργαλεία ανίχνευσης που βασίζονται σε αρχεία.
Ένα ακόμη κόλπο που αύξανε την επιτυχία της εκτέλεσης ήταν η χρήση «self-dependency»: το πακέτο αναφέρονταν ως εξάρτηση στον ίδιο του τον εαυτό στο package.json, με αποτέλεσμα το postinstall hook να εκτελείται δύο φορές κατά την εγκατάσταση. Η διπλή αυτή εκτέλεση αυξάνει την πιθανότητα να τρέξει ο τελικός στάδιο του stealer πριν κάποιος χρήστης εντοπίσει την παρανομία.
Τεχνικές απόκρυψης και evasion
Οι επιτιθέμενοι εργάστηκαν στο να κάνουν τη συμπεριφορά του κώδικα όσο το δυνατόν πιο «νορμάλ» και μη υποψιαστική. Τα μηνύματα log τροποποιήθηκαν ώστε αντί να εμφανίζουν φανερά κακόβουλες φράσεις όπως «Setting up Python environment», να εμφανίζουν φιλικές προς τον developer ενδείξεις όπως «Initializing UI runtime», κάτι που μειώνει την πιθανότητα κάποιος προγραμματιστής να παρεμβληθεί.
Σε τεχνικό επίπεδο, εφάρμοσαν hex-encoded URLs για τα command-and-control endpoints, memory-only εκτέλεση payloads και anti-forensics τεχνικές που σβήνουν τα ίχνη μετά την εκτέλεση. Στην έκδοση 1.3.7 προστέθηκε κώδικας καθαρισμού που διαγράφει το payload μετά τη χρήση, ενώ σε μεταγενέστερες εκδόσεις η επικοινωνία έγινε πιο αξιόπιστη μέσα από μοτίβα chunking: μεγάλα αρχεία δεδομένων σπάζονται σε κομμάτια των 5MB πριν ανέβουν στο αποθηκευτικό backend, για να αποφευχθούν σφάλματα μεταφοράς.
Τι συλλέγει το G_Wagon
Το εύρος των στόχων του G_Wagon είναι εντυπωσιακά μεγάλο και στοχεύει τόσο προσωπικά όσο και εταιρικά στοιχεία. Από browsers όπως τον Chrome, τον Edge και τον Brave σε Windows και macOS, συλλέγει saved passwords, cookies και session tokens. Σε Windows χρησιμοποιεί τον Chrome DevTools Protocol για να εξάγει cookie δεδομένα και αξιοποιεί το Windows DPAPI για να αποκρυπτογραφήσει αποθηκευμένους κωδικούς.
Κεντρικός στόχος είναι τα πορτοφόλια κρυπτονομισμάτων: ο stealer στοχεύει πάνω από 100 browser extensions, συμπεριλαμβανομένων των MetaMask, Phantom, Coinbase Wallet, Trust Wallet, Ledger Live και Exodus. Αντί να περιορίζεται στο να κλέψει μεμονωμένα κλειδιά, το malware αντιγράφει ολόκληρους φακέλους επεκτάσεων για να συλλέξει seed phrases, JSON keystores και αρχεία με private keys για blockchains όπως Ethereum, Solana, Cosmos, Polkadot και Cardano.
Παράλληλα, ο stealer σκανάρει για cloud credentials — αρχεία διαμόρφωσης και κλειδιά από AWS CLI, Azure CLI και Google Cloud SDK — καθώς και για SSH keys και kubeconfig, στοιχεία που μπορούν να δώσουν μακροχρόνια πρόσβαση σε υποδομές. Tokens από εφαρμογές μηνυμάτων (Discord, Telegram) και authentication data από πλατφόρμες παιχνιδιών όπως Steam είναι επίσης μέσα στις προτεραιότητες του κώδικα.
Υποδομή διακίνησης δεδομένων και επιθέσεων
Για την αποστολή των κλοπιμαίων, οι επιτιθέμενοι χρησιμοποίησαν Appwrite storage buckets φιλοξενούμενα σε servers σε Νέα Υόρκη και Φρανκφούρτη. Η χρήση ενός γνωστού backend-as-a-service είναι έξυπνη: δίνει αξιόπιστη χωρητικότητα, HTTPS μεταφορά και μειώνει τη φαινομενική κακόβουλη υποδομή. Επιπλέον, ο κώδικας περιλαμβάνει έναν ενσωματωμένο Windows DLL που εγχέεται σε διαδικασίες browser χρησιμοποιώντας NT native APIs για πιο βαθιά πρόσβαση στη μνήμη και τα session tokens.
Από την πλευρά της οργάνωσης της επίθεσης, η γρήγορη αλληλουχία δημοσιεύσεων (10 εκδόσεις μεταξύ 21 και 23 Ιανουαρίου) δείχνει δοκιμές και ρευστότητα: πρώιμες εκδόσεις περιείχαν placeholder κώδικα για να δοκιμάσουν execution chains, αργότερα προστέθηκαν anti-forensics και μνήμη-μόνο εκτέλεση. Η ενασχόληση με λεπτομέρειες όπως η μετάβαση από χρήση npm tar library σε άμεσο spawn του system tar command υποδεικνύει αποφάσεις που στόχευαν στη μείωση των εξωτερικών εξαρτήσεων και στην αύξηση της συμβατότητας, αλλά και στην απόκρυψη της τροποποίησης.
Πώς να ελέγξετε αν επηρεάζεστε και πρακτικά βήματα καθαρισμού
Η πρώτη και άμεση ενέργεια για όσους έχουν εγκαταστήσει το ansi-universal-ui είναι να το αφαιρέσουν από τα έργα τους και από το global node_modules. Αυτό όμως είναι μόνο το πρώτο βήμα. Οδηγίες που θα βελτιώσουν την ασφάλεια μετά από πιθανή έκθεση:
– Αλλάξτε όλους τους κωδικούς που είναι αποθηκευμένοι σε browsers και ενεργοποιήστε 2FA όπου υποστηρίζεται. Η απλή αλλαγή κωδικών πριν την επαναφορά tokens μπορεί να μην είναι αρκετή αν τα sessions παραμένουν ενεργά.
– Ανακαλέστε ή επανεκδώστε τα API keys και τα κλειδιά cloud: AWS, Azure, GCP. Αν υπάρχουν μοτίβα χρήσης από αδιευκρίνιστες τοποθεσίες, αναγκαστική ανίχνευση και περιστροφή κλειδιών είναι απαραίτητα.
– Ελέγξτε και ανακτήστε seed phrases και private keys σε πορτοφόλια crypto. Αν υπάρχει υποψία αποκάλυψης, μεταφέρετε κεφάλαια σε καινούρια πορτοφόλια με νέους seed phrases.
– Ελέγξτε για ξένες διαδικασίες, DLL injections και ασυνήθιστη δικτυακή κίνηση που συνδέεται με μη αναγνωρισμένους hosts. Εργαλεία EDR, νεότερες εκδόσεις antivirus και network monitoring μπορούν να εντοπίσουν μεταφορές μεγάλων αρχείων ή επαναλήψεις upload chunking.
– Επιθεωρήστε τα logs ανάπτυξης και CI pipelines: ελέγξτε αν το πακέτο χρησιμοποιήθηκε σε build servers, και αν ναι, περιστρέψτε credentials που ενδέχεται να ήταν προσβάσιμα σε αυτά τα περιβάλλοντα.
– Σε επιχειρησιακά περιβάλλοντα, εφαρμόστε αρχές least privilege σε service accounts και χρήση ephemeral credentials (short-lived tokens) όπου είναι δυνατόν, ώστε να μειωθεί ο χρόνος ζωής ενός διαρρεύσαντος κλειδιού.
Εάν δεν έχετε επαρκή εμπειρία, η συμβουλή ασφάλειας είναι να μιλήσετε με εξειδικευμένο incident response team πριν προχωρήσετε σε μεμονωμένες ενέργειες που μπορεί να διαταράξουν αποδείξεις.
Γιατί έχει σημασία
Αυτή η υπόθεση δείχνει πόσο επικίνδυνη μπορεί να γίνει η αλυσίδα εφοδιασμού λογισμικού. Οι προγραμματιστές εμπιστεύονται εκατομμύρια open-source πακέτα και ένα μόνο μολυσμένο module που περνάει απαρατήρητο μπορεί να παράγει αλυσιδωτές επιπτώσεις: από προσωπικές απώλειες κρυπτονομισμάτων μέχρι πλήρη παραβίαση cloud υποδομών εταιρειών. Οι τεχνικές που εφαρμόζει το G_Wagon —μνήμη-μόνο εκτέλεση, DTOs σε base64, self-dependency — αποδεικνύουν ότι οι επιτιθέμενοι μαθαίνουν να παρακάμπτουν παραδοσιακά μοτίβα ανίχνευσης.
Σε πρακτικό επίπεδο, αυτό μας υπενθυμίζει ότι οι εξωτερικές εξαρτήσεις πρέπει να αξιολογούνται όχι μόνο για λειτουργικότητα αλλά και για προέλευση, συντήρηση και ασφάλεια. Η αυτοματοποίηση της διαχείρισης εξαρτήσεων πρέπει να συνοδεύεται από εργαλεία που ελέγχουν την ακεραιότητα πακέτων (signing, provenance), και από πολιτικές που περιορίζουν τα δικαιώματα εκτέλεσης scripts σε CI/CD pipelines.
Ελληνικό και ευρωπαϊκό πλαίσιο
Στην Ευρώπη και στην Ελλάδα, όπου η υιοθέτηση cloud και Web3 λύσεων αυξάνεται, τέτοιου είδους απειλές θίγουν την ασφάλεια δεδομένων και την εμπιστοσύνη σε ανοιχτό λογισμικό. Το ευρωπαϊκό ρυθμιστικό πλαίσιο για την ψηφιακή ασφάλεια ενθαρρύνει τις οργανώσεις να εφαρμόσουν μέτρα όπως vulnerability disclosure policies και supply chain risk management. Για τις ελληνικές εταιρείες, είναι κρίσιμο να ενσωματώσουν audits εξαρτήσεων και scanning για malicious patterns πριν push σε production.
Επιπλέον, η χρήση τρίτων υπηρεσιών για αποθήκευση κλεμμένων στοιχείων (όπως Appwrite) δείχνει πόσο εύκολα μπορεί να αξιοποιηθεί νόμιμη υποδομή. Οι πάροχοι cloud και BaaS πρέπει να βελτιώσουν τα detection controls για μη φυσιολογική χρήση buckets και να διευκολύνουν την αναφορά κακόβουλης δραστηριότητας.
Συμπέρασμα και προτάσεις προς προγραμματιστές
Η υπόθεση G_Wagon είναι μια νέα υπενθύμιση ότι το οικοσύστημα open-source απαιτεί προσοχή και ωριμότητα σε θέματα ασφάλειας. Προγραμματιστές και ομάδες DevOps πρέπει να:
– Περιορίζουν την τρέχουσα χρήση scripts εγκατάστασης (postinstall) και να απενεργοποιούν την αυτόματη εκτέλεση όταν δεν είναι απαραίτητη.
– Χρησιμοποιούν signed packages και verify provenance όπου υπάρχει υποστήριξη.
– Εφαρμόζουν scanning για malware και dependency auditing σε CI pipelines.
– Ενεργοποιούν monitoring για ύποπτες εξαρτήσεις και ασυνήθιστη δικτυακή κίνηση από build agents.
– Εκπαιδεύουν ομάδες ώστε να αναγνωρίζουν social engineering και typosquatting πακέτων.
Η αλλαγή συμπεριφοράς είναι τόσο τεχνολογική όσο και οργανωσιακή: πρόληψη σημαίνει επένδυση σε εργαλεία, πολιτικές και κουλτούρα ασφάλειας, όχι μόνο σε reactive λύσεις μετά την επίθεση.