Mastodon
Connect with us

Hacking

Κυκλώματα προσλήψεων ως δόλωμα: Το Mirage Kitten, τα NodeRabbit και PollCat

Ερευνητές εντόπισαν επιθέσεις που χρησιμοποιούν ψεύτικες προσλήψεις και παρεμβάλλονται σε Node/React projects για να εγκαταστήσουν τα NodeRabbit και PollCat. Το άρθρο εξηγεί την τεχνική αλυσίδα, τις δυνατότητες των RATs και πρακτικές άμυνας για developers και οργανισμούς.

Published

on

Κυκλώματα προσλήψεων ως δόλωμα: Το Mirage Kitten, τα NodeRabbit και PollCat

Μια νέα εκστρατεία που συνδέεται με το Mirage Kitten στοχεύει προγραμματιστές μέσω δήθεν τεχνικών αξιολογήσεων προσλήψεων, αλλά στην πραγματικότητα παραδίδει δύο cross-platform remote access trojans, το NodeRabbit και το PollCat. Η τακτική αξιοποιεί την εμπιστοσύνη των υποψηφίων σε συνηθισμένα εργαλεία ανάπτυξης — Node.js, React, Express, npm — και εισάγει κακόβουλους κώδικες μέσα σε φαινομενικά νόμιμα αρχεία και πακέτα.

Αυτό το άρθρο εξηγεί την τεχνική αλυσίδα της επίθεσης, τη λειτουργία των δύο RATs, τη σύνδεσή τους με γνωστές υποδομές cloud και τις πρακτικές άμυνας που μπορούν να μειώσουν τον κίνδυνο. Θα συζητήσουμε επίσης γιατί οι προγραμματιστές και οι εταιρείες που απασχολούν τεχνικούς πρέπει να αναθεωρήσουν πώς χειρίζονται εξωτερικές «προσλήψεις» και ατομικές αξιολογήσεις.

Παιχνίδι εμπιστοσύνης: πώς οι προσλήψεις γίνονται όπλο κοινωνικής μηχανικής

Η εκστρατεία ξεκινά με ψεύτικα προφίλ προσληπτών σε πλατφόρμες όπως το LinkedIn και άλλες αγγελίες εργασίας. Ο «εργοδότης» στέλνει ένα άμεσο μήνυμα με ένα φαινομενικά ώριμο, χρονικά περιορισμένο coding challenge — ένα αρχείο ZIP που περιέχει ένα πλήρες έργο Node/React, σύντομα instructive README και μια απαίτηση «μην αλλάξετε το server.js» ή «μη χρησιμοποιήσετε εργαλεία AI για τη λύση».

Αυτές οι οδηγίες λειτουργούν διπλά: δημιουργούν άγχος (artificial deadline) και αποτρέπουν τον υποψήφιο από το να κάνει προσεκτικό code review ή να ζητήσει βοήθεια. Το στάνταρ developer workflow — unzip, npm install, npm start — προσφέρει στο κακόβουλο payload την τέλεια μεταμφίεση για εκτέλεση στον endpoint του υποψηφίου χωρίς ύποπτο χειρισμό.

Η παγίδα στο node_modules: trojanized dependencies και κρυφά payloads

Ένα από τα βασικά στοιχεία της επίθεσης είναι η χρήση τοπικά παρεμφερών αλλά trojanized πακέτων. Αντί να εγκατασταθούν από το npm registry, τα κακόβουλα πακέτα συμπεριλαμβάνονται απευθείας στο node_modules του παραδείγματος έργου. Παραδείγματα που εντοπίστηκαν περιλαμβάνουν τροποποιημένες εκδόσεις των «colorized_terminal» και «pretty-log» που όταν φορτώνονται εξαπολύουν το πραγματικό payload από καταλόγους cache όπως node_modules/.cache/.320697f1/index.js.

Η παραμικρή εισαγωγή ενός τοπικά παρεχομένου πακέτου μπορεί να ξεγελάσει ακόμη και έμπειρους προγραμματιστές που εμπιστεύονται ότι το project είναι «προ-συναρμολογημένο» για την αξιολόγηση. Χωρίς έλεγχο της προέλευσης των αρχείων, η τυπική διαδικασία setup ενεργοποιεί τον κακόβουλο κώδικα σε φόντο και με διακριτικότητα.

NodeRabbit: cross-platform RAT με επίμονη παρουσία

