Θα θέλαμε να ευχαριστήσουμε το The Citizen Lab για τη συνεργασία, την υποστήριξη και τις συνεισφορές τους σε αυτήν την έρευνα.

  • Η εμπορική χρήση spyware βρίσκεται σε άνοδο, με τους φορείς να αξιοποιούν αυτά τα εξελιγμένα εργαλεία για τη διεξαγωγή επιχειρήσεων επιτήρησης εναντίον ενός αυξανόμενου αριθμού στόχων. Η Cisco Talos έχει νέες λεπτομέρειες για ένα εμπορικό προϊόν spyware που πωλείται από την εταιρεία spyware Intellexa (παλαιότερα γνωστή ως Cytrox).
  • Η έρευνά μας εξετάζει συγκεκριμένα δύο στοιχεία αυτής της σουίτας λογισμικού spyware για κινητά, γνωστά ως "ALIEN" και "PREDATOR", τα οποία συνθέτουν τη ραχοκοκαλιά του εμφυτεύματος spyware. Τα ευρήματά μας περιλαμβάνουν μια εις βάθος ανάλυση της αλυσίδας μόλυνσης, συμπεριλαμβανομένων των διαφόρων δυνατοτήτων κλοπής πληροφοριών των εμφυτευμάτων.
  • Μια βαθιά κατάδυση και στα δύο στοιχεία spyware δείχνει ότι το ALIEN δεν είναι απλώς ένας φορτωτής για το PREDATOR και ρυθμίζει ενεργά τις δυνατότητες χαμηλού επιπέδου που απαιτούνται για το PREDATOR για να κατασκοπεύει τα θύματά του.
  • Αξιολογούμε με μεγάλη βεβαιότητα ότι το λογισμικό υποκλοπής spyware έχει δύο επιπλέον στοιχεία — tcore (κύριο στοιχείο) και kmem (μηχανικός κλιμάκωσης προνομίων) — αλλά δεν μπορέσαμε να αποκτήσουμε και να αναλύσουμε αυτές τις ενότητες.
  • Εάν οι αναγνώστες υποψιάζονται ότι το σύστημά τους μπορεί να έχει παραβιαστεί από εμπορικό λογισμικό υποκλοπής spyware, σκεφτείτε το ενδεχόμενο να ενημερώσετε την ερευνητική ομάδα του Talos στη διεύθυνση talos-mercenary-spyware-help@external.cisco.com για να βοηθήσετε στην περαιτέρω γνώση της κοινότητας σχετικά με αυτές τις απειλές.



ALIEN and PREDATOR μέρος της αυξανόμενης αύξησης της χρήσης spyware

Η χρήση εμπορικού spyware από τους φορείς απειλών έχει αυξηθεί και ο αριθμός των εταιρειών που παρέχουν αυτά τα προϊόντα και τις υπηρεσίες φαίνεται να αυξάνεται συνεχώς. Τα περισσότερα εμπορικά spyware προορίζονται για κρατική χρήση, με εταιρείες όπως η NSO Group να διαφημίζουν τα προϊόντα τους ως τεχνολογία που βοηθά στην πρόληψη της τρομοκρατίας, στη διερεύνηση του εγκλήματος και στην ενίσχυση της εθνικής ασφάλειας. Ωστόσο, τα τελευταία χρόνια, ηθικά και νομικά ζητήματα έχουν στροβιλιστεί γύρω από τη χρήση αυτών των εργαλείων παρακολούθησης, τα οποία έχουν γίνει γνωστά στην κοινότητα ασφαλείας ως «μισθοφόρο λογισμικό κατασκοπείας». Ως απάντηση στην ταχεία διάδοση και την αυξανόμενη ανησυχία για την κατάχρηση αυτών των προϊόντων, στις 27 Μαρτίου 2023, η κυβέρνηση Μπάιντεν-Χάρις υπέγραψε εκτελεστικό διάταγμααπαγορεύοντας στην κυβέρνηση των ΗΠΑ να χρησιμοποιεί εμπορικό λογισμικό υποκλοπής spyware που εγκυμονεί κινδύνους για την εθνική ασφάλεια ή έχει γίνει κατάχρηση από ξένους παράγοντες για να καταστεί δυνατή η παραβίαση των ανθρωπίνων δικαιωμάτων.

Οι προμηθευτές λογισμικού κατασκοπίας φροντίζουν πολύ να κάνουν τα τελικά ωφέλιμα φορτία να είναι δύσκολο να εντοπιστούν, να ληφθούν, να αναλυθούν και να προστατευτούν από αυτά, δημιουργώντας ακολουθίες ανάπτυξης που συχνά απαιτούν ελάχιστη ή καθόλου αλληλεπίδραση με τον χρήστη. Ο μηχανισμός παράδοσης είναι συνήθως μια αλυσίδα εκμετάλλευσης που μπορεί να ξεκινήσει μια εκμετάλλευση με μηδενικό κλικ, όπως το FORCEDENTRY , το οποίο παράγεται από την ισραηλινή εταιρεία spyware NSO Group, ή με έναν σύνδεσμο στον οποίο το θύμα εξαπατάται για να κάνει κλικ (δηλαδή, ένα "ένα κλικ" exploit), όπως αυτό που δημιούργησε η εταιρεία παρακολούθησης Cytrox για να αναπτύξει το δικό της spyware γνωστό ως "PREDATOR". (Σημείωση: Η Cytrox ανήκει στην Intellexa, η οποία πουλά το λογισμικό κατασκοπείας PREDATOR.)

Το PREDATOR είναι ένα ενδιαφέρον κομμάτι μισθοφόρου spyware που κυκλοφορεί τουλάχιστον από το 2019, σχεδιασμένο να είναι ευέλικτο, ώστε να μπορούν να παραδοθούν νέες μονάδες που βασίζονται σε Python χωρίς την ανάγκη επαναλαμβανόμενης εκμετάλλευσης, καθιστώντας το έτσι ιδιαίτερα ευέλικτο και επικίνδυνο.

