Ερευνητές ασφαλείας ανακάλυψαν ένα νέο, πρωτοφανές κακόβουλο λογισμικό για macOS που συνδυάζει μια σειρά από προηγμένες τεχνικές για να μολύνει υπολογιστές Mac με stealthy, προσαρμοσμένο κώδικα υποκλοπής διαπιστευτηρίων. Το PamStealer, όπως ονομάστηκε, ανακαλύφθηκε από την εταιρεία ασφαλείας Jamf και αντιπροσωπεύει μια σημαντική εξέλιξη στην κατηγορία των macOS infostealers.
Το κακόβουλο λογισμικό παραδίδεται σε δύο στάδια. Το πρώτο στάδιο διανέμεται μέσω μιας εικόνας δίσκου που μεταμφιέζεται ως Maccy, έναν διαχειριστή πρόχειρου (clipboard manager) για Mac. Είναι μεταγλωττισμένο ως AppleScript, γεγονός που ξεχωρίζει για τον τρόπο με τον οποίο παραδίδει το δεύτερο στάδιο. Το όνομα PamStealer προέρχεται από το γεγονός ότι το infostealer, γραμμένο σε Rust, χρησιμοποιεί τη διεπαφή Pluggable Authentication Modules (PAM) του macOS για να επικυρώνει τοπικά τον κωδικό πρόσβασης του στόχου προτού τον στείλει σε έναν διακομιστή που ελέγχεται από τους επιτιθέμενους.
Η χρήση τόσο εικόνας δίσκου όσο και AppleScript είναι συνηθισμένη σε κακόβουλο λογισμικό για Mac. Αυτό που κάνει το PamStealer ξεχωριστό είναι ο τρόπος με τον οποίο συνδυάζει αυτές τις τεχνικές για να επιτύχει απόκρυψη.
Όταν το AppleScript γίνεται διπλό κλικ, ανοίγει στο macOS Script Editor, όπου η κακόβουλη λειτουργικότητα είναι θαμμένη βαθιά μέσα στο αρχείο. Αντί να βασίζεται σε εντολές κελύφους όπως curl ή zsh, το AppleScript εκτελεί έναν αυτοδύναμο JavaScript for Automation (JXA) downloader που ανακτά και προετοιμάζει το ωφέλιμο φορτίο χρησιμοποιώντας native Objective-C APIs.
Όταν ένας χρήστης, περιμένοντας να εγκαταστήσει έναν αξιόπιστο διαχειριστή πρόχειρου, συναντά την εικόνα δίσκου, του ζητείται να πατήσει Command-R αμέσως μετά το διπλό κλικ. Αυτή η εντολή εκτελεί απευθείας τον κακόβουλο κώδικα μέσα στο AppleScript. Επιτρέπει επίσης στην εκτέλεση να παρακάμψει το com.apple.quarantine, ένα χαρακτηριστικό του macOS που παρέχει προειδοποιήσεις και περιορισμούς όταν εκτελέσιμα αρχεία έχουν ληφθεί από το διαδίκτυο.
Το πρώτο στάδιο τοποθετεί το ωφέλιμο φορτίο του μέσα σε ένα app bundle που υποδύεται πραγματικά ενσωματωμένα εξαρτήματα του macOS. Το εξάρτημα αλλάζει από δείγμα σε δείγμα του κακόβουλου λογισμικού. Το Finder.app με ονόματα όπως com.apple.finder.core ή com.apple.finder.monitor, και ένα Software Update.app με com.apple.security.daemon, είναι δύο παραδείγματα. Σε κάθε περίπτωση, εκτελούνται κρυφά και εμφανίζουν το γνήσιο εικονίδιο Finder.icns του macOS.
Το δεύτερο στάδιο είναι ένα λιτό Mach-O αρχείο γραμμένο για Mac με επεξεργαστές Apple. Η επιλογή των επιτιθέμενων να το γράψουν σε Rust είναι σχετικά ασυνήθιστη για macOS infostealers, όπου συνηθέστερες είναι γλώσσες όπως Swift, Go και Objective-C. Αυτό το δυαδικό αρχείο καλεί τη διεπαφή ανάγνωσης μιας ενσωματωμένης βάσης δεδομένων SQLite, επιτρέποντας στο infostealer να διαβάζει απευθείας αρχεία βάσεων δεδομένων.
Το PamStealer εμφανίζει ένα αυθεντικό παράθυρο διαλόγου για κωδικό πρόσβασης, σχεδιασμένο να μοιάζει με αίτημα εξουσιοδότησης συστήματος. Το κείμενο που εμφανίζεται με το παράθυρο γράφει: «Το Maccy θέλει να κάνει αλλαγές. Εισάγετε τον κωδικό πρόσβασής σας για να το επιτρέψετε.» Μόλις ο στόχος συμμορφωθεί, το κακόβουλο λογισμικό επικυρώνει τον κωδικό τοπικά μέσω του PAM API.
«Αυτός ο έλεγχος γίνεται εξ ολοκλήρου μέσω PAM: δεν υπάρχει κλήση σε dscl, security, osascript ή οποιαδήποτε άλλη διεργασία για την επαλήθευση του κωδικού, όπως κάνουν πολλά συνηθισμένα macOS stealers», ανέφερε η Jamf. «Το αποτέλεσμα είναι μια πιο αθόρυβη ρουτίνα που κρατά μόνο έναν επαληθευμένο κωδικό και μια λιγότερη αλυσίδα διεργασιών για να εντοπίσουν οι υπερασπιστές.»
Εάν η επικύρωση αποτύχει, το PamStealer εμφανίζει ξανά τα παράθυρα διαλόγου μέχρι να λάβει τον σωστό κωδικό. Μόλις ο στόχος εισάγει τον σωστό κωδικό πρόσβασης, το PamStealer εμφανίζει ένα μήνυμα που αναφέρει ότι το αρχείο είναι κατεστραμμένο και δεν μπορεί να εγκατασταθεί. Αυτό λειτουργεί ως παραπλανητικό τέχνασμα για να αποτρέψει τον στόχο από το να υποψιαστεί οτιδήποτε.
Το κακόβουλο λογισμικό χρησιμοποιεί τακτικές για να μεγιστοποιήσει τις πληροφορίες που μπορεί να κλέψει. Μία από αυτές είναι να ζητήσει από τον στόχο να παραχωρήσει πρόσβαση πλήρους δίσκου στην πλαστή εφαρμογή Maccy. Περιέχει επίσης κώδικα σχεδιασμένο για πρόσβαση σε λογαριασμούς ethereum.
Οι διάφορες τεχνικές —ιδιαίτερα το δόλωμα Script Editor, ο αυτοδύναμος JXA downloader, το δεύτερο στάδιο σε Rust και η τοπική επικύρωση διαπιστευτηρίων μέσω PAM— είναι όλες αξιοσημείωτες.
«Μαζί, αυτές οι συμπεριφορές δείχνουν πώς τα συνηθισμένα macOS stealers συνεχίζουν να εξελίσσονται, υιοθετώντας πιο αθόρυβες αλυσίδες εκτέλεσης και εγγενείς υλοποιήσεις που μειώνουν τις παραδοσιακές ευκαιρίες ανίχνευσης, παραμένοντας παράλληλα συμβατά με τα τυπικά χαρακτηριστικά του macOS», κατέληξε η Jamf.