Αυτό που κάποτε οραματιζόμασταν στο XDA ως απόδειξη της έννοιας της ευπάθειας ασφάλειας έχει πλέον επιβεβαιωθεί από επιστήμονες υπολογιστών στο Ινστιτούτο Τεχνολογίας της Τζόρτζια στην Ατλάντα. Η ομάδα αναφέρει λεπτομερώς τι αποκαλεί "μανδύα και στιλέτο" εκμεταλλεύσεις που μπορούν να καταλάβουν τη διεπαφή χρήστη των περισσότερων εκδόσεων Android (συμπεριλαμβανομένης της 7.1.2). Δεδομένης της φύσης του, είναι δύσκολο να διορθωθεί και επίσης δύσκολο να εντοπιστεί.
Το Cloak and Dagger είναι ένα exploit που εκμεταλλεύεται δύο δικαιώματα για να πάρει τον έλεγχο του UI χωρίς να δίνει στον χρήστη την ευκαιρία να παρατηρήσει την κακόβουλη δραστηριότητα. Η επίθεση χρησιμοποιεί δύο δικαιώματα: SYSTEM_ALERT_WINDOW ("σχεδιάστε από πάνω") και BIND_ACCESSIBILITY_SERVICE ("a11 ε") που χρησιμοποιούνται πολύ συχνά σε εφαρμογές Android.
Εχουμε το είχε περιγράψει στο παρελθόν, αλλά αυτό που κάνει αυτή την ευπάθεια τόσο οξεία είναι το γεγονός ότι οι εφαρμογές που ζητούν SYSTEM_ALERT_WINDOW χορηγείται αυτόματα αυτή η άδεια κατά την εγκατάσταση μέσω του Google Play Store. Όσον αφορά την ενεργοποίηση μιας Υπηρεσίας Προσβασιμότητας, μια κακόβουλη εφαρμογή είναι σε θέση να δημιουργήσει εύκολα κοινωνικά έναν χρήστη ώστε να την εκχωρήσει. Η κακόβουλη εφαρμογή θα μπορούσε ακόμη και να ρυθμιστεί ώστε να χρησιμοποιεί μια υπηρεσία προσβασιμότητας για ημι-νόμιμο σκοπό, όπως παρακολούθηση όταν ορισμένες εφαρμογές είναι ανοιχτές για αλλαγή ορισμένων ρυθμίσεων.
Μόλις παραχωρηθούν αυτές οι δύο άδειες, ο αριθμός των επιθέσεων που θα μπορούσαν να συμβούν είναι πολυάριθμοι. Η κλοπή PIN, τα διακριτικά ελέγχου ταυτότητας δύο παραγόντων, οι κωδικοί πρόσβασης ή ακόμη και οι επιθέσεις άρνησης υπηρεσίας είναι όλα πιθανά. Αυτό οφείλεται στον συνδυασμό επικαλύψεων για να ξεγελάσει τον χρήστη ώστε να πιστέψει ότι αλληλεπιδρά με το α Η νόμιμη εφαρμογή και η Υπηρεσία Προσβασιμότητας χρησιμοποιούνται για την παρεμπόδιση της εισαγωγής κειμένου και αφής (ή τη μετάδοση της δικής της εισαγωγή).
Θεωρητικοποιήσαμε μια τέτοια ευπάθεια πριν από λίγους μήνες, όπου θα δημιουργήσαμε μια εφαρμογή απόδειξης της ιδέας που χρησιμοποιεί το SYSTEM_ALERT_WINDOW και BIND_ACCESSIBILITY_SERVICE για να σχεδιάσετε μια επικάλυψη στην οθόνη εισαγωγής κωδικού πρόσβασης στην εφαρμογή XDA Labs και να παρεμποδίσετε την είσοδο κλειδιού για σάρωση κωδικούς πρόσβασης. Αυτή η εφαρμογή που οραματιστήκαμε θα ήταν μια εφαρμογή διαχείρισης αυτόματης περιστροφής που θα χρησιμοποιούσε μια επικάλυψη για τους σκοπούς της σχεδίασης ενός αόρατου πλαισίου στην οθόνη έλεγχος περιστροφής (αντί να ζητήσει WRITE_SETTINGS που θα σήκωνε σημαίες) και μια υπηρεσία προσβασιμότητας που επιτρέπει στον χρήστη να ελέγχει την αυτόματη περιστροφή προφίλ σε μια εφαρμογή βάση. Θεωρητικά, αυτό θα ήταν ένα παράδειγμα εφαρμογής που χρησιμοποιεί "μανδύα και στιλέτο". Ωστόσο, κανένας από την ομάδα μας δεν ήταν διατεθειμένος να ρισκάρει λογαριασμούς προγραμματιστών αμφισβητώντας τα αυτοματοποιημένα συστήματα σάρωσης εφαρμογών της Google για να δούμε αν θα επιτρεπόταν η εκμετάλλευση απόδειξης της ιδέας στο Play Κατάστημα.
Σε κάθε περίπτωση, αυτοί οι ερευνητές έκαναν τη δουλειά και υπέβαλαν αιτήσεις δοκιμών για να αποδείξουν ότι η χρήση αυτών των δύο αδειών μπορεί πράγματι να είναι ένα σημαντικό ζήτημα ασφάλειας:
Όπως μπορείτε να δείτε, οι επιθέσεις είναι αόρατες στους χρήστες και επιτρέπουν τον πλήρη έλεγχο της συσκευής. Επί του παρόντος, όλες οι εκδόσεις του Android που ξεκινούν από το Android 5.1.1 έως το Android 7.1.2 είναι ευάλωτες σε αυτό εκμεταλλεύεται, δεδομένου του γεγονότος ότι εκμεταλλεύεται δύο άδειες που χρησιμοποιούνται διαφορετικά για απολύτως νόμιμες σκοποί.
Μην περιμένετε μια πραγματική επιδιόρθωση για αυτό το ζήτημα να έρθει στη συσκευή σας σύντομα, αν και θα πρέπει να σημειωθεί ότι το αλλαγές που έγιναν στο SYSTEM_ALERT_WINDOW στο Android O θα αντιμετωπίσει εν μέρει αυτό το ελάττωμα, απαγορεύοντας σε κακόβουλες εφαρμογές να σχεδιάζουν πλήρως ολόκληρη την οθόνη. Επιπλέον, το Android O ειδοποιεί τώρα μέσω ειδοποίησης εάν μια εφαρμογή σχεδιάζει ενεργά μια επικάλυψη. Με αυτές τις δύο αλλαγές, είναι λιγότερο πιθανό μια κακόβουλη εφαρμογή να ξεφύγει από την εκμετάλλευση αν ο χρήστης είναι προσεκτικός.
Πώς προστατεύεστε σε εκδόσεις πριν από το Android O; Όπως πάντα, εγκαταστήστε μόνο εφαρμογές που εμπιστεύεστε από πηγές που εμπιστεύεστε. Βεβαιωθείτε ότι τα δικαιώματα που ζητούν συμφωνούν με αυτό που περιμένετε.
Όσο για τους εκατοντάδες εκατομμύρια τακτικούς χρήστες εκεί έξω, σύμφωνα με εκπρόσωπο της Google Play Store Protect θα παρέχει επίσης τις απαραίτητες διορθώσεις για την αποτροπή επιθέσεων με μανδύα και στιλέτο. Το πώς ακριβώς θα το πετύχει αυτό δεν είναι σαφές, αλλά ελπίζουμε ότι περιλαμβάνει κάποιον τρόπο ανίχνευσης πότε αυτά τα δύο δικαιώματα χρησιμοποιούνται κακόβουλα. Ωστόσο, αμφιβάλλω αν θα μπορούσε να εντοπίσει όλες αυτές τις περιπτώσεις, επομένως σε κάθε περίπτωση είναι καλύτερο να παρακολουθείτε ποιες άδειες χορηγούνται σε κάθε εφαρμογή που εγκαθιστάτε.