Νέα ανάλυση από το Talos αποκάλυψε την εσωτερική λειτουργία του PREDATOR και τους μηχανισμούς που χρησιμοποιεί για να επικοινωνεί με το άλλο στοιχείο spyware που αναπτύσσεται μαζί με αυτό, γνωστό ως "ALIEN". Και τα δύο στοιχεία συνεργάζονται για να παρακάμψουν τις παραδοσιακές λειτουργίες ασφαλείας στο λειτουργικό σύστημα Android. Τα ευρήματά μας αποκαλύπτουν την έκταση της συνύπαρξης των δυνατοτήτων μεταξύ PREDATOR και ALIEN, παρέχοντας απόδειξη ότι το ALIEN είναι πολύ περισσότερα από έναν απλό φορτωτή για το PREDATOR, όπως πιστεύαμε παλαιότερα.



Πλαίσιο λογισμικού κατασκοπείας Intellexa

Τα προϊόντα spyware της Intellexa, όπως και τα πιο πρόσφατα εκτεθειμένα εργαλεία spyware, έχουν πολλαπλά στοιχεία που μπορούν να ομαδοποιηθούν σε τρεις κύριους κάδους ευθυγραμμισμένους με τα διαδοχικά στάδια της επίθεσης:


Τα δύο πρώτα - εκμετάλλευση και κλιμάκωση προνομίων - συχνά ομαδοποιούνται σε αλυσίδες εκμετάλλευσης, οι οποίες ξεκινούν με την εκμετάλλευση μιας απομακρυσμένης ευπάθειας για την απόκτηση προνομίων απομακρυσμένης εκτέλεσης κώδικα (RCE), ακολουθούμενα από την παράκαμψη του μετριασμού και την κλιμάκωση των προνομίων, καθώς οι ευάλωτες διεργασίες είναι συχνά λιγότερο προστατευμένες.

Ένα παράδειγμα της αρχικής αλυσίδας καλύπτεται λεπτομερώς σε αυτήν την ανάρτηση ιστολογίου του 2021 από το Google TAG. Η αναφορά περιγράφει πώς οι αντίπαλοι εκμεταλλεύτηκαν πέντε διαφορετικά τρωτά σημεία μηδενικής ημέρας για να παραδώσουν το ALIEN, το εμφύτευμα που είναι υπεύθυνο για τη φόρτωση του λογισμικού κατασκοπείας PREDATOR. Τα τρωτά σημεία, τα οποία ανακαλύφθηκαν το 2021, είναι CVE-2021-37973, CVE-2021-37976, CVE-2021-38000, CVE-2021-38003 — όλα επηρεάζουν το Google Chrome και το CVE-2021-1048 στο Linux Android.

Ενώ το ALIEN και το PREDATOR μπορούν να χρησιμοποιηθούν σε κινητές συσκευές Android και iOS, τα δείγματα που αναλύσαμε σχεδιάστηκαν ειδικά για Android. Για την κλιμάκωση των προνομίων, το λογισμικό υποκλοπής έχει ρυθμιστεί να χρησιμοποιεί μια μέθοδο που ονομάζεται QUAILEGGS ή, εάν το QUAILEGGS δεν υπάρχει, θα χρησιμοποιήσει μια διαφορετική μέθοδο που ονομάζεται "kmem". Τα δείγματα που αναλύσαμε ήταν σε λειτουργία QUAILEGGS.

Δεν υπάρχει τρόπος να γνωρίζουμε με βεβαιότητα ποια ευπάθεια εκμεταλλεύεται το QUAILEGGS χωρίς να έχει πρόσβαση στον ίδιο τον κώδικα. Ωστόσο, αποφασίσαμε να μοιραστούμε την αξιολόγησή μας με την ελπίδα ότι άλλοι ερευνητές θα μπορούσαν να την προσθέσουν.

Εκτιμούμε ότι το QUAILEGS πιθανότατα εκμεταλλεύεται την προαναφερθείσα ευπάθεια zero-day CVE-2021-1048. Με βάση την ανάλυση της βασικής αιτίας της Google , αυτή η ευπάθεια επιτρέπει την έγχυση κώδικα σε προνομιακές διεργασίες, κάτι που ακριβώς συμβαίνει με το ALIEN όταν χρησιμοποιείται το QUAILEGGS. Σύμφωνα με τα αρχεία καταγραφής git ανάπτυξης πυρήνα Linux, η ευπάθεια ήταν δημόσια από τον Αύγουστο του 2020 και διορθώθηκε τον Σεπτέμβριο. Ωστόσο, ορισμένα τηλέφωνα Google Pixel παρέμειναν ευάλωτα μέχρι τον Μάρτιο του 2021 και οι συσκευές Samsung τουλάχιστον έως τον Οκτώβριο του 2021.

Από τα στοιχεία PREDATOR στα οποία είχε πρόσβαση η Cisco Talos, εκτιμούμε ότι υπάρχουν τουλάχιστον δύο ακόμη στοιχεία που δεν μπορέσαμε να αναλύσουμε: "tcore" και "kmem".

Η λειτουργική μονάδα tcore Python φορτώνεται από το loader.py, τη βασική μονάδα οργάνων, αφού ολοκληρωθούν όλες οι αρχικοποιήσεις.

Εισαγωγή μονάδας φόρτωσης tcore.

Εάν το tcore αποτύχει να φορτώσει, ο φορτωτής διαγράφει το ληφθέν κρυπτογραφημένο αρχείο SQLite3. Προσπαθεί πρώτα να διαγράψει το αρχείο και, αν αποτύχει, επιχειρεί να ανοίξει το αρχείο για λειτουργίες εγγραφής και να γράψει μηδέν byte σε αυτό για να το σκουπίσει, εξαλείφοντας αποτελεσματικά τα περιεχόμενα του αρχείου χωρίς να διαγραφεί το ίδιο το αρχείο.

Εκτιμούμε ότι η λειτουργική μονάδα tcore Python περιέχει τη βασική λειτουργία spyware. Η ανάλυση του εγγενούς κώδικα μέσα στο ALIEN και το PREDATOR υποδεικνύει ότι το λογισμικό κατασκοπείας μπορεί να εγγράψει ήχο από τηλεφωνικές κλήσεις και εφαρμογές που βασίζονται σε VOIP. Μπορεί επίσης να συλλέξει πληροφορίες από μερικές από τις πιο δημοφιλείς εφαρμογές, όπως το Signal, το WhatsApp και το Telegram. Οι περιφερειακές λειτουργίες περιλαμβάνουν τη δυνατότητα απόκρυψης εφαρμογών και αποτροπής της εκτέλεσης εφαρμογών κατά την επανεκκίνηση της συσκευής.

