Το OnePlus προεγκατέστησε κατά λάθος μια εφαρμογή που λειτουργεί ως Backdoor to Root Access

Η OnePlus άφησε στη θέση της μια εφαρμογή δοκιμής μηχανικής της Qualcomm που λειτουργεί ως κερκόπορτα για την παροχή πρόσβασης root στα OnePlus 3, 3T και 5.

Ενημέρωση: Η OnePlus εξέδωσε μια επίσημη απάντηση στο θέμα. Θα καταργήσουν τη ριζική συνάρτηση ADB από το EngineerMode σε μια επερχόμενη ενημέρωση.

Έχει περάσει λίγο περισσότερο από ένα μήνα από τότε που βρέθηκε να συλλέγει η OnePlus στοιχεία προσωπικής ταυτοποίησης για αναλυτικά στοιχεία. Η εταιρεία αντέστρεψε γρήγορα την πορεία της και σε μια ενημέρωση η εταιρεία υποσχέθηκε να είναι πιο διαφανής δίνοντας ξεκάθαρα στους χρήστες το επιλογή εξαίρεσης από τα αναλυτικά στοιχεία του OxygenOS. Αν και αυτή η καταστροφή έκτοτε επιλύθηκε, μια άλλη σηκώνει το άσχημο κεφάλι της απόψε. Ένας χρήστης στο Twitter που ακούει στο όνομα "Έλιοτ Άλντερσον" (που πήρε το όνομά του από τον κεντρικό χαρακτήρα της δημοφιλούς τηλεοπτικής σειράς Mr. Robot) ανακάλυψε ότι το OnePlus άφησε κατά λάθος μια εφαρμογή διαγνωστικών δοκιμών κατασκευασμένο από την Qualcomm. Μετά την αποσυμπίληση αυτής της εφαρμογής, ανακάλυψε ότι μπορεί να είναι

εκμεταλλεύεται για την παραχώρηση πρόσβασης root—ενεργώντας ουσιαστικά ως backdoor.

Η εφαρμογή ονομάζεται "EngineerMode" και είναι ουσιαστικά μια εφαρμογή συστήματος που κατασκευάστηκε από την Qualcomm και παρέχεται σε OEM όπως το OnePlus, προκειμένου οι OEM να ελέγχουν εύκολα όλα τα στοιχεία υλικού του συσκευή. Η εφαρμογή είναι προεγκατεστημένη σε όλες τις συσκευές OnePlus 3, OnePlus 3T και OnePlus 5 και μπορεί να είναι εύκολα προσβάσιμη μέσω οποιουδήποτε προγράμματος εκκίνησης δραστηριότητας καθώς εξάγονται όλες οι δραστηριότητες της εφαρμογής.

Εμείς στην πραγματικότητα κάλυψε την ύπαρξη αυτής της εφαρμογής πριν από αρκετούς μήνες, αλλά εκείνη τη στιγμή δεν είχαμε ιδέα σε τι μπορεί να χρησιμοποιηθεί. Ο χρήστης του Twitter απέσπασε την εφαρμογή (η πηγή της έχει αναρτηθεί στο διαδίκτυο εδώ) και βρήκε μια ενδιαφέρουσα δραστηριότητα που ονομάζεται DiagEnabled. Συγκεκριμένα, μια μέθοδος ξεχώρισε στη δραστηριότητα: escalatedUp. Αυτή η μέθοδος δέχεται μια τιμή boolean (true/false) και μια συμβολοσειρά. Η συμβολοσειρά είναι ένας κωδικός πρόσβασης που ελέγχεται με τη μέθοδο πριν ορίσει τις ιδιότητες του συστήματος persist.sys.adbroot και oem.selinux.reload_policy σε 1.

Η πρώτη ιδιότητα συστήματος είναι ιδιαίτερα ενδιαφέρουσα καθώς επιτρέπει στο χρήστη να εκτελεί το ADB ως root. Αυτό ανοίγει αμέσως τη δυνατότητα απόκτησης πλήρους πρόσβασης root στο τηλέφωνο—όλα χωρίς να ξεκλειδώσετε το bootloader. Πώς ακριβώς μπορείτε να κάνετε την εφαρμογή EngineerMode να ορίσει αυτές τις ιδιότητες συστήματος σε '1';

Το @fs0c131y χρειαζόταν να βρει τον σωστό κωδικό πρόσβασης για αποστολή στο intent προκειμένου να περάσει τη λογική στη μέθοδο που δημοσιεύτηκε παραπάνω. Ωστόσο, η εύρεση αυτού του κωδικού πρόσβασης δεν είναι απλή υπόθεση. Απομεταγλώττισε τη βιβλιοθήκη που είναι υπεύθυνη για τη δημιουργία του κωδικού πρόσβασης (που ονομάζεται libdoor.so) και βρήκε πού βρισκόταν ο κατακερματισμός του κωδικού πρόσβασης: /data/backup/fpwd. Ο κωδικός πρόσβασης δημιουργείται από διάφορες ιδιότητες κατασκευής, όπως π.χ ro.product.model και ro.product.brand και δεν θα ήταν εύκολο να γίνει αντίστροφη μηχανική.

Ευτυχώς με τη βοήθεια Ντέιβιντ Γουάινστιν και Τώρα Ασφαλής στο Twitter, ανακάλυψε τον κωδικό πρόσβασης που χρειαζόταν το EngineerMode προκειμένου να κλιμακώσει το ADB σε δικαιώματα root.

Το μόνο που πρέπει να κάνει κανείς είναι να στείλει μια πρόθεση σε αυτήν τη μορφή:

adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"

