Android 14 peut ajouter une fonctionnalité avancée de protection de la mémoire pour protéger votre appareil contre les bugs de sécurité de la mémoire

Android 14 peut ajouter une nouvelle fonctionnalité bêta appelée « protection avancée de la mémoire » qui peut protéger contre les bogues de sécurité de la mémoire sur les appareils compatibles.

La sécurité de la mémoire a été une priorité majeure pour Google ces derniers temps, car les bogues de sécurité de la mémoire ont tendance à être parmi les bogues les plus graves dans le développement de logiciels. En fait, les vulnérabilités de sécurité de la mémoire représentaient autrefois la majorité des problèmes graves d'Android. vulnérabilités jusqu'en 2022, date à laquelle Google a écrit une partie importante du nouveau natif d'Android code dans le Langage de programmation Rust au lieu de C/C++. Google a travaillé sur la prise en charge d'autres moyens pour atténuer les vulnérabilités de sécurité de la mémoire dans Android, dont l'un est appelé marquage de la mémoire. Sur les appareils pris en charge exécutant Android 14, il peut y avoir un nouveau paramètre de « protection avancée de la mémoire » qui pourrait activer cette fonctionnalité.

L'extension de marquage de mémoire (MTE) est une fonctionnalité matérielle obligatoire des processeurs Arm v9 qui protège contre la mémoire. bogues de sécurité (avec un léger surcoût de performance d'exécution) en fournissant des informations détaillées sur la mémoire violations. Comme Google l'explique, « à un niveau élevé, MTE marque chaque allocation/désallocation de mémoire avec des métadonnées supplémentaires. Il attribue une balise à un emplacement mémoire, qui peut ensuite être associée à des pointeurs faisant référence à cet emplacement mémoire. Au moment de l'exécution, le processeur vérifie que le pointeur et les balises de métadonnées correspondent à chaque chargement et stockage.

Google s'efforce de prendre en charge MTE dans l'ensemble de la pile logicielle Android depuis plusieurs versions. Dans Android 12, scudo, l'allocateur de tas d'Android, a ajouté la prise en charge de trois modes de fonctionnement MTE sur les appareils compatibles: le mode synchrone, le mode asynchrone et le mode asymétrique. Google a également rendu possible l'activation de MTE pour les processus système au moment de la construction ou via les propriétés système et/ou les variables d'environnement. Les applications peuvent choisir de prendre en charge MTE via le Android: ModeMemtag attribut. Lorsque MTE est activé pour les processus sous Android, des classes entières de bogues de sécurité de la mémoire, tels que l'utilisation après libération et les dépassements de tampon, déclenchent un crash au lieu d'une corruption silencieuse de la mémoire.

Dans Android 13, Google a ajouté un ABI pour l'espace utilisateur afin de communiquer le mode de fonctionnement MTE demandé au chargeur de démarrage. Cela pourrait être utilisé pour activer MTE sur des appareils compatibles qui ne sont pas livrés avec celui-ci activé par défaut, ou bien, il pourrait être utilisé pour le désactiver sur les appareils compatibles sur lesquels il est activé par défaut. Définir la propriété système ro.arm64.memtag.bootctl_supported sur « true » dans Android 13 indiquerait au système que le chargeur de démarrage prend en charge l'ABI et déclenche également l'apparition d'un bouton dans le menu Options du développeur qui permettait à l'utilisateur d'activer MTE lors du prochain redémarrer. Ceci était destiné aux développeurs qui souhaitaient tester le comportement de leurs applications avec MTE activé.

Dans Android 14, cependant, l’activation de MTE sur les appareils compatibles peut nécessiter plus de plongée dans les options de développement. Si l'appareil dispose d'un processeur Arm v8.5+ avec prise en charge MTE, l'implémentation de l'appareil prend en charge l'ABI pour communiquer le mode de fonctionnement MTE demandé au chargeur de démarrage, et le nouveau la propriété système « ro.arm64.memtag.bootctl_settings_toggle » est définie sur true, puis une nouvelle page « protection avancée de la mémoire » peut apparaître dans Paramètres > Sécurité et confidentialité > Plus de sécurité paramètres. Cette page peut également être lancée via le nouveau ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS action intentionnelle.

Notamment, le chipset Tensor G2 dans le GooglePixel 7 La série utilise des cœurs de processeur Arm v8.2, elle ne prend donc pas en charge MTE. Si la prochaine série Google Pixel 8 utilise de nouveaux cœurs de processeur Arm v9 comme le font de nombreux autres appareils Android phares, ils disposeront alors d'un matériel capable de prendre en charge MTE. Il reste cependant à voir si cette fonctionnalité de « protection avancée de la mémoire » sera réellement intégrée à la version stable.

Merci au chercheur en sécurité @flawedworlddev pour leur aide sur cet article !