Το δεύτερο στοιχείο που μας λείπει είναι το τεχνούργημα που υλοποιεί τη μονάδα KMEM. Με βάση την ανάλυσή μας για την ενότητα «_km» python, εκτιμούμε ότι το KMEM παρέχει αυθαίρετη πρόσβαση ανάγνωσης και εγγραφής στον χώρο διευθύνσεων του πυρήνα.

Η πρόσβαση που αποκτήθηκε με την εκμετάλλευση του CVE-2021-1048 θα επέτρεπε στο λογισμικό υποκλοπής spyware να εκτελέσει τις περισσότερες από τις δυνατότητές του, συμπεριλαμβανομένης της φόρτωσης και της εκτέλεσης πρόσθετων ωφέλιμων φορτίων σε επίπεδο ΣΥΣΤΗΜΑΤΟΣ. Τελικά, αυτό θα μπορούσε να οδηγήσει στο να αποκτήσει ο χρήστης πρόσβαση στον πυρήνα και να κάνει αλλαγές στις ρυθμίσεις διαμόρφωσης στο kmem.



Αρχιτεκτονική και επισκόπηση εμφυτευμάτων spyware


Ομαδική εργασία ΑΛΛΗΝΩΝ/ΑΡΠΗΚΤΙΚΩΝ

Το εμφύτευμα spyware εκτελεί μια ποικιλία διαδικασιών για να παρακάμψει τους εγγενείς περιορισμούς του μοντέλου ασφαλείας του Android. Το spyware παίρνει το "__progname" της διαδικασίας που εκτελείται αυτήν τη στιγμή και στη συνέχεια το χρησιμοποιεί για να αποφασίσει ποιο σύνολο λειτουργιών θα καλέσει. Οι διεργασίες που αναζητήθηκαν είναι: zygote64, system_server, installed, audioserver (alien_voip) και μια δεύτερη έκδοση του audioserver (alien_recorder).


Οι αλυσίδες κλήσεων zygote64 και system_server είναι αυτές που κάνουν τη μεγαλύτερη δουλειά, ενώ η εγκατεστημένη αλυσίδα κλήσεων ρυθμίζει τις δομές αρχείων για τα άλλα τμήματα του spyware. Κάθε μία από αυτές τις αλυσίδες κλήσεων δημιουργεί μια δομή διεργασίας που χρησιμοποιείται για την υποκλοπή συγκεκριμένων εντολών ioctl, όπου το λογισμικό υποκλοπής χρησιμοποιεί τη λειτουργικότητα αυτής της διαδικασίας για να καταχραστεί το πλαίσιο του SELinux για να παραχωρήσει διαφορετική λειτουργικότητα στις άλλες διεργασίες.

Η παρακάτω εικόνα δείχνει ένα παράδειγμα στο οποίο η διαδικασία ζυγωτή που εφαρμόζεται από την πολιτική SELinux αποτρέπει κάθε είδους πρόσβαση σε πρίζες, εκτός από τις τοπικές τύπου Unix.

Πηγή: https://android.googlesource.com/platform/system/sepolicy/+/master/private/app_zygote.te#130

Ωστόσο, αποθηκεύοντας τον εγγεγραμμένο ήχο σε μια κοινόχρηστη περιοχή μνήμης χρησιμοποιώντας το ALIEN, αποθηκεύοντάς τον στη δισκέτα και εξάγοντας τον με το PREDATOR, αυτός ο περιορισμός μπορεί να παρακαμφθεί. Αυτή είναι μια απλοποιημένη άποψη της διαδικασίας — λάβετε υπόψη ότι το ALIEN εγχέεται στον χώρο διευθύνσεων του ζυγώτη για να περιστραφεί σε εξειδικευμένες προνομιακές διεργασίες εντός του μοντέλου άδειας Android. Δεδομένου ότι το zygote είναι η μητρική διαδικασία των περισσότερων διεργασιών Android, μπορεί να αλλάξει στα περισσότερα UID και να μεταβεί σε άλλα περιβάλλοντα SELinux που διαθέτουν διαφορετικά προνόμια. Επομένως, αυτό καθιστά το zygote έναν εξαιρετικό στόχο για την έναρξη λειτουργιών που απαιτούν πολλαπλά σύνολα αδειών.

Η διαμόρφωση του στοιχείου ALIEN περιέχει τη διεύθυνση URL για τη λήψη του στοιχείου PREDATOR. Κατά την προετοιμασία, ξεκινά τη λήψη και καλεί τη συνάρτηση main_exec() εισάγοντάς την χρησιμοποιώντας dlsym(), αρχικοποιώντας έτσι το κύριο στοιχείο του spyware. Δεν είναι σαφές πώς ξεκίνησε αρχικά το ALIEN, αλλά είναι πολύ πιθανό να φορτώνεται από τον κώδικα του κελύφους που εκτελείται από τα exploits που χρησιμοποιήθηκαν στο αρχικό στάδιο.

Λήψη διεύθυνσης URL για το PREDATOR στο ALIEN.

Το ALIEN είναι επίσης υπεύθυνο για την ενημέρωση του PREDATOR μετά, για παράδειγμα, δευτερεύουσα εκμετάλλευση.

Εάν η διαμόρφωση περιέχει τη συμβολοσειρά « _refresh », το αρχείο που κατεβάσατε θα αποθηκευτεί ως fs.db που θα υποβληθεί σε επεξεργασία από τη μονάδα sqlimper.py που βρίσκεται μέσα στο PREDATOR και όχι στο ALIEN, ενισχύοντας έτσι τα ευρήματά μας ότι αυτές οι δύο ενότητες εξαρτώνται σε μεγάλο βαθμό από το καθένα άλλα. Αξίζει να σημειωθεί ότι το fs.db είναι μια κρυπτογραφημένη βάση δεδομένων SQLite3 που μπορεί να περιέχει νέες ρυθμίσεις παραμέτρων ή σειριακό κώδικα Python, καθιστώντας το εξαιρετικά αρθρωτό και προσαρμόσιμο spyware.

Το ALIEN και το PREDATOR επικοινωνούν επίσης μέσω συναλλαγών με binder. Κατά τις ρουτίνες αρχικοποίησής του, το ALIEN αγκιστρώνει το ioctl() για να συλλάβει τις συναλλαγές συνδετικού υλικού που φτάνουν στη διεργασία του κεντρικού υπολογιστή του. Ένα λεπτομερές παράδειγμα αυτής της μεθόδου επικοινωνίας μπορείτε να δείτε στην περιγραφή της λειτουργίας εγγραφής ήχου που ακολουθεί.