όπου com.android.engineeringmode/.qualcomm. Το DiagEnabled είναι το όνομα στοιχείου της Δραστηριότητας DiagEnabled που εκμεταλλευόμαστε και ο "κώδικας" είναι το όνομα συμβολοσειράς και το "angela" είναι η σχετική τιμή κωδικού πρόσβασης.

Ο @fs0c131y δηλώνει ότι θα το κάνει δημοσιεύσει μια εφαρμογή σύντομα θα στείλει αυτήν την πρόθεση να ανυψωθεί το ADB σε δικαιώματα root, να επιδιορθωθεί η εικόνα εκκίνησης για να απενεργοποιηθεί το dm-verity και να εγκατασταθούν τα υποδυαδικά αρχεία. Παρακολουθήστε τα φόρουμ XDA για το πότε θα δημοσιευτεί αυτή η ριζική εφαρμογή.

Αυτό που σημαίνει για τους τελικούς χρήστες είναι ότι μπορείτε εύκολα root τα OnePlus 3, OnePlus 3T και OnePlus 5 χωρίς να ξεκλειδώσετε ποτέ τον bootloader σας. Ωστόσο, αυτό το exploit δεν επιτρέπει σε μια κακόβουλη εφαρμογή να παραχωρήσει στον εαυτό της πρόσβαση root, επομένως, εκτός εάν κάποιος έχει φυσική πρόσβαση στη συσκευή σας για να ρυθμίσει το ADB, τότε είστε ασφαλείς από την εκμετάλλευση.

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

adbshellpmuninstall-k--user 0 com.android.engineermode

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


Ενημέρωση 1: Ο κωδικός πρόσβασης είναι "angela"

Ο χρήστης @fs0c131y δημοσίευσε μια ενημέρωση στη σελίδα του στο Twitter με τον κωδικό πρόσβασης που χρειάζεστε για να μπείτε σε ένα ριζωμένο κέλυφος ADB. Αυτός ο κωδικός είναι...αγγελα. Για όσους από εσάς δεν βλέπετε το Mr. Robot, η Angela είναι το όνομα μιας από τις πρωταγωνίστριες. Υποθέτω ότι πρέπει να υπάρχουν πολλοί οπαδοί του Mr. Robot στην Qualcomm.

Εάν εισαγάγετε την εντολή που δημοσίευσα παραπάνω στο ADB, θα παρατηρήσετε ότι το ADB αποσυνδέεται αμέσως και ο διακομιστής επανεκκινείται. Εισαγάγετε ξανά το ADB και θα παρατηρήσετε ότι είναι πλέον ένα ριζωμένο κέλυφος.


Ενημέρωση 2: Πώς προέκυψε ο κωδικός πρόσβασης

Η εταιρεία ασφαλείας Now Secure δημοσίευσε μια ανάρτηση ιστολογίου που περιγράφει λεπτομερώς τον τρόπο με τον οποίο άντλησαν τον κωδικό πρόσβασης που απαιτείται για να συμβεί αυτό το root exploit. Μπορείτε να διαβάσετε ολόκληρη την ανάρτησή τους εδώ.


Ενημέρωση 3: Επηρεάζονται περισσότερες συσκευές

Αυτά τα τελευταία νέα δεν πρέπει να αποτελούν έκπληξη, αλλά περισσότερες συσκευές φαίνεται να επηρεάζονται από αυτό το exploit. Αυτό συμβαίνει επειδή η εφαρμογή EngineerMode είναι μια εφαρμογή της Qualcomm, επομένως είναι πιθανό άλλοι κατασκευαστές OEM να την έχουν προεγκατεστεί στις συσκευές τους. Μέχρι στιγμής, οι χρήστες έχουν επικοινωνήσει με το @fs0c131y στο Twitter για να επιβεβαιώσουν ότι η εφαρμογή είναι εγκατεστημένη στο ορισμένες συσκευές Asus Zenfone και Xiaomi. Μπορείτε εύκολα να ελέγξετε εάν η συσκευή σας έχει αυτήν την εφαρμογή μεταβαίνοντας στις Ρυθμίσεις και δείτε ποιες εφαρμογές είναι εγκατεστημένες.


Ενημέρωση 4: Ριζάρισμα της συσκευής σας

Χρησιμοποιώντας μερικές εντολές μέσω του ριζωμένου κελύφους ADB, είναι πλέον δυνατό σπρώξτε το υποδυαδικό αρχείο στη συσκευή σας. Χρησιμοποιώντας αυτό, μπορείτε στη συνέχεια να εγκαταστήσετε μια εφαρμογή διαχείρισης ρίζας όπως το SuperSU και στη συνέχεια να εκχωρήσετε δωρεάν πρόσβαση root σε άλλες εφαρμογές. Όλα αυτά χωρίς να ξεκλειδώσετε το bootloader σας!


Ενημέρωση 5: Το OnePlus ανταποκρίνεται

Η OnePlus ανταποκρίθηκε επίσημα στην κατάσταση. Σε ένα ανάρτηση, η εταιρεία επαναλαμβάνει ότι αυτό το exploit μπορεί να χρησιμοποιηθεί μόνο εάν ένας εισβολέας έχει φυσική πρόσβαση στη συσκευή και έχει ενεργοποιήσει τον εντοπισμό σφαλμάτων USB. Για να ενεργοποιηθεί ο εντοπισμός σφαλμάτων USB, ο εισβολέας χρειάζεται επίσης την καρφίτσα/κωδικό πρόσβασης της συσκευής σας. Έτσι, το root backdoor δεν είναι εύκολα εκμεταλλεύσιμο από καμία εφαρμογή ή άτομο, αλλά παρόλα αυτά το OnePlus θα αντιμετωπίσει τις ανησυχίες των χρηστών καταργώντας αυτήν τη λειτουργία από την εφαρμογή EngineerMode.