Το NodeRabbit είναι υλοποιημένο σε Node.js και μπορεί να τρέξει σε Windows, Linux και macOS. Δημιουργεί ένα μοναδικό host identifier από στοιχεία του συστήματος — hostname, username, λειτουργικό, αρχιτεκτονική και MAC address — και επιχειρεί να επιβιώσει επανεκκινήσεων χρησιμοποιώντας μηχανισμούς εγγενείς στο λειτουργικό.

Σε περιβάλλον Windows, παλιότερες παραλλαγές αντιγράφονταν σε φακέλους που μοιάζουν με στοιχεία του συστήματος, όπως ενημερωτές του Microsoft Edge ή drivers της Intel, συνδυάζοντας ένα μετονομασμένο node.exe με JavaScript payload και δημιουργώντας Run Registry keys ή scheduled tasks. Σε Linux επικαλούνται cron @reboot entries, ενώ σε macOS δημιουργούν LaunchAgents.

Δικτύωση και λειτουργίες του NodeRabbit

Η επικοινωνία με το command-and-control (C2) γίνεται με κλήσεις HTTP(S) προς υποδομές στο Azure, με κρυπτογράφηση των JSON συναλλαγών μέσω AES-256-GCM. Οι ερευνητές εντόπισαν περιστατικά σε χρηματοοικονομικούς, αεροπορικούς και αεροδιαστημικούς φορείς στη Μέση Ανατολή και την Αφρική, με επιβεβαιωμένη παρουσία σε Αφγανιστάν, Αίγυπτο και Αιθιοπία.

Οι δυνατότητες του implant περιλαμβάνουν συλλογή συστήματος και δικτύου, enumeration διεργασιών, εκτέλεση shell εντολών, ανάγνωση/εγγραφή αρχείων, προγραμματισμό beaconing και εκτέλεση arbitrary Node.js scripts. Νεότερες εκδόσεις πρόσθεσαν discovery proxies, checks κατά της ανάλυσης (anti-analysis) και persistence που απευθύνεται ειδικά σε developers: ψεύτικο extension «GitHub Copilot Helper» για VS Code και κακόβουλα Git post-merge/post-checkout hooks.

PollCat: ένας obfuscated JavaScript RAT μέσα σε React αξιολόγηση

Το δεύτερο malware family, PollCat, παραδόθηκε μέσα σε ξεχωριστό React-based assessment ονόματι RankChallenge-react. Αντίστοιχα με το NodeRabbit, το PollCat ενεργοποιεί λειτουργίες ήδη κατά το startup της εφαρμογής, πριν ο χρήστης εισάγει έναν recruiter-supplied OTP ή ολοκληρώσει την εγγραφή στο ψεύτικο περιβάλλον.

Μετά την ενεργοποίηση, το PollCat μπορεί να κάνει inventory του host, να εκτελεί εντολές, να διαβάζει και να διαγράφει αρχεία, να αντιστοιχίζει drives και διεργασίες, να μεταφέρει αρχεία, να ξεκινά κρυφές διεργασίες και να τρέχει JavaScript που παρέχει ο attacker. Η ρουτίνα SYSTEM_CHECK στοχεύει συγκεκριμένους φακέλους που σχετίζονται με antivirus και EDR προϊόντα όπως CrowdStrike, SentinelOne, Palo Alto, Fortinet, Sophos και Kaspersky, ελέγχοντας για παρουσία ασφαλιστικών μηχανισμών.

Κοινά πρωτόκολλα και δείκτες σύνδεσης με Mirage Kitten

Η τεχνική σχεδίαση του PollCat δείχνει σημαντική ομοιότητα με προηγούμενα εργαλεία της ομάδας, όπως τα Retrograde και MiniFast. Κοινά χαρακτηριστικά περιλαμβάνουν τη χρήση HTTP 400 ως επιτυχημένο handshake, την εξαγωγή ενός socketId για polling εντολών, παρόμοια default beacon timings και την επαναλαμβανόμενη χρήση Azure Websites και domains προστατευμένων με Cloudflare για C2.

Αυτά τα στοιχεία, μαζί με τη victimology που επικεντρώνεται σε fintech και αεροδιαστημικές επιχειρήσεις, ενισχύουν τη συσχέτιση των παρατηρούμενων samples με το Mirage Kitten και εξηγούν την υψηλή εμπιστοσύνη των ερευνητών στην attribution.