Επισκόπηση ΑΛΙΕΝ

Το ALIEN είναι το κύριο εξάρτημα εργασίας για το λογισμικό κατασκοπείας. Μόλις αναπτυχθεί, πραγματοποιεί λήψη και ενεργοποίηση των υπόλοιπων στοιχείων σύμφωνα με τη διαμόρφωση που έχει κωδικοποιηθεί στο δικό του δυαδικό αρχείο. Αξιολογούμε με μεγάλη σιγουριά ότι το ALIEN εγχέεται σε έναν προνομιακό χώρο διευθύνσεων διεργασιών και στη συνέχεια εκτοξεύεται σε ένα ανεξάρτητο νήμα.

Αρχικά, το ALIEN ελέγχει αν έχει φορτωθεί στο zygote64. Εάν αυτός ο έλεγχος είναι θετικός, θα προχωρήσει και θα εκτελέσει τις δραστηριότητές του. Εάν χρειαστεί, θα πραγματοποιήσει λήψη του στοιχείου PREDATOR από έναν ιστότοπο φιλοξενίας που ορίζεται στη διαμόρφωση. Προαιρετικά, αυτό μπορεί να είναι μια ανανέωση, οπότε ο ήδη υπάρχων PREDATOR θα αντικατασταθεί από μια νέα έκδοση, που σημαίνει ότι πραγματοποιήθηκε μια δεύτερη εκμετάλλευση της συσκευής-στόχου και θα εγκατασταθεί μια νέα έκδοση του tcore. Λάβετε υπόψη ότι αυτός είναι ο πυρήνας και όχι ολόκληρο το ωφέλιμο φορτίο PREDATOR. Η διαμόρφωση του ALIEN περιλαμβάνει επίσης τη θέση για τον κατάλογο εργασίας του, η οποία χρησιμοποιείται ενεργά για την εκτέλεση εργασιών όπως η εξαγωγή δεδομένων κ.λπ.

Ένα παράδειγμα ενός τέτοιου καταλόγου εργασίας είναι "/data/local/tmp/wd/". Μπορείτε να βρείτε τεχνουργήματα spyware, όπως αρχεία βάσης δεδομένων PREDATOR και κρυπτογραφημένα με SQLite3.

ΜΟΝΟΠΑΤΙΣΚΟΠΟΣ
/data/local/tmp/wd/pred[.]soΚοινόχρηστη βιβλιοθήκη λογισμικού κατασκοπίας PREDATOR
/data/local/tmp/wd/fs[.]dbΑρχείο SQLITE3 που περιέχει πρόσθετα ωφέλιμα φορτία



Το ALIEN δεν είναι απλώς ένας φορτωτής αλλά και ένας εκτελεστής — τα πολλαπλά νήματα του θα συνεχίσουν να διαβάζουν εντολές που προέρχονται από το PREDATOR και να τις εκτελούν, παρέχοντας στο λογισμικό υποκλοπής τα μέσα για να παρακάμψει ορισμένες από τις λειτουργίες ασφαλείας του πλαισίου Android. Πριν από την εκκίνηση του PREDATOR, υπάρχουν πολλά βήματα που πρέπει να εκτελεστούν:



Η σύνδεση του ioctl() API στο libbinder. Έτσι η χρήση μιας βιβλιοθήκης ανοιχτού κώδικα που ονομάζεται xHook είναι ένα από τα μέσα που χρησιμοποιεί για να επικοινωνεί με το PREDATOR. Η κατανεμημένη φύση του spyware απαιτεί επικοινωνία και συγχρονισμό στοιχείων για να λειτουργήσει σωστά. Το πλαίσιο λογισμικού κατασκοπείας έχει πολλά μέσα για την επίτευξη αυτής της επικοινωνίας και του συγχρονισμού.

Το ALIEN αγκιστρώνει τη συνάρτηση ioctl() στο libbinder.so, το οποίο είναι υπεύθυνο για την επικοινωνία μεταξύ διεργασιών (IPC) στο πλαίσιο Android. Τα άγκιστρα ioctl είναι δομημένα έτσι ώστε να επιτρέπουν στο εμφύτευμα να επικοινωνεί με τον εαυτό του (σε διχαλώδεις διεργασίες) και με άλλα εξαρτήματα του εμφυτεύματος.

Hooking ioctl.

Όταν το εμφύτευμα αρχίζει να εκτελείται, επιλέγει σε ποιο πλαίσιο εφαρμογής εκτελείται. Αφού ξεκινήσει αυτή η δραστηριότητα, θα καταγράψει το αναγνωριστικό νήματος στο οποίο εκτελείται μέσα και, στη συνέχεια, θα καταχωρήσει ένα άγκιστρο στη δραστηριότητα ioctl σε αυτήν τη διαδικασία. Αυτό το άγκιστρο ioctl διαχειρίζεται μια ποικιλία διαφορετικών εντολών binder, μέσα στην εντολή BINDER_WRITE_READ IOCTL. Αυτό το άγκιστρο φιλτράρει όλες τις συναρτήσεις BINDER_WRITE_READ στις εντολές χειριστή του ίδιου του ALIEN.

Οι εντολές που ανακατευθύνονται περιλαμβάνουν BC_TRANSACTION, BR_TRANSACTION, BR_REPLY, BC_REPLY. Αυτό επιτρέπει τον έλεγχο των πληροφοριών εντός και εκτός της διαδικασίας στόχου. Σε καθεμία από τις επιλεγμένες διαδικασίες που αναφέρονται παραπάνω, υπάρχουν διαφορετικές ενέργειες που θα μπορούσε στη συνέχεια να κάνει μια κακόβουλη μονάδα στο σύστημα.

Αυτό δημιουργεί έναν αποτελεσματικό τρόπο επικοινωνίας μέσα στο εμφύτευμα, ενώ επιτρέπει επίσης στο εμφύτευμα να κρύβεται σε άλλες νόμιμες διαδικασίες του συστήματος. Το εμφύτευμα επικοινωνεί διακριτικά με τον εαυτό του, χωρίς δείκτες που βασίζονται στο δίκτυο και αποφεύγοντας τους περιορισμούς του SELinux.

