Adopción de la extensión de etiquetado de memoria Arm en Android


Como parte de nuestro compromiso continuo para mejorar la seguridad del ecosistema de Android, nos estamos asociando con Arm para diseñar el extensión de etiquetado de memoria (MTE) Errores de seguridad de memoria, común en C y C ++, sigue siendo una de las mayores vulnerabilidades en la plataforma Android y, aunque ha habido esfuerzos de endurecimiento, los errores de seguridad de la memoria comprendieron más de la mitad de los errores de seguridad de alta prioridad en Android 9. Además, los errores de seguridad de la memoria se manifiestan como problemas de confiabilidad difíciles de diagnosticar, incluidos bloqueos esporádicos o corrupción silenciosa de datos. Esto lessen la satisfacción del usuario y aumenta el costo del desarrollo de software program. Herramientas de prueba de software program, como ASAN y HWASAN ayuda, pero su aplicabilidad en el components precise es limitada debido a los gastos generales notables.

MTE, una característica de components, tiene como objetivo mitigar aún más estos errores de seguridad de la memoria al permitirnos detectarlos con poca sobrecarga. Tiene dos modos de ejecución:

  • Modo preciso: Proporciona información más detallada sobre la infracción de memoria
  • Modo impreciso: Tiene una sobrecarga de CPU más baja y es más adecuado para estar siempre encendido.

Arm publicó recientemente un documento técnico sobre MTE y ha agregado documentación a Arm v8.5 Handbook de referencia de arquitectura.

Visualizamos varios modos de uso diferentes para MTE.

  • MTE proporciona una versión de ASAN/ /HWASAN eso es más fácil de usar para pruebas y borrosidad en entornos de laboratorio. Encontrará más errores en una fracción del tiempo y a un costo menor, reduciendo la complejidad del proceso de desarrollo. En muchos casos, MTE permitirá probar la seguridad de la memoria utilizando el mismo binario que se envió a producción. Los informes de errores producidos por MTE serán tan detallados y procesables como los de ASAN y HWASAN.
  • MTE se utilizará como mecanismo para probar escenarios de software package complejos en producción. Los desarrolladores de aplicaciones y los OEM podrán activar MTE de forma selectiva para partes de la pila de software. Cuando los usuarios hayan otorgado su consentimiento, los desarrolladores tendrán a su disposición informes de errores a través de mecanismos familiares como Consola Google Perform.
  • MTE se puede utilizar como una fuerte mitigación de seguridad en el sistema y las aplicaciones de Android para muchas clases de errores de seguridad de la memoria. Para la mayoría de los casos de tales vulnerabilidades, una mitigación probabilística basada en MTE podría evitar la explotación con una probabilidad top-quality al 90% de detectar cada acceso no válido a la memoria. Al implementar estas protecciones y asegurarnos de que los atacantes no puedan hacer repetidos intentos de explotar componentes críticos para la seguridad, podemos reducir significativamente el riesgo para los usuarios de problemas de seguridad de la memoria.

Creemos que el etiquetado de memoria detectará las clases más comunes de errores de seguridad de la memoria en la naturaleza, ayudando a los proveedores a identificarlos y corregirlos, desalentando a los actores maliciosos de explotarlos. Durante el año pasado, nuestro equipo ha estado trabajando para garantizar la disponibilidad de la plataforma Android y el software package de aplicación para MTE. Hemos implementado HWASAN, una implementación de computer software del concepto de etiquetado de memoria, para probar toda nuestra plataforma y algunas aplicaciones seleccionadas. Esta implementación ha descubierto cerca de 100 errores de seguridad de memoria. La mayoría de estos errores se detectaron en teléfonos habilitados para HWASAN en el uso diario. MTE mejorará en gran medida esto en términos de gastos generales, facilidad de implementación y escala. Paralelamente, hemos estado trabajando para apoyar a MTE en la cadena de herramientas del compilador LLVM y en el kernel de Linux. El soporte de la plataforma Android para MTE estará completo para cuando haya disponibilidad de silicio.

Google se compromete a admitir MTE en toda la pila de application de Android. Estamos trabajando con socios selectos de Arm Program On Chip (SoC) para probar el soporte MTE y esperamos una implementación más amplia de MTE en el ecosistema de program y hardware de Android. Basado en los puntos de datos actuales, MTE proporciona enormes beneficios a costos de rendimiento aceptables. Estamos considerando MTE como un posible requisito essential para ciertos niveles de dispositivos Android.

Gracias a Mitch Phillips, Evgenii Stepanov, Vlad Tsyrklevich, Mark Brand y Serban Constantinescu por sus contribuciones a esta publicación.




Enlace a la noticia primary