Γιατί οι προγραμματιστές είναι ιδιαίτερα ευάλωτοι σε αυτή τη μεθοδολογία

Η επίθεση εκμεταλλεύεται σχεδιαστικά τις συνήθειες των developers: αποδέσμευση έτοιμων projects, χρήση εξωτερικών dependencies, εμπιστοσύνη σε README οδηγίες και γρήγορη εκτέλεση για να δείξουν αποτέλεσμα. Το περιβάλλον εργασίας του προγραμματιστή — IDE extensions, Git hooks, τοπικά node binaries — προσφέρει πολλαπλά σημεία εισαγωγής για persistent παραμονή του κακόβουλου λογισμικού.

Επιπλέον, η παρουσία ψευδών στοιχείων «επαγγελματικής διεπαφής» (π.χ. περιγραφές ρόλων, εταιρικό branding) και η χρήση OTP κωδικών που λήγουν γρήγορα μειώνουν την πιθανότητα εξωτερικού τεχνικού ελέγχου από τον υποψήφιο ή την ασφάλεια της εταιρείας που προσλαμβάνει.

Πρακτικές άμυνας: τι να κάνετε για να προστατευτείτε

Η πρώτη και πιο σημαντική αρχή είναι να αντιμετωπίζετε οποιοδήποτε unsolicited coding challenge ως μη αξιόπιστο λογισμικό. Αυτό σημαίνει να μην ανοίγετε ή τρέχετε αρχεία στο κύριο workstation σας. Αντίθετα, χρησιμοποιήστε απομονωμένα περιβάλλοντα: disposable VMs, containers χωρίς πρόσβαση σε δίκτυο ή sandbox εργαλεία που επιτρέπουν παρακολούθηση συμπεριφοράς.

Πριν τρέξετε οτιδήποτε, ελέγξτε το περιεχόμενο του package.json, αναζητήστε τοπικά παρεχόμενα πακέτα στο node_modules, και επιβεβαιώστε ότι κάθε dependency προέρχεται από αξιόπιστο registry. Ελέγξτε τα περιεχόμενα των .env αρχείων και README για αντιφατικές ή παραπλανητικές οδηγίες.

  • Απομονώστε αξιολογήσεις σε ξεχωριστά VM ή sandbox.
  • Σκανάρετε τοπικές βιβλιοθήκες και caches πριν την εκτέλεση.
  • Παρακολουθήστε για νεοσυσταθείσες scheduled tasks, cron entries ή LaunchAgents.
  • Ελέγχετε Git hooks στην .git/hooks και καταλόγους extensions του VS Code.
  • Φιλτράρετε και παρακολουθήστε εξερχόμενη κίνηση σε Azure/Cloudflare domains από μη αναμενόμενα endpoints.

Σε εταιρικό επίπεδο, ενσωματώστε κανόνες στον CI/CD και policies που απαγορεύουν την εκτέλεση μη επικυρωμένων externals, χρησιμοποιείστε allowlists για extensions και ενεργοποιήστε EDR που αναγνωρίζει ύποπτες Node.js διεργασίες και τροποποιήσεις σε Git hooks.

Τι σημαίνει αυτό στην πράξη για χρήστες και οργανισμούς

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

Για τους τελικούς χρήστες, αυτό σημαίνει ότι η προσωπική ευθύνη και η τεχνογνωσία στην ασφάλεια πρέπει να αυξηθούν: ένας developer δεν είναι απλά τεχνικός που γράφει κώδικα αλλά και gatekeeper απέναντι σε πιθανές supply-chain απειλές. Για τις εταιρείες, απαιτείται πολιτική διαχείρισης εξωτερικών αξιολογήσεων, διαδικασία απομόνωσης και εκπαίδευση HR ώστε να αναγνωρίζονται οι ύποπτες προσεγγίσεις προσλήψεων.

Τεχνικά, η τακτική του Mirage Kitten φέρνει στο προσκήνιο δύο εξελίξεις: την αξιοποίηση του Node.js οικοσυστήματος ως vector και τη στοχοποίηση ειδικά του τεχνικού εργατικού δυναμικού. Η απάντηση πρέπει να συνδυάζει τεχνικούς ελέγχους, διαδικασίες και ενημέρωση των ανθρώπων που τρέχουν τον κώδικα.

Advertisement