iOS App Extensions
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Οι επεκτάσεις εφαρμογών ενισχύουν τη λειτουργικότητα των εφαρμογών επιτρέποντάς τους να αλληλεπιδρούν με άλλες εφαρμογές ή το σύστημα, παρέχοντας προσαρμοσμένες δυνατότητες ή περιεχόμενο. Αυτές οι επεκτάσεις περιλαμβάνουν:
Προσαρμοσμένο Πληκτρολόγιο: Προσφέρει ένα μοναδικό πληκτρολόγιο σε όλες τις εφαρμογές, αντικαθιστώντας το προεπιλεγμένο πληκτρολόγιο iOS.
Κοινοποίηση: Ενεργοποιεί την κοινοποίηση σε κοινωνικά δίκτυα ή με άλλους απευθείας.
Σήμερα (Widgets): Παρέχει περιεχόμενο ή εκτελεί εργασίες γρήγορα από την προβολή Σήμερα του Κέντρου Ειδοποιήσεων.
Όταν ένας χρήστης αλληλεπιδρά με αυτές τις επεκτάσεις, όπως η κοινοποίηση κειμένου από μια εφαρμογή φιλοξενίας, η επέκταση επεξεργάζεται αυτή την είσοδο εντός του πλαισίου της, αξιοποιώντας τις κοινές πληροφορίες για να εκτελέσει την εργασία της, όπως αναφέρεται στην τεκμηρίωση της Apple.
Βασικές πτυχές ασφαλείας περιλαμβάνουν:
Οι επεκτάσεις και οι εφαρμογές που τις περιέχουν επικοινωνούν μέσω διαλειτουργικής επικοινωνίας, όχι άμεσα.
Το widget Σήμερα είναι μοναδικό καθώς μπορεί να ζητήσει από την εφαρμογή του να ανοίξει μέσω μιας συγκεκριμένης μεθόδου.
Η πρόσβαση σε κοινά δεδομένα επιτρέπεται εντός ενός ιδιωτικού κοντέινερ, αλλά η άμεση πρόσβαση περιορίζεται.
Ορισμένα APIs, συμπεριλαμβανομένου του HealthKit, είναι εκτός ορίων για τις επεκτάσεις εφαρμογών, οι οποίες επίσης δεν μπορούν να ξεκινήσουν μακροχρόνιες εργασίες, να αποκτήσουν πρόσβαση στην κάμερα ή το μικρόφωνο, εκτός από τις επεκτάσεις iMessage.
Για να βρείτε επεκτάσεις εφαρμογών στον πηγαίο κώδικα, αναζητήστε το NSExtensionPointIdentifier
στο Xcode ή ελέγξτε το πακέτο της εφαρμογής για αρχεία .appex
που υποδεικνύουν επεκτάσεις. Χωρίς πηγαίο κώδικα, χρησιμοποιήστε grep ή SSH για να εντοπίσετε αυτούς τους αναγνωριστές εντός του πακέτου της εφαρμογής.
Ελέγξτε το αρχείο Info.plist
μιας επέκτασης για το NSExtensionActivationRule
για να προσδιορίσετε τους υποστηριζόμενους τύπους δεδομένων. Αυτή η ρύθμιση διασφαλίζει ότι μόνο συμβατοί τύποι δεδομένων ενεργοποιούν την επέκταση σε εφαρμογές φιλοξενίας.
Η κοινοποίηση δεδομένων μεταξύ μιας εφαρμογής και της επέκτασής της απαιτεί ένα κοινό κοντέινερ, που ρυθμίζεται μέσω "Ομάδων Εφαρμογών" και προσπελάζεται μέσω του NSUserDefaults
. Αυτός ο κοινός χώρος είναι απαραίτητος για τις μεταφορές στο παρασκήνιο που ξεκινούν οι επεκτάσεις.
Οι εφαρμογές μπορούν να περιορίσουν ορισμένους τύπους επεκτάσεων, ιδιαίτερα τα προσαρμοσμένα πληκτρολόγια, διασφαλίζοντας ότι η διαχείριση ευαίσθητων δεδομένων ευθυγραμμίζεται με τα πρωτόκολλα ασφαλείας.
Η δυναμική ανάλυση περιλαμβάνει:
Επιθεώρηση Κοινών Στοιχείων: Hook στο NSExtensionContext - inputItems
για να δείτε τους τύπους και τις προελεύσεις των κοινών δεδομένων.
Εντοπισμός Επεκτάσεων: Ανακαλύψτε ποιες επεκτάσεις επεξεργάζονται τα δεδομένα σας παρατηρώντας τους εσωτερικούς μηχανισμούς, όπως το NSXPCConnection
.
Εργαλεία όπως το frida-trace
μπορούν να βοηθήσουν στην κατανόηση των υποκείμενων διαδικασιών, ειδικά για εκείνους που ενδιαφέρονται για τις τεχνικές λεπτομέρειες της διαλειτουργικής επικοινωνίας.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)