Στη διαδικασία installID, το εμφύτευμα αγκιστρώνει τα BR_TRANSACTION και BC_REPLY. Κάθε μία από τις εντολές κάνει την ίδια ενέργεια. Στη συνέχεια δημιουργεί ένα νήμα και κινείται προς την αναδρομική αλλαγή των δικαιωμάτων 26 καταλόγων που ανήκουν σε εφαρμογές και μέσα των χρηστών. Κάθε εφαρμογή έχει μια λίστα με σημαίες που σχετίζονται με αυτήν, αναφέροντας ποιος προμηθευτής θα έχει πιθανώς την εφαρμογή και εάν θα εφαρμόσει τα νέα δικαιώματα στην εν λόγω εφαρμογή. Σε αυτό το δείγμα, σε κάθε εφαρμογή δίνονται τα δικαιώματα του 777, αν και το λογισμικό κατασκοπείας υποστηρίζει μια επέκταση οποιασδήποτε τιμής. Το ALIEN τους δίνει επίσης ένα περιβάλλον SELinux που συνάδει με τη διαμόρφωση του spyware "u:object_r:shell_data_file:s0" χρησιμοποιώντας το συνάρτηση setfilecon. Αυτά τα αρχεία (εφαρμογές) αντιγράφονται στον κατάλογο ρυθμίσεων όπου βρίσκεται το λογισμικό υποκλοπής spyware, πιθανόν να εξαχθούν αργότερα.


Επισκόπηση PREDATOR

Το PREDATOR είναι ένα αρχείο pyfrozen ELF που περιέχει σειριακές ενότητες Python και εγγενή κώδικα που χρησιμοποιείται είτε από τις ενσωματωμένες λειτουργικές μονάδες είτε από τις ληφθείσες λειτουργικές μονάδες. Το ALIEN εκκινεί το PREDATOR, καλώντας την εξαγόμενη συνάρτηση main_exec() με μια παράμετρο που περιέχει δύο περιγραφείς αρχείων. Αυτοί είναι περιγραφείς αρχείων κοινής περιοχής μνήμης που δημιουργήθηκαν από την ALIEN για να χρησιμοποιηθούν ως μέσο επικοινωνίας μεταξύ των δύο στοιχείων.

Η συνάρτηση PREDATOR main_exec() είναι μια απλή συνάρτηση που θα αντιγράψει τις λαβές αρχείων και θα εκκινήσει την πραγματική κύρια λειτουργία του PREDATOR σε ένα εγγενές νήμα, διασφαλίζοντας έτσι ότι μπορεί να εκτελεστεί χωρίς να αποκλειστεί από διεργασίες ALIEN ή την εκτέλεση της κύριας διεργασίας.


Διαδικασία αρχικοποίησης για PREDATOR.

Αυτή η απειλή θα καλέσει τη συνάρτηση startPy() που προετοιμάζει το περιβάλλον χρόνου εκτέλεσης της Python που θα χρησιμοποιηθεί από το λογισμικό υποκλοπής. Όπως κάθε άλλο δυαδικό αρχείο pyfrozen, ξεκινάει εισάγοντας τη συνηθισμένη ενότητα "__main__". Στη συνέχεια, ορίζει τα ακόλουθα χαρακτηριστικά στο "__main__":

Ονομα

Χρήση

SHMEMFD_PC2

Κοινόχρηστη λαβή μνήμης για επικοινωνία με ALIEN

SHMEMFD_VSS

Κοινόχρηστη λαβή μνήμης για επικοινωνία με ALIEN

DEV

Καθορίζει εάν το τρέχον εμφύτευμα PREDATOR είναι έκδοση ανάπτυξης ή όχι. Αυτό θα έχει αντίκτυπο στον όγκο της καταγραφής που εκτελείται

αναγνωριστικό εγκατάστασης

Ένα αναγνωριστικό εγκατάστασης που μπορεί να σχετίζεται με το θύμα, τη συσκευή ή την καμπάνια. Η τιμή είναι κωδικοποιημένη στον χρόνο αρχικοποίησης. 


Οι τελικές δραστηριότητες είναι η εισαγωγή μιας άλλης ενότητας που ονομάζεται loader της οποίας η κύρια υπορουτίνα, μια συνάρτηση Python που ονομάζεται "mainExec" θα κληθεί. Είναι ενδιαφέρον να σημειωθεί ότι το αναγνωριστικό εγκατάστασης είναι κωδικοποιημένο στον εγγενή κώδικα με μια συγκεκριμένη τιμή, αλλά, στη λειτουργική μονάδα Python loader.py, η τιμή αρχικοποιείται με μια τιμή κράτησης θέσης. Μόλις αρχικοποιηθεί σωστά ο χρόνος εκτέλεσης της Python, ο PREDATOR θα προχωρήσει στην προετοιμασία και την εκκίνηση του στοιχείου spyware tcore.


Δυνατότητες spyware

Όταν χρησιμοποιούνται μαζί, αυτά τα εξαρτήματα παρέχουν μια ποικιλία δυνατοτήτων κλοπής πληροφοριών, επιτήρησης και απομακρυσμένης πρόσβασης. Οι λειτουργίες που περιγράφονται εδώ είναι απλώς ένα υποσύνολο των περιεκτικών δυνατοτήτων του spyware. Προς το παρόν, το Talos δεν έχει πρόσβαση σε όλα τα στοιχεία του spyware. Επομένως, αυτή η λίστα δυνατοτήτων δεν θα πρέπει να θεωρείται εξαντλητική. Πιστεύουμε ότι δυνατότητες όπως η παρακολούθηση γεωγραφικής θέσης, η πρόσβαση στην κάμερα ή η δυνατότητα να εμφανίζεται σαν να απενεργοποιείται το τηλέφωνο μπορεί να έχουν εφαρμοστεί στη μονάδα tcore.



Αυθαίρετη εκτέλεση κώδικα

Το ALIEN μπορεί επίσης να διαβάσει και να εκτελέσει κώδικα από καθορισμένες τοποθεσίες στο σύστημα αρχείων. Για παράδειγμα, το εμφύτευμα μπορεί να εισάγει κώδικα που διαβάστηκε νωρίτερα από το "/system/fonts/NotoColorEmoji.ttf" στη μνήμη διεργασίας system_server για εκτέλεση.

