iOS Custom URI Handlers / Deeplinks / Custom Schemes
Αυτό είναι ένα σύνοψη από τις σχετικές πληροφορίες από το https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/
Βασικές Πληροφορίες
Οι προσαρμοσμένοι URI handlers επιτρέπουν στις εφαρμογές να επικοινωνούν χρησιμοποιώντας ένα προσαρμοσμένο πρωτόκολλο, όπως περιγράφεται στην τεκμηρίωση του Apple Developer. Αυτά τα πρωτόκολλα πρέπει να δηλωθούν από την εφαρμογή, η οποία στη συνέχεια χειρίζεται τα εισερχόμενα URLs που ακολουθούν αυτά τα πρωτόκολλα. Είναι κρίσιμο να επικυρώνονται όλοι οι παράμετροι του URL και να απορρίπτονται τα μη έγκυρα URLs για να αποτραπούν επιθέσεις μέσω αυτού του διανύσματος.
Δίνεται ένα παράδειγμα όπου το URI myapp://hostname?data=123876123
ενεργοποιεί μια συγκεκριμένη ενέργεια της εφαρμογής. Ένα ευπάθεια που παρατηρήθηκε ήταν στην εφαρμογή Skype Mobile, η οποία επέτρεπε μη εξουσιοδοτημένες κλήσεις μέσω του πρωτοκόλλου skype://
. Οι εγγεγραμμένοι προσαρμοσμένοι πρωτόκολλα μπορούν να βρεθούν στο Info.plist
της εφαρμογής στο πεδίο CFBundleURLTypes
. Κακόβουλες εφαρμογές μπορούν να εκμεταλλευτούν αυτό επανεγγράφοντας τα URIs για να παρακολουθήσουν ευαίσθητες πληροφορίες.
Εγγραφή Προσαρμοσμένων Πρωτοκόλλων Ερωτήματος Εφαρμογής
Από το iOS 9.0, για να ελέγξετε αν μια εφαρμογή είναι διαθέσιμη, η canOpenURL:
απαιτεί τη δήλωση πρωτοκόλλων URL στο Info.plist
στο πεδίο LSApplicationQueriesSchemes
. Αυτό περιορίζει τα πρωτόκολλα που μια εφαρμογή μπορεί να ερωτήσει σε 50, βελτιώνοντας την ιδιωτικότητα αποτρέποντας την απαρίθμηση των εφαρμογών.
Δοκιμή Χειρισμού και Επικύρωσης των URL
Οι προγραμματιστές θα πρέπει να εξετάζουν συγκεκριμένες μεθόδους στον πηγαίο κώδικα για να κατανοήσουν την κατασκευή και την επικύρωση της διαδρομής του URL, όπως οι application:didFinishLaunchingWithOptions:
και application:openURL:options:
. Για παράδειγμα, η εφαρμογή Telegram χρησιμοποιεί διάφορες μεθόδους για το άνοιγμα των URL:
Δοκιμή αιτημάτων URL προς άλλες εφαρμογές
Μέθοδοι όπως η openURL:options:completionHandler:
είναι κρίσιμες για το άνοιγμα URL για αλληλεπίδραση με άλλες εφαρμογές. Η αναγνώριση της χρήσης τέτοιων μεθόδων στον πηγαίο κώδικα της εφαρμογής είναι καίρια για την κατανόηση των εξωτερικών επικοινωνιών.
Δοκιμή για αποσυντεθειμένες μεθόδους
Πρέπει να αναγνωριστούν και να ελεγχθούν οι αποσυντεθειμένες μέθοδοι που χειρίζονται το άνοιγμα URL, όπως οι application:handleOpenURL:
και openURL:
, για πιθανές επιπτώσεις στην ασφάλεια.
Ανίχνευση σφαλμάτων URL Schemes
Η ανίχνευση σφαλμάτων στα URL schemes μπορεί να αναγνωρίσει προβλήματα μνήμης. Εργαλεία όπως το Frida μπορούν να αυτοματοποιήσουν αυτήν τη διαδικασία ανοίγοντας URLs με διάφορα φορτία για να παρακολουθήσουν τυχόν ανατροπές, όπως φαίνεται από την παραπλάνηση των URLs στην εφαρμογή iGoat-Swift:
Αναφορές
Last updated