Android 14 puede agregar una función de protección de memoria avanzada para proteger su dispositivo de errores de seguridad de la memoria

Android 14 puede agregar una nueva función beta llamada "protección de memoria avanzada" que puede proteger contra errores de seguridad de la memoria en dispositivos compatibles.

La seguridad de la memoria ha sido una de las principales prioridades de Google últimamente, ya que los errores de seguridad de la memoria tienden a ser algunos de los errores más graves en el desarrollo de software. De hecho, las vulnerabilidades de seguridad de la memoria solían representar la mayoría de los problemas graves de Android. vulnerabilidades hasta 2022, que es cuando Google escribió una parte importante de la nueva versión nativa de Android. código en el lenguaje de programación óxido en lugar de C/C++. Google ha estado trabajando para respaldar otros medios para mitigar las vulnerabilidades de seguridad de la memoria en Android, uno de los cuales se llama etiquetado de memoria. En dispositivos compatibles que ejecutan Androide 14, es posible que haya una nueva configuración de "protección de memoria avanzada" que podría alternar esta función.

La extensión de etiquetado de memoria (MTE) es una característica de hardware obligatoria de las CPU Arm v9 que protege contra la memoria. errores de seguridad (con un ligero costo de rendimiento en tiempo de ejecución) al proporcionar información detallada sobre la memoria violaciones. Como explica Google, “en un nivel alto, MTE etiqueta cada asignación/desasignación de memoria con metadatos adicionales. Asigna una etiqueta a una ubicación de memoria, que luego puede asociarse con punteros que hacen referencia a esa ubicación de memoria. En tiempo de ejecución, la CPU verifica que el puntero y las etiquetas de metadatos coincidan en cada carga y almacenamiento”.

Google ha estado trabajando para admitir MTE en toda la pila de software de Android durante varias versiones. En Android 12, scudo, el asignador de montón de Android, agregó soporte para tres modos operativos MTE en dispositivos compatibles: modo síncrono, modo asíncrono y modo asimétrico. Google también hizo posible habilitar MTE para procesos del sistema en el momento de la compilación o mediante propiedades del sistema y/o variables de entorno. Las aplicaciones pueden optar por admitir MTE a través del android: modo memtag atributo. Cuando MTE está habilitado para procesos en Android, clases enteras de errores de seguridad de la memoria, como el uso después de la liberación y los desbordamientos del búfer, provocan una falla en lugar de una corrupción silenciosa de la memoria.

En androide 13, Google agregó una ABI para que el espacio de usuario comunique el modo operativo MTE solicitado al gestor de arranque. Esto podría usarse para habilitar MTE en dispositivos compatibles que no se envían con él habilitado de forma predeterminada. o, alternativamente, podría usarse para deshabilitarlo en dispositivos compatibles que sí lo tienen habilitado por por defecto. Establecer la propiedad del sistema ro.arm64.memtag.bootctl_supported en "true" en Android 13 le indicaría al sistema que el gestor de arranque admite ABI y también activa la aparición de un botón en el menú Opciones de desarrollador que permite al usuario habilitar MTE en la siguiente reiniciar. Estaba dirigido a desarrolladores que querían probar el comportamiento de sus aplicaciones con MTE habilitado.

Sin embargo, en Android 14, habilitar MTE en dispositivos compatibles puede que ya no requiera profundizar en las Opciones de desarrollador. Si el dispositivo cuenta con una CPU Arm v8.5+ con soporte MTE, la implementación del dispositivo admite la ABI para comunicar el modo operativo MTE solicitado al gestor de arranque y el nuevo La propiedad del sistema 'ro.arm64.memtag.bootctl_settings_toggle' está configurada en verdadero, entonces puede aparecer una nueva página de "protección de memoria avanzada" en Configuración > Seguridad y privacidad > Más seguridad ajustes. Esta página también se puede iniciar a través del nuevo ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS acción intencional.

En particular, el chipset Tensor G2 en el Google Píxel 7 La serie utiliza núcleos de CPU Arm v8.2, por lo que no son compatibles con MTE. Si la próxima serie Google Pixel 8 utiliza nuevos núcleos de CPU Arm v9 como lo hacen muchos otros dispositivos Android emblemáticos, entonces tendrían hardware capaz de admitir MTE. Sin embargo, queda por ver si esta característica de "protección avanzada de memoria" realmente llegará a la versión estable.

Gracias al investigador de seguridad. @flawedworlddev ¡Por su ayuda en este artículo!