Κάντε την ένεση και περιμένετε το αποτέλεσμα.

Η αρχιτεκτονική του spyware είναι εξαιρετικά αξιόπιστη στον παραλληλισμό που βασίζεται σε διαδικασίες. Ο κώδικας φλοιού εισάγεται μετά από μια κλήση fork(), η θυγατρική διεργασία θα εισάγει τον κώδικα φλοιού, θα τον εκτελέσει και θα βγει. Εν τω μεταξύ, η γονική διαδικασία θα περιμένει την εκτέλεση του κώδικα φλοιού για πέντε δευτερόλεπτα πριν επιστρέψει. Δεδομένης της ροής κώδικα, εκτιμούμε με μέτρια σιγουριά ότι ο κώδικας φλοιού που εισάγεται λαμβάνει ως παράμετρο το περιεχόμενο του "/data/system/.0".

Η συνολική διαδικασία έγχυσης επιτυγχάνεται χρησιμοποιώντας ptrace() και mmap() για την εισαγωγή του κώδικα στη διεργασία στόχο.

Συνολική ροή έγχυσης.



εγγραφή ήχου

Αυτό το λογισμικό κατασκοπείας μπορεί να εγγράψει ήχο από διαφορετικές πηγές με διάφορους τρόπους. Μπορεί να εγγράψει από μικρόφωνο, ακουστικά και κλήσεις που βασίζονται σε VOIP, χρησιμοποιώντας τεχνικές σε βάθος, όπως το αγκίστρωση memcpy σε διαδικασίες που σχετίζονται με τον ήχο, ή πιο απλά, δημιουργώντας μια διεπαφή RECORD χρησιμοποιώντας την εγγενή βιβλιοθήκη OpenSLES. Αυτή η δυνατότητα κατανέμεται στα δύο στοιχεία και όπως κάθε άλλο στοιχείο μπορεί να ξεκινήσει από το περιβάλλον Python που έχει φορτωθεί από το PREDATOR.

Κωδικοί εντολών συσκευής εγγραφής ήχου.

Το εσωτερικό όνομα αυτής της δυνατότητας είναι pc2. Το παραπάνω στιγμιότυπο οθόνης δείχνει την προετοιμασία του περιβάλλοντος Python με τις σταθερές που θα χρησιμοποιηθούν ως εντολές μεταξύ των μονάδων ALIEN και PREDATOR. Το PREDATOR υλοποιεί τον εγγενή κώδικα που θα είναι υπεύθυνος για την επικοινωνία με το ALIEN, στη μία πλευρά, και εκθέτει αυτόν τον κώδικα στον διερμηνέα Python, ώστε να μπορεί να κληθεί από τη λειτουργική μονάδα tcore.

Το ALIEN επιχειρεί να συνδέσει τα ακόλουθα API στις βιβλιοθήκες ήχου που χρησιμοποιούνται από μια διεργασία. Τα API συνδέονται χρησιμοποιώντας το πλαίσιο xhook . Αυτά τα άγκιστρα έχουν δημιουργηθεί για να αντιγράψουν τα δεδομένα προέλευσης που εξυπηρετούνται στα νόμιμα API σε ένα buffer που εκχωρείται και καθορίζεται από το λογισμικό κατασκοπείας.

Όνομα Lib

Λειτουργία για αγκίστρωση

libaudioutils.έτσι

memcpy_by_audio_format

.*\\libaudiohal.*.so$

memcpy

.*\\libaudioflinger.so$

memcpy

Άγκιστρα που δημιουργήθηκαν σε βιβλιοθήκες ήχου χρησιμοποιώντας xhook.

Ένα άλλο σύνολο μέτρων υποκλοπής που αναπτύχθηκε από την ALIEN περιλαμβάνει τη ρύθμιση αγκίστρων ioctl και διεπαφής καταγραφής. Αυτά τα άγκιστρα παρακολουθούν και προσδιορίζουν τις λειτουργίες που εκτελούνται/αιτούνται από τον καταγραφέα για την αντιγραφή δεδομένων σε τοποθεσίες που ορίζονται από το λογισμικό κατασκοπείας.

Αυτοί οι μηχανισμοί στοχεύουν τη διαδικασία διακομιστή ήχου στη συσκευή και προορίζονται για την ουσιαστική εγγραφή ήχου από τις διεπαφές VOIP και εγγραφής φωνής. Παρόλο που ολόκληρη η υποδομή για την ενεργοποίηση της εγγραφής φωνής έχει ρυθμιστεί από την ALIEN, λειτουργεί κυρίως από το PREDATOR, το οποίο είναι υπεύθυνο για την έκδοση εντολών είτε για έναρξη είτε για διακοπή της εγγραφής. Αυτό είναι ένα ακόμη παράδειγμα της στενής σχέσης μεταξύ ALIEN και PREDATOR για την πραγματοποίηση βασικών κακόβουλων δραστηριοτήτων στις μολυσμένες συσκευές.


Προσθήκη πιστοποιητικών στο κατάστημα

Το λογισμικό κατασκοπείας μπορεί επίσης να προσθέσει πιστοποιητικά στις τρέχουσες αρχές πιστοποιητικών αξιόπιστων από τον χρήστη γράφοντας το δημόσιο πιστοποιητικό της αρχής έκδοσης πιστοποιητικών (CA) στη διαδρομή "/data/misc/user/0/cacerts-added", όπως φαίνεται παρακάτω.


Παρόλο που το λογισμικό υποκλοπής έχει υψηλά προνόμια, δεν επιχειρεί να προσθέσει τα πιστοποιητικά σε επίπεδο συστήματος. Αυτό το είδος λειτουργίας θα μπορούσε να επηρεάσει την κανονική λειτουργία της συσκευής. Ορισμένες εκδόσεις του Android θα απαιτούσαν ακόμη και την επαναπροσάρτηση του συστήματος αρχείων με δικαιώματα ανάγνωσης-εγγραφής. Εάν κάτι πήγαινε στραβά κατά την αποκρυπτογράφηση TLS σε επίπεδο συστήματος, η συσκευή μπορεί να γίνει ασταθής, πιθανότατα να αποτρέψει τα θύματα. Από την πλευρά ενός εισβολέα, οι κίνδυνοι υπερτερούν της ανταμοιβής, καθώς με τα πιστοποιητικά σε επίπεδο χρήστη, το λογισμικό υποκλοπής spyware μπορεί ακόμα να εκτελέσει αποκρυπτογράφηση TLS σε οποιαδήποτε επικοινωνία εντός του προγράμματος περιήγησης.



