GWP-ASan y KFENCE

GWP-ASan y KFENCE son herramientas de detección de memoria probabilística para el espacio de usuario y el kernel, respectivamente. Cuando está habilitado, una pequeña cantidad de asignaciones se protege con páginas de memoria adicionales que rodean la memoria asignada. Esto permite detectar desbordamientos de búfer y uso después de liberar con una sobrecarga de rendimiento insignificante. Incluso con una frecuencia de muestreo pequeña para las asignaciones protegidas, cuando se implementan a escala, pueden detectar errores de seguridad de la memoria de manera efectiva. Desde su introducción, estas herramientas han ayudado a identificar numerosos errores de la plataforma y han demostrado ser una herramienta valiosa para mejorar la estabilidad y la seguridad. Alentamos a los proveedores a habilitarlos y monitorear de cerca los errores detectados en los dispositivos de los usuarios finales.

Los desarrolladores deben comprobar la presencia de bloqueos consultando /data/tombstones , logcat o supervisando la canalización de DropboxManager del proveedor en busca de errores del usuario final.

Para obtener más información, consulte nuestros documentos sobre la depuración del código nativo de Android.

Depuración del código nativo de la plataforma Android

GWP-ASan para detectar errores de seguridad de la memoria del espacio de usuario

GWP-ASan se introdujo en Android 11 para asignaciones de almacenamiento dinámico de espacio de usuario. Cuando GWP-ASan detecta un error, registra un informe de bloqueo con Cause: [GWP-ASan]: y finaliza el proceso. Los informes de errores contienen información adicional de asignación y desasignación que facilita la identificación de la causa principal.

GWP-ASan se habilita aleatoriamente, al inicio, para el 1 % de los procesos o aplicaciones del sistema y para las aplicaciones que configuran android:gwpAsanMode en su archivo AndroidManifest.xml .

GWP-ASan

KFENCE para detectar errores de seguridad de la memoria del kernel

Android 12 introdujo KFENCE para las asignaciones de almacenamiento dinámico del kernel. Cuando KFENCE detecta un error, registra un informe de error que comienza con BUG: KFENCE, desactiva las páginas de protección y continúa con la ejecución. Esto habilita un mecanismo de detección de errores del kernel que afecta mínimamente la experiencia del usuario.

Para obtener más información sobre KFENCE, consulte la documentación disponible en https://www.kernel.org