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

Το Android 14 μπορεί να προσθέσει μια νέα δυνατότητα beta που ονομάζεται "προηγμένη προστασία μνήμης" που μπορεί να προστατεύσει από σφάλματα ασφαλείας της μνήμης σε συμβατές συσκευές.

Η ασφάλεια της μνήμης αποτελεί βασική προτεραιότητα για την Google τελευταία, καθώς τα σφάλματα ασφάλειας μνήμης τείνουν να είναι μερικά από τα πιο σοβαρά σφάλματα στην ανάπτυξη λογισμικού. Στην πραγματικότητα, τα τρωτά σημεία ασφάλειας της μνήμης αντιπροσώπευαν την πλειοψηφία των σοβαρών Android τρωτά σημεία μέχρι το 2022, όταν η Google έγραψε ένα σημαντικό μέρος του νέου εγγενούς Android κωδικός στο Γλώσσα προγραμματισμού Rust αντί για C/C++. Η Google εργάζεται για την υποστήριξη άλλων μέσων για τον μετριασμό των τρωτών σημείων ασφάλειας της μνήμης στο Android, ένα από τα οποία ονομάζεται προσθήκη ετικετών μνήμης. Σε υποστηριζόμενες συσκευές που εκτελούνται Android 14, ενδέχεται να υπάρχει μια νέα ρύθμιση "προηγμένης προστασίας μνήμης" που θα μπορούσε να αλλάξει αυτήν τη δυνατότητα.

Το Memory Tagging Extension (MTE) είναι μια υποχρεωτική δυνατότητα υλικού των επεξεργαστών Arm v9 που προστατεύει από τη μνήμη σφάλματα ασφαλείας (με ένα μικρό κόστος απόδοσης χρόνου εκτέλεσης) παρέχοντας λεπτομερείς πληροφορίες σχετικά με τη μνήμη παραβιάσεις.

Όπως εξηγεί η Google, «σε υψηλό επίπεδο, το MTE επισημαίνει κάθε εκχώρηση/ανάθεση μνήμης με πρόσθετα μεταδεδομένα. Εκχωρεί μια ετικέτα σε μια θέση μνήμης, η οποία στη συνέχεια μπορεί να συσχετιστεί με δείκτες που αναφέρονται σε αυτήν τη θέση μνήμης. Κατά το χρόνο εκτέλεσης, η CPU ελέγχει ότι ο δείκτης και οι ετικέτες μεταδεδομένων ταιριάζουν σε κάθε φόρτωση και αποθήκευση."

Η Google εργάζεται για την υποστήριξη MTE σε όλη τη στοίβα λογισμικού Android για αρκετές εκδόσεις τώρα. Στο Android 12, το scudo, ο κατανεμητής σωρού του Android, πρόσθεσε υποστήριξη για τρεις τρόπους λειτουργίας MTE σε συμβατές συσκευές: σύγχρονη λειτουργία, ασύγχρονη λειτουργία και ασύμμετρη λειτουργία. Η Google κατέστησε επίσης δυνατή την ενεργοποίηση του MTE για διεργασίες συστήματος κατά το χρόνο κατασκευής ή μέσω ιδιοτήτων συστήματος ή/και μεταβλητών περιβάλλοντος. Οι εφαρμογές μπορούν να επιλέξουν την υποστήριξη MTE μέσω του android: memtagMode Χαρακτηριστικό. Όταν το MTE είναι ενεργοποιημένο για διεργασίες στο Android, ολόκληρες κατηγορίες σφαλμάτων ασφαλείας της μνήμης, όπως η χρήση μετά τη δωρεάν χρήση και οι υπερχειλίσεις buffer, προκαλούν ένα σφάλμα αντί για μια καταστροφή της αθόρυβης μνήμης.

Σε Android 13, η Google πρόσθεσε ένα ABI για το userspace για να επικοινωνήσει τον απαιτούμενο τρόπο λειτουργίας MTE στον bootloader. Αυτό θα μπορούσε να χρησιμοποιηθεί για την ενεργοποίηση του MTE σε συμβατές συσκευές που δεν αποστέλλονται με αυτό ενεργοποιημένο από προεπιλογή, ή εναλλακτικά θα μπορούσε να χρησιμοποιηθεί για την απενεργοποίησή του σε συμβατές συσκευές που το έχουν ενεργοποιήσει Προκαθορισμένο. Η ρύθμιση της ιδιότητας συστήματος ro.arm64.memtag.bootctl_supported σε "true" στο Android 13 θα πει στο σύστημα ότι ο bootloader υποστηρίζει το ABI και επίσης ενεργοποιεί ένα κουμπί για να εμφανιστεί στο μενού Επιλογές προγραμματιστή που επέτρεπε στον χρήστη να ενεργοποιήσει το MTE στο επόμενο επανεκκίνηση. Αυτό απευθυνόταν σε προγραμματιστές που ήθελαν να δοκιμάσουν τη συμπεριφορά των εφαρμογών τους με ενεργοποιημένο το MTE.

Στο Android 14, ωστόσο, η ενεργοποίηση του MTE σε συμβατές συσκευές ενδέχεται να απαιτεί πλέον την κατάδυση στις Επιλογές προγραμματιστή. Εάν η συσκευή διαθέτει CPU Arm v8.5+ με υποστήριξη MTE, η υλοποίηση της συσκευής υποστηρίζει το ABI για την επικοινωνία του ζητούμενου τρόπου λειτουργίας MTE στον φορτωτή εκκίνησης και το νέο Η ιδιότητα συστήματος «ro.arm64.memtag.bootctl_settings_toggle» έχει οριστεί ως αληθής και, στη συνέχεια, μπορεί να εμφανιστεί μια νέα σελίδα «προηγμένη προστασία μνήμης» στις Ρυθμίσεις > Ασφάλεια και απόρρητο > Περισσότερη ασφάλεια Ρυθμίσεις. Αυτή η σελίδα μπορεί επίσης να ξεκινήσει μέσω της νέας ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS δράση με πρόθεση.

Συγκεκριμένα, το chipset Tensor G2 στο Google Pixel 7 Η σειρά χρησιμοποιεί πυρήνες CPU Arm v8.2, επομένως δεν υποστηρίζει MTE. Εάν η επερχόμενη σειρά Google Pixel 8 χρησιμοποιεί νέους πυρήνες CPU Arm v9 όπως πολλές άλλες κορυφαίες συσκευές Android, τότε θα έχουν υλικό ικανό να υποστηρίζει MTE. Μένει να δούμε αν αυτή η δυνατότητα "προηγμένης προστασίας μνήμης" θα μπει πραγματικά στη σταθερή έκδοση.

Χάρη στον ερευνητή ασφάλειας @flawedworlddev για τη βοήθειά τους σε αυτό το άρθρο!