Απόκρυψη εφαρμογής και αποτροπή εκτέλεσης κατά την επανεκκίνηση

Διαβάστε τα περιεχόμενα στο "/data/system/.0" και χρησιμοποιήστε το ως είσοδο για τη δημιουργία αγκίστρων στο χρόνο εκτέλεσης Android (ART) χρησιμοποιώντας μια προσαρμοσμένη έκδοση του πλαισίου YAHFA . Ο τρόπος που λειτουργεί το hooking είναι ότι το ALIEN περιέχει ένα ενσωματωμένο αρχείο DEX το οποίο φορτώνεται χρησιμοποιώντας τη μέθοδο InMemoryClassLoader().

Ενσωματωμένο DEX στο ALIEN

Η προσαρμοσμένη έκδοση μέσα στο DEX περιέχει, κάτι που φαίνεται να είναι ένα πρόσθετο, που ονομάζεται "com.jnative.pluginshideapp", το οποίο εφαρμόζει τις μεθόδους που αναφέρονται παρακάτω.

  • getInstalledApplications
  • getInstalledPackages
  • queryIntentActivitiesInternal
  • queryIntentReceiversInternal

Κακόβουλα πρόσθετα με Hooks που έχουν καθοριστεί για Package Manager API.

Το αρχείο DEX χρησιμοποιεί έτσι αυτά τα άγκιστρα για δύο βασικούς σκοπούς:

  • Απόκρυψη εφαρμογών/πακέτων : Η προσθήκη στο DEX μπορεί να συνδέσει και να φιλτράρει ένα συγκεκριμένο όνομα πακέτου/εφαρμογής από τη λίστα των εγκατεστημένων πακέτων και εφαρμογών.
  • Αποτροπή εκτέλεσης κατά την επανεκκίνηση : Το πρόσθετο μπορεί επίσης να συνδεθεί και να χρησιμοποιηθεί για το φιλτράρισμα συγκεκριμένων ονομάτων από τη λίστα πακέτων/εφαρμογών που θα εκτελεστούν όταν λαμβάνεται η πρόθεση BOOT_COMPLETED μέσω μετάδοσης.




Φιλτράρισμα εφαρμογών και πακέτων με βάση το πεδίο «PackageName» τους.

Για να φιλτράρετε τις λίστες εφαρμογών/πακέτων για απόκρυψη ή απενεργοποίηση τους κατά την επανεκκίνηση, το αρχείο DEX συνδέει τις αρχικές κλήσεις API, αντικαθιστώντας τις με τον δικό του προσαρμοσμένο κώδικα. Κάθε φορά που γίνεται μια κλήση στη μέθοδο hooked, ο προσαρμοσμένος κωδικός θα ελέγχει τη λίστα προορισμών έναντι της δικής του λίστας, αφαιρώντας τυχόν αντιστοιχίσεις ονομάτων εφαρμογής και πακέτων που σκοπεύει να κρύψει. Το φιλτράρισμα της λίστας ακολουθείται από την κλήση στο αρχικό API με τη φιλτραρισμένη λίστα να χρησιμοποιείται πλέον ως επιχείρημά της.

Ο κώδικας που αναλύσαμε υλοποιεί μόνο τη μετάδοση BOOT_COMPLETED, η οποία εμποδίζει την εκκίνηση μιας εφαρμογής μετά την επανεκκίνηση. Αυτή η ίδια μέθοδος θα μπορούσε να εφαρμοστεί και για άλλες εκπομπές, μοντελοποιώντας τη συμπεριφορά άλλων εφαρμογών στη διαδικασία. Για παράδειγμα, θα μπορούσε να κάνει το ίδιο για την ειδοποίηση εκπομπής SMS_RECEIVED, εμποδίζοντας τα SMS να φτάσουν στον χρήστη. Αυτή μπορεί να θεωρηθεί μια πιο επιθετική μέθοδος χρήσης υποκλοπής αντί της πιο συχνά χρησιμοποιούμενης τεχνικής εγκατάστασης μιας εφαρμογής που λαμβάνει εκπομπές SMS_RECEIVED με υψηλότερη προτεραιότητα.


Λάβετε πληροφορίες συστήματος

Το spyware χρησιμοποιεί μια ποικιλία πηγών για τη συλλογή πληροφοριών σχετικά με το σύστημα. Θα απαριθμήσει διάφορους καταλόγους στο σύστημα αρχείων και θα διαβάσει πολλά αρχεία για να εξαγάγει όσα περισσότερα στατιστικά διαθέσιμα δεδομένα από τη μολυσμένη συσκευή.



Απαρίθμηση καταλόγων

Το εμφύτευμα ALIEN θα λάβει πρώτα το όνομα του κατασκευαστή της συσκευής από την ιδιότητα συστήματος "ro.product.manufacturer". Ελέγχει για συγκεκριμένους κατασκευαστές από μια ενσωματωμένη λίστα:

  • Samsung
  • Huawei
  • Oppo
  • Xiaomi

Εάν κάποιο από αυτά τα ονόματα κατασκευαστών ταιριάζει, θα απαριθμήσει αναδρομικά τα περιεχόμενα των ακόλουθων καταλόγων στο δίσκο:

Τύπος

καταλόγους

Μηνύματα

/data/data/com.samsung.android.messaging

Επαφές

/data/data/com.samsung.android.providers.contacts

/data/data/com.android.providers.contacts

Μεσο ΜΑΖΙΚΗΣ ΕΝΗΜΕΡΩΣΗΣ

/data/data/com.samsung.android.providers.media

/data/data/com.android.providers.media

/data/data/com.google.android.providers.media

/data/media/0

/δεδομένα/μέσα

/data/data/com.google.android.providers.media.module

/data/data/com.android.providers.media.module

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ

/data/data/com.samsung.android.email.provider

com.google.android.gm

Τηλεφωνία

/data/data/com.android.providers.telephony

Εφαρμογές μέσων κοινωνικής δικτύωσης

/data/data/com.instagram.android

/data/data/com.facebook.orca

/data/data/com.twitter.android

Εφαρμογές ανταλλαγής μηνυμάτων

/data/data/com.skype.raider

/data/data/jp.naver.line.android

