TL;DR
Ο ευρέως γνωστός τρόπος (μέχρι αυτή τη στιγμή) για την εγκατάσταση των Google Services σε συσκευές της Huawei, βασίζονταν σε μη δημοσιευμένα MDM APIs. Αν και το συγκεκριμένο backdoor απαιτεί την αλληλεπίδραση του χρήστη για την ενεργοποίηση, το installer app, το οποίο γίνεται signed με ένα ειδικό certificate από την Huawei, έπαιρνε δικαιώματα, που μέχρι στιγμής δεν έχουμε συναντήσει σε συνήθεις Android συσκευές.
Από τότε που είδε το φως της δημοσιότητας η πληροφορία πως οι συσκευές της Huawei δεν μπορούσαν να προβούν στην εγκατάσταση των Google services εξαιτίας tou ban των ΗΠΑ, οι άνθρωποι άρχισαν να αναρωτιούνται τι επιπτώσεις θα έχει αυτό στις πωλήσεις της συσκευής και πως ο Κινεζικός κατασκευαστής θα αντιδρούσε. Δεν χρειάστηκε να περάσει μεγάλο χρονικό διάστημα μέχρι να βρεθεί επιτέλους τρόπος για να εγκατασταθούν τα Google Services. Το μόνο που έχεις να κάνεις, είναι να προβείς στο download και να εγκαταστήσεις ένα APK από το https://www.lzplay.net/. Είχαμε αναφερθεί αναλυτικά στο app αυτό εδώ
Και αυτό φαντάζει πολύ καλό για να είναι αληθινό, έτσι δεν είναι;
Για όσους είναι γνώστες των Κινεζικών συσκευών, το sideloading των GMS (Google Mobile Service) δεν είναι καθόλου άγνωστη υπόθεση. Είναι πολύ συχνό για τους κινεζικούς OEMs να διαθέτουν “GMS Installers” ώστε να επιτραπεί στους ανθρώπους που θα ταξιδεύουν στις δυτικές αγορές να προβούν χειροκίνητα στην εγκατάσταση των GMS. Αν όμως το LZPlay app είναι απλά ένας ακόμη GMS installer, γιατί ο John Wu, ο δημιουργός του Magisk γράφει αυτό το άρθρο στο οποίο αναφερόμαστε σήμερα;
Ο τρόπος με τον οποίο λειτουργούν οι περισσότεροι GMS installers, είναι με την αυτόματη εγκατάσταση μιας σουίτας Google Apks. Στη πράξη, οι χρήστες μπορούν απλά να προβούν στο κατέβασμα αυτών των apks ξεχωριστά και να τα κάνουν sideload από μόνοι τους. Δεν χρειάζεται κάτι άλλο. Ωστόσο αυτό είναι εφικτό, μόνο αν η συσκευή χρησιμοποιεί ήδη ένα αδειοδοτημένο system image από την Google.
Στο Android τα system apps και τα apps που έχουν εγκατασταθεί από το χρήστη αντιμετωπίζονται διαφορετικά, με τα πρώτα να λαμβάνουν επιπρόσθετα permissions. Ορισμένα GMS packages πρέπει να εγκατασταθούν σαν system apps επειδή απαιτούν άδειες (privileged permissions) για να λειτουργήσουν σωστά. Καθώς τα Google Services δεν είναι προσβάσιμα στην Κίνα, οι περισσότερες Android συσκευές δεν έρχονται με πλήρεις GMS installers, αλλά σε μερικές περιπτώσεις, οι OEMs θα συμπεριλάβουν κάποια στοιχεία αυτών στο σύστημα.
Το Android επιτρέπει στα system apps να αναβαθμιστούν από τον χρήστη, είτε μέσω του Play Store, είτε με χειροκίνητα sideloads, από τη στιγμή όμως που το update γίνεται signed με το ίδιο key με αυτό του συστήματος. Αυτή η διαδικασία, που ονομάζεται signature verification είναι σημαντική, καθώς αυτή εμποδίζει την διάθεση επιβλαβών updates. Τα στοιχεία των GMS που αναφέραμε προηγουμένως δεν παρέχουν άλλη λειτουργικότητα, πέρα από το να ανοίγουν το δρόμο και να περιμένουν την ενεργοποήσή τους. Αυτά τα στοιχεία, γίνονται signed από την Google για να είναι συμβατά με τα πραγματικά GMS apks.
Όταν ο δημιουργός του Magisk διαπίστωσε ότι μπορούν να εγκατασταθούν οι εφαρμογές στα Mate 30 Pro, απόρησε για το πως ήταν αυτό δυνατό. Μάλιστα, ρώτησε και τους φίλους του στο XDA Developers και η απάντηση που έλαβε τον σόκαρε. Δεν υπήρχαν στοιχεία των GMS στις Huawei συσκευές. Επομένως με έναν μαγικό τρόπο, το LZPlay app μπορούσε να εγκατασταθεί. Ο ίδιος αποφάσισε να εξετάσει το apk και να διαπιστώσει πως ακριβώς γινόταν η εγκατάσταση.
Για κάποιον λόγο η Huawei έχει μη δημοσιευμένα MDM APIs για την εγκατάσταση system apps. Είναι ένα ευρέως γνωστό trick μεταξύ των χρηστών του Android που θέλουν να πειράζουν τις συσκευές τους για το φλασάρισμα μιας εφαρμογής στο σύστημα και για να δωθούν δικαιώματα σε συγκεκριμένες εφαρμογές. Ωστόσο στη περίπτωση της Huawei δεν είναι το ίδιο πράγμα:
- Πρώτον, γιατί ο bootloader είναι κλειδωμένος και έχει επιβληθεί το Android Verified Boot.
- Δεύτερον, η Huawei, φορμάρει τα system/vendor/product partitions σαν EROFS, ένα read-only, compressed filesystem. Αυτό σημαίνει ότι το system framework στο λειτουργικό της Huawei έχει backdoor που επιτρέπει σε apps να κάνουν ορισμένες εφαρμογές των χρηστών σαν system apps.
Οι developers που θέλουν να εκμεταλλευθούν αυτό το backdoor θα πρέπει να υπογράψουν νομικές συμφωνίες με την Huawei για να αποκτήσουν πρόσβαση σε αυτό. Για κάθε project λοιπόν, ο developer πρέπει να υποβάλλει ένα request στην Huawei , μαζί με μια αιτιολογία, για να τους δωθούν τα permissions. Επιπλέον, θα πρέπει το apk που θέλουν να δημιουργήσουν να σταλεί στην Huawei για εξέταση πριν γίνει signed με ένα ειδικό key της Huawei.
Από όλα αυτά λοιπόν, γίνεται ξεκάθαρο με τον πλέον χαρακτηριστικό τρόπο, ότι η εταιρεία γνωρίζει την ύπαρξη του LZPLAY app και δίνει την συγκατάθεσή της για την ύπαρξή του, βάσει όλων των προαναφερθέντων. Δηλαδή, ο δημιουργός του app που επέτρεπε την εγκατάσταση των Google services με κάποιον τρόπο είχε γνώση αυτών των μη δημοσιευμένων APIs, υπέγραψε όλες τις νομικές συμφωνίες, πέρασε από αξιολογήσεις και τέλος πήρε την ευχή της Huawei και το δημοσίευσε (το app είχε γίνει signed από την Huawei). Ο σκοπός της εφαρμογής ήταν η εγκατάσταση των Google Services σε μια μη αδειοδοτημένη συσκευή, κάτι που αποτελεί κατάφωρη παραβίαση του ban.
Αλλά ακόμη και αν είναι νόμιμη η όλη διαδικασία, το backdoor δεν θα έπρεπε να υπάρχει. Ναι, φυλλάσεται από μια έμπιστη οντότητα (Huawei), καθώς μόνο αυτή μπορεί να δώσει πρόσβαση, αλλά δεν θα έπρεπε να υπάρχει. Υπάρχει λόγος που τα system apps επιτρέπονται να έχουν πρόσθετα προνόμια και δικαιώματα. Βρίσκονται σε ένα cryptographically verified read-only partition. Στη συγκεκριμένη περίπτωση όμως βρίσκονται σε ένα writable partition (userdata), κάτι που μπορεί να δώσει τη δυνατότητα επιβλαβών τροποποιήσεων.
Φυσικά, δεν πρόκειται για ένα ΘΕΕ ΜΟΥ Η HUAWEI ΜΑΣ ΚΑΤΑΣΚΟΠΕΥΕΙ πράγμα, που πολλά sites θα θέλουν έναν τέτοιον τίτλο στην κεντρική τους σελίδα όπως χαρακτηριστικά επισημαίνει ο John Wu. Προστατεύεται από την πλευρά της Huawei, μόνο αυτή μπορεί να δώσει πρόβαση και απαιτεί την αλληλεπίδραση του χρήστη για να επιτραπεί το permission. Σε κάθε περίπτωση, μόνο η Huawei γνωρίζει την πρόθεση δημιουργίας ενός τέτοιου API. Πάντως από χθες το app που επέτρεπε την εγκατάσταση των Google apps έχει κατέβει.
Τέλος, από χθες, και μετά την δημοσίευση του άρθρου του John Wu, η συσκευή σταμάτησε να περνάει και από Safetynet, ενώ την προηγούμενη εβδομάδα περνούσε. Ο τρόπος με τον οποίο πιστεύεται ότι λειτουργεί η πιστοποίηση Safetynet, είναι η δημιουργία ενός signature στη συσκευή και η διασταύρωση της πληροφορίας αυτής με reference δεδομένα της Google για πιστοποιημένες Android συσκευές. Το γεγονός δηλαδή ότι περνούσε, αφήνει υποψίες για συνεργασία Huawei και Google με τρόπο που παραβιάζει το ban. Πάντως είναι λίγο ύποπτα, ότι όλα συμβαίνουν την ίδια μέρα.
Soooo uhh this is new.
Since today's developments, Mate 30 Pro now fails SafetyNet. Last week it passed.
What the what pic.twitter.com/fPeaWUHD2v
— Alex Dobie (@alexdobie) October 1, 2019
Ακολουθήστε το Techmaniacs.gr στο Google News για να διαβάζετε πρώτοι όλα τα τεχνολογικά νέα. Ένας ακόμα τρόπος να μαθαίνετε τα πάντα πρώτοι είναι να προσθέσετε το Techmaniacs.gr στον RSS feeder σας χρησιμοποιώντας τον σύνδεσμο: https://techmaniacs.gr/feed/.
…κι εσείς τι ζορίζεστε,ο τραμπ είσαστε;…