Μια πρόσφατη διαρροή ενός "Golden Key" από τη Microsoft σε συνδυασμό με την παρουσία μιας λειτουργίας εντοπισμού σφαλμάτων επέτρεψε την απενεργοποίηση της ασφαλούς εκκίνησης σε συσκευές Windows. Συνέχισε να διαβάζεις!
Τα λειτουργικά συστήματα που βασίζονται σε Windows δεν είναι πλέον η προεπιλεγμένη και κορυφαία επιλογή στη σκηνή του κινητού. Η φύση Ανοιχτού Κώδικα του Android έχει βρει πολλούς θαυμαστές στους OEM, και ως αποτέλεσμα, όλο και λιγότερα τηλέφωνα χρησιμοποιούν Windows αυτές τις μέρες.
Αλλά αν είστε από αυτούς που εξακολουθούν να χρησιμοποιούν μια συσκευή Windows στην καθημερινή σας ζωή, υπάρχουν μερικά νέα για εσάς. Καλό ή κακό, αυτό θα εξαρτηθεί από τη στάση και την ερμηνεία σας για τις περιπτώσεις χρήσης αυτής της είδησης.
Όπως αναφέρεται από Ars Technica και Εγγραφή με την είδηση που προέρχεται από α ιστοσελίδα που πιθανότατα θα σας προκαλέσει πονοκέφαλο (χωρίς πλάκα), μερικοί προγραμματιστές (@never_released και @TheWack0lian) ανακάλυψαν ότι μια κερκόπορτα που έφτιαξε η Microsoft για σκοπούς εντοπισμού σφαλμάτων άνοιξε τις δυνατότητες απενεργοποίησης της ασφαλούς εκκίνησης σε συσκευές Windows.
Ασφαλής εκκίνηση και τι είναι;
Όταν εκκινείτε για πρώτη φορά μια συσκευή Windows, η διαδικασία εκκίνησης ακολουθεί αυτή τη γενική σειρά: UEFI (Unified Extensible Firmware Interface, το οποίο αντικαθιστά το BIOS) -> Boot Manager -> Boot Loader -> Windows. Το UEFI είναι όπου υπάρχει η λειτουργία Ασφαλούς εκκίνησης. Όπως υποδηλώνει το όνομα με Ασφαλής εκκίνηση, στοχεύει στη βελτίωση της ασφάλειας απαιτώντας ψηφιακές υπογραφές στα επόμενα βήματα. Ουσιαστικά, εάν ο bootloader δεν είναι υπογεγραμμένος με κλειδιά με τα οποία το UEFI αναμένει να είναι, η διαδικασία εκκίνησης της συσκευής σας δεν θα ολοκληρωθεί.
Το Secure Boot είναι μια προαιρετική δυνατότητα, αλλά η Microsoft έχει καταστήσει υποχρεωτική την ενεργοποίηση της λήψης πιστοποίησης των Windows από τα Windows 8 και μετά. Το σκεπτικό εδώ ήταν ότι η Ασφαλής εκκίνηση θα δυσκόλευε τους δημιουργούς κακόβουλου λογισμικού να εισαγάγουν κώδικα στη διαδικασία εκκίνησης. Ωστόσο, μια παρενέργεια της Ασφαλούς εκκίνησης ήταν ότι την έκανε λίγο περίπλοκη τη διπλή εκκίνηση σε μηχανήματα Windows, καθώς είτε το δεύτερο λειτουργικό σύστημα και όλα τα προαπαιτούμενα του πρέπει επίσης να είναι ψηφιακά υπογεγραμμένα, είτε η Ασφαλής εκκίνηση θα πρέπει να είναι άτομα με ειδικές ανάγκες. Υπάρχουν πολλά άλλα ζητήματα σε αυτό, και οι έμπειροι dual-booters θα γνώριζαν περισσότερα από αυτά που θα μπορούσα να εξηγήσω σε μια παράγραφο.
Τώρα, υπάρχουν ορισμένες συσκευές στις οποίες ο χρήστης δεν μπορεί να απενεργοποιήσει το Secure Boot ακόμα κι αν το ήθελε. Αυτό είναι το βασίλειο όπου το θέμα μας περιορίζεται δραστικά από όλες τις συσκευές Windows (συμπεριλαμβανομένων επιτραπέζιους υπολογιστές) σε συγκεκριμένες συσκευές Windows, όπως συσκευές Windows Phone, συσκευές Windows RT, ορισμένες συσκευές Surface και ακόμη HoloLens. Αυτές οι συσκευές τελικού χρήστη έχουν Το Secure Boot είναι κλειδωμένο, που σημαίνει ότι ένα Ο τελικός χρήστης δεν μπορεί να τροποποιήσει ή να απενεργοποιήσει πτυχές που σχετίζονται με την Ασφαλή εκκίνηση, και κατ' επέκταση, δεν μπορούν να αγγίξουν το λειτουργικό σύστημα με τρόπους που δεν είναι εξουσιοδοτημένοι από τη Microsoft για τον τελικό χρήστη.
Αλλά για τους σκοπούς της συνεχιζόμενης επίσημης ανάπτυξης, το Secure Boot πρέπει να χαλαρώσει λίγο. Σε συσκευές στις οποίες το Secure Boot είναι κλειδωμένο, υπάρχουν Πολιτικές Ασφαλούς εκκίνησης που μπορούν να βοηθήσουν στην εξουσιοδοτημένη ανάπτυξη χωρίς να χρειάζεται να απενεργοποιήσετε την Secure Boot. Όπως αναφέρουν οι ερευνητές χρήστες, αυτό το αρχείο Πολιτικής ασφαλούς εκκίνησης φορτώνεται από τον Διαχειριστή εκκίνησης νωρίς στη διαδικασία εκκίνησης για τα Windows. Τα αρχεία Πολιτικής μπορούν επίσης να περιέχουν κανόνες μητρώου που με τη σειρά τους έχουν τη δυνατότητα να περιέχουν διαμορφώσεις για την ίδια την πολιτική, μεταξύ άλλων. Και πάλι, το αρχείο Πολιτικής πρέπει να είναι υπογεγραμμένο και υπάρχουν άλλες διατάξεις που ισχύουν για να βεβαιωθείτε ότι μόνο η Microsoft μπορεί να παρέχει αυτές τις αλλαγές.
Το στοιχείο υπογραφής βασίζεται επίσης σε αυτό που ονομάζεται ID συσκευής, το οποίο χρησιμοποιείται κατά την εφαρμογή. Θα αφήσω την ανάρτηση του ιστολογίου να εξηγήσει εδώ, καθώς υπάρχουν μερικά σημεία που δεν είναι τόσο ξεκάθαρα για μένα:
Επίσης, υπάρχει κάτι τέτοιο που ονομάζεται DeviceID. Είναι τα πρώτα 64 bit ενός αλατισμένου κατακερματισμού SHA-256, κάποιας εξόδου UEFI PRNG. Χρησιμοποιείται κατά την εφαρμογή πολιτικών στο Windows Phone και στα Windows RT (το mobilestartup το θέτει στο Phone και το SecureBootDebug.efi όταν εκκινείται για πρώτη φορά στο RT). Στο τηλέφωνο, η πολιτική πρέπει να βρίσκεται σε μια συγκεκριμένη θέση στο διαμέρισμα EFIESP με το όνομα αρχείου να περιλαμβάνει τη δεκαεξαδική μορφή του αναγνωριστικού συσκευής. (Με το Redstone, αυτό άλλαξε σε UnlockID, το οποίο ορίζεται από το bootmgr και είναι απλώς η ακατέργαστη έξοδος UEFI PRNG).
Βασικά, το bootmgr ελέγχει την πολιτική κατά τη φόρτωση, εάν περιλαμβάνει ένα αναγνωριστικό συσκευής, το οποίο δεν ταιριάζει με το αναγνωριστικό συσκευής της συσκευής στην οποία εκτελείται το bootmgr, η πολιτική θα αποτύχει να φορτώσει. Οποιαδήποτε πολιτική που επιτρέπει την ενεργοποίηση της υπογραφής δοκιμών (η MS καλεί αυτές τις πολιτικές ξεκλειδώματος λιανικής συσκευής / RDU και η εγκατάσταση τους ξεκλειδώνει μια συσκευή), υποτίθεται ότι είναι κλειδωμένο σε ένα αναγνωριστικό συσκευής (UnlockID στο Redstone και πάνω από). Πράγματι, έχω αρκετές πολιτικές (υπογεγραμμένες από το πιστοποιητικό παραγωγής Windows Phone) όπως αυτή, όπου οι μόνες διαφορές είναι το αναγνωριστικό συσκευής που περιλαμβάνεται και η υπογραφή. Εάν δεν έχει εγκατασταθεί έγκυρη πολιτική, το bootmgr χρησιμοποιεί μια προεπιλεγμένη πολιτική που βρίσκεται στους πόρους του. Αυτή η πολιτική είναι αυτή που αποκλείει την ενεργοποίηση της υπογραφής δοκιμών, κ.λπ., χρησιμοποιώντας κανόνες BCD.
Αυτό είναι το μέρος όπου τα πράγματα γίνονται ενδιαφέροντα. Κατά την ανάπτυξη των Windows 10 v1607, η Microsoft δημιούργησε έναν νέο τύπο Πολιτικής Ασφαλούς εκκίνησης (εφεξής για λόγους συντομίας αναφέρεται ως SBP) για σκοπούς εσωτερικού ελέγχου και εντοπισμού σφαλμάτων. Η πολιτική έχει «συμπληρωματικό» χαρακτήρα χωρίς να υπάρχει αναγνωριστικό συσκευής και προκαλεί τη συγχώνευση των ρυθμίσεών της σε μια υπάρχουσα Πολιτική εκκίνησης. Ο Διαχειριστής εκκίνησης φορτώνει τους παλαιότερους τύπους SBP, στη συνέχεια επαληθεύει την υπογραφή και την αυθεντικότητά του και στη συνέχεια φορτώνει σε αυτές τις συμπληρωματικές πολιτικές εκκίνησης. Το ζήτημα εδώ είναι ότι δεν υπάρχει περαιτέρω επαλήθευση για την ίδια την συμπληρωματική πολιτική. Επίσης, οι διαχειριστές εκκίνησης νωρίτερα από τα Windows 10 v1511 δεν γνωρίζουν για την ύπαρξη της συμπληρωματικής φύσης αυτών των πολιτικών και ως εκ τούτου, αντιδρούν σαν να φόρτωσαν μια απολύτως έγκυρη και υπογεγραμμένη πολιτική. Και πάλι, αυτή η συμπεριφορά ήταν πιθανή για εσωτερική ανάπτυξη, έτσι ώστε οι προγραμματιστές να μην έπρεπε να υπογράψουν κάθε έκδοση λειτουργικού συστήματος και μικρές αλλαγές που έπρεπε να κάνουν στη συσκευή.
Αυτό το SBP αναφέρεται ως "Χρυσό Κλειδί" δεδομένου ότι ουσιαστικά ακυρώνει τον σκοπό των ελέγχων υπογραφής. Αυτό το SBP απεστάλη ακούσια σε συσκευές λιανικής, αν και σε απενεργοποιημένη κατάσταση. Οι προγραμματιστές βρήκαν αυτό το SBP και έκαναν γνωστά τα ευρήματά τους. Τώρα, το SBP μπορεί να είναι βρέθηκε να επιπλέει στο διαδίκτυο, με το συγκεκριμένο zip να χρησιμοποιείται για την εγκατάσταση του SBP σε συσκευές Windows RT.
Τι σημαίνει αυτό?
Εάν έχετε φορτώσει ένα συμπληρωματικό SBP, μπορείτε να ενεργοποιήσετε τη δοκιμαστική υπογραφή για Windows, ώστε να μπορείτε να φορτώνετε μη υπογεγραμμένα προγράμματα οδήγησης. Επιπλέον, δεδομένου ότι αυτές οι Πολιτικές τίθενται σε εφαρμογή πριν από το στάδιο του Διαχειριστή εκκίνησης στη διαδικασία εκκίνησης, μπορείτε να θέσετε σε κίνδυνο την ασφάλεια ολόκληρης της παραγγελίας και να εκτελέσετε μη εξουσιοδοτημένο (διαβάστε αυτουπογεγραμμένο) κώδικα. Αυτό ανοίγει πολλές δυνατότητες, τόσο για τους χρήστες που σκοπεύουν να τροποποιήσουν μέρη των Windows εκτός εξουσιοδότησης όσο και για τους δημιουργούς κακόβουλου λογισμικού.
Οι συντάκτες αυτής της διαπίστωσης επικεντρώνονται στην ειρωνεία του όλου φιάσκου. Η Microsoft κλείδωσε την Ασφαλή εκκίνηση σε ορισμένες συσκευές για να κρατήσει μακριά τις μη εξουσιοδοτημένες αλλαγές, αλλά στη συνέχεια δημιούργησε μια κερκόπορτα για να τις επιτρέψει να συνεχίσουν την ανάπτυξη και τον εντοπισμό σφαλμάτων. Αλλά αυτή ακριβώς η κερκόπορτα ανοίγει το δρόμο για την απενεργοποίηση της Ασφαλούς εκκίνησης σε όλες τις συσκευές με Windows, καθιστώντας την όλη δοκιμασία άσκοπη.
Όχι μόνο οι πρόθυμοι χρήστες μπορούν τώρα να εγκαταστήσουν διανομές Linux (και πιθανώς Android) σε tablet και μόνο για Windows Στα τηλέφωνα, οι απρόθυμοι χρήστες μπορούν επίσης να έχουν εγκατεστημένα κακόβουλα bootkits, εάν θέτουν σε κίνδυνο τη φυσική πρόσβαση στα συσκευή. Ενώ το πρώτο είναι κάτι που μπορούμε να πηδήξουμε στον αέρα, το δεύτερο δεν ενσταλάσσει πραγματικά πολλή εμπιστοσύνη. Πηγαίνει αμφίδρομα και μας δείχνει γιατί η ασφάλεια είναι ένα δίκοπο μαχαίρι. Επιπλέον, το SBP είναι καθολικής φύσης, επιτρέποντας τη χρήση του σε οποιαδήποτε συσκευή ανεξαρτήτως αρχιτεκτονικής. Δεν είναι ιδιαίτερα χρήσιμο για περιπτώσεις επιτραπέζιων υπολογιστών όπου το Secure Boot μπορεί να απενεργοποιηθεί εύκολα, αλλά έχει τεράστιο εύρος για συσκευές όπου δεν μπορείτε να μπλέξετε με την Secure Boot.
Λοιπόν, ποια είναι η λύση;
Η Microsoft κυκλοφόρησε ορισμένες ενημερώσεις κώδικα, αλλά οι προγραμματιστές επιμένουν ότι το ζήτημα δεν έχει επιδιορθωθεί πλήρως. Μπορείτε να δείτε αυτά τα patches (MS16-094 και MS16-100) και στη συνέχεια διαβάστε το ανάρτηση γιατί δεν λύνουν το πρόβλημα. Εάν είναι σωστές, αυτό το ζήτημα δεν έχει μια επιδιόρθωση ή μια ενημερωμένη έκδοση κώδικα, αν και αυτό δεν θα εμποδίσει τη Microsoft να προσπαθήσει να τοποθετήσει περισσότερα εμπόδια στο δρόμο.
Ποιο είναι το επόμενο?
Υπάρχει ένας κόσμος δυνατοτήτων και μερικές από αυτές αναπτύσσονται στα Φόρουμ των Windows μας. Μπορείτε να δείτε τα φόρουμ μας στο Windows Phone 8 Ανάπτυξη και Hacking και τα φόρουμ μας για Windows 8, Windows RT και Surface Development and Hacking. Μπορείτε επίσης να βρείτε νήματα οδηγιών για ορισμένες συσκευές, όπου άλλοι χρήστες συζητούν το ίδιο.
Η παρουσία αυτού του backdoor εντοπισμού σφαλμάτων και η διαρροή του SBP είναι σημαντικές όχι μόνο για τους τρίτους ανάπτυξη κλειδωμένων συσκευών Windows, μας δείχνουν επίσης μια ζοφερή υπενθύμιση για το τι μπορεί να συμβεί εάν είναι σκόπιμα οι κερκόπορτες έχουν μείνει. Η πρόσφατη εστίαση στην ασφάλεια είχε στραφεί προς τις υπηρεσίες διερεύνησης που πιέζουν για την παρουσία τέτοιων κερκόπορτων που θα χρησιμοποιηθούν για να βοηθήσουν τους νομικούς ερευνητικούς σκοπούς τους. Αλλά αργά ή γρήγορα, αυτές οι μέθοδοι θα πέσει σε λάθος χέρια. Αυτό που προορίζεται να χρησιμοποιηθεί ως εργαλείο για την καταπολέμηση του εγκλήματος και τη βοήθεια στη δικαιοσύνη, θα γίνει τότε το εργαλείο για το ίδιο το έγκλημα μια μέρα.
Ποιες είναι οι σκέψεις σας για τη διαρροή του Debug SBP; Πιστεύετε ότι «Χρυσά Κλειδιά» σαν κι αυτά θα έπρεπε να υπάρχουν; Ενημερώστε μας στα σχόλια παρακάτω!