/data/data/com.whatsapp

/data/data/org.telegram.messenger

/data/data/com.viber.voip

/data/data/com.tencent.mm (WeChat)

/data/data/org.thoughtcrime.securesms

/data/data/com.google.android.apps.messaging

Κατάλογος εργασίας ALIEN

/data/local/tmp/wd - Αυτός είναι ο κατάλογος που χρησιμοποιείται από το ALIEN για την αποθήκευση κλεμμένων δεδομένων από τη συσκευή.

Εφαρμογές προγράμματος περιήγησης

/data/data/com.android.chrome



Λήψη δεδομένων διαμόρφωσης

Το εμφύτευμα συλλέγει πληροφορίες διαμόρφωσης, αλλά θα συλλέγει επίσης πληροφορίες επαφών, κλήσεων και μηνυμάτων αντιγράφοντας το περιεχόμενο των αρχείων που αναφέρονται παρακάτω.

Το εμφύτευμα θα ελέγξει ξανά για τα ονόματα των κατασκευαστών και στη συνέχεια θα διαβάσει δεδομένα από τα ακόλουθα αρχεία:

  • /data/misc/wifi/.WifiConfigStore.xml
  • /data/local/tmp/wd/WifiConfigStore.xml
  • /data/data/com.android.providers.contacts/databases/contacts2.db-wal
  • /data/data/com.android.providers.media/databases/contacts2.db-wal
  • /data/data/com.android.providers.contacts/databases/contacts2.db-shm
  • /data/data/com.android.providers.media/databases/contacts2.db-shm
  • /data/data/com.android.providers.contacts/databases/contacts2.db
  • /data/data/com.android.providers.media/databases/contacts2.db
  • /data/data/com.android.providers.contacts/databases/calls.db-wal
  • /data/data/com.android.providers.media/databases/calls.db-wal
  • /data/data/com.android.providers.contacts/databases/calls.db-shm
  • /data/data/com.android.providers.media/databases/calls.db-shm
  • /data/data/com.android.providers.contacts/databases/calls.db-journal
  • /data/data/com.android.providers.media/databases/calls.db-journal
  • /data/data/com.android.providers.contacts/databases/calls.db
  • /data/data/com.android.providers.media/databases/calls.db
  • /data/data/com.android.providers.telephony/databases/mmssms.db-wal
  • /data/data/com.android.providers.media/databases/mmssms.db-wal
  • /data/data/com.android.providers.telephony/databases/mmssms.db-shm
  • /data/data/com.android.providers.media/databases/mmssms.db-shm
  • /data/data/com.android.providers.telephony/databases/mmssms.db
  • /data/data/com.android.providers.media/databases/mmssms.db

Το περιεχόμενο που λαμβάνεται γράφεται στη συνέχεια στο "/data/local/tmp/wd/", πριν από την εξαγωγή. Αυτή μπορεί να θεωρηθεί μια μέθοδος χαμηλού επιπέδου συλλογής πληροφοριών. Το λογισμικό κατασκοπείας με λιγότερα προνόμια στο σύστημα χρησιμοποιεί συνήθως το API πλαισίου Android για τη συλλογή τέτοιων πληροφοριών. Αυτή η μέθοδος, ωστόσο, απαιτεί αλληλεπίδραση με τον χρήστη για την παροχή των απαραίτητων αδειών.


Κάλυψη


Το Cisco Secure Endpoint (πρώην AMP για Endpoints) είναι ιδανικό για την αποτροπή της εκτέλεσης του κακόβουλου λογισμικού που περιγράφεται σε αυτήν την ανάρτηση. Δοκιμάστε το Secure Endpoint δωρεάν εδώ.

Η σάρωση ιστού του Cisco Secure Web Appliance αποτρέπει την πρόσβαση σε κακόβουλους ιστότοπους και εντοπίζει κακόβουλο λογισμικό που χρησιμοποιείται σε αυτές τις επιθέσεις.

Το Cisco Secure Email (πρώην Cisco Email Security) μπορεί να αποκλείσει κακόβουλα μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται από φορείς απειλών ως μέρος της καμπάνιας τους. Μπορείτε να δοκιμάσετε το Secure Email δωρεάν εδώ .

Οι συσκευές Cisco Secure Firewall (πρώην Τείχος προστασίας επόμενης γενιάς και Firepower NGFW) όπως το Threat Defense Virtual , το Adaptive Security Appliance και το Meraki MX μπορούν να ανιχνεύσουν κακόβουλη δραστηριότητα που σχετίζεται με αυτήν την απειλή.

Το Cisco Secure Malware Analytics (Threat Grid) εντοπίζει κακόβουλα δυαδικά αρχεία και ενσωματώνει προστασία σε όλα τα προϊόντα Cisco Secure.

Η Umbrella , η ασφαλής πύλη διαδικτύου (SIG) της Cisco, αποκλείει τη σύνδεση των χρηστών σε κακόβουλους τομείς, IP και διευθύνσεις URL, είτε οι χρήστες βρίσκονται εντός είτε εκτός του εταιρικού δικτύου. Εγγραφείτε για μια δωρεάν δοκιμή του Umbrella εδώ .

Το Cisco Secure Web Appliance (πρώην Web Security Appliance) αποκλείει αυτόματα δυνητικά επικίνδυνους ιστότοπους και δοκιμάζει ύποπτους ιστότοπους προτού οι χρήστες έχουν πρόσβαση σε αυτούς.

Πρόσθετες προστασίες με περιεχόμενο στο συγκεκριμένο περιβάλλον σας και δεδομένα απειλών είναι διαθέσιμες από το Κέντρο Διαχείρισης Τείχους προστασίας .

Το Cisco Duo παρέχει έλεγχο ταυτότητας πολλαπλών παραγόντων για τους χρήστες για να διασφαλίσει ότι μόνο οι εξουσιοδοτημένοι έχουν πρόσβαση στο δίκτυό σας.

Οι πελάτες του συνόλου κανόνων συνδρομητών ανοιχτού κώδικα Snort μπορούν να παραμένουν ενημερωμένοι κατεβάζοντας το πιο πρόσφατο πακέτο κανόνων που είναι διαθέσιμο για αγορά στο Snort.org .


ΔΟΕ

Μπορείτε να βρείτε δείκτες συμβιβασμού που σχετίζονται με αυτήν την απειλή εδώ .