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 protegen con páginas de memoria adicionales que rodean la memoria asignada. Esto permite detectar desbordamientos de búfer y uso después de la liberación con una sobrecarga de rendimiento insignificante. Incluso con una pequeña frecuencia de muestreo para las asignaciones protegidas, cuando se implementan a escala pueden detectar eficazmente errores de seguridad de la memoria. 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 a monitorear de cerca los errores detectados en los dispositivos de los usuarios finales.

Los desarrolladores deben verificar la presencia de fallas verificando /data/tombstones , logcat o monitoreando la canalización DropboxManager del proveedor para detectar errores del usuario final.

Para obtener más información, consulte nuestros documentos sobre depuración de 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 montón de espacio de usuario. Cuando GWP-ASan detecta un error, registra un informe de fallo 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 raíz.

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 asignaciones de montón de kernel. Cuando KFENCE detecta un error, registra un informe de fallo que comienza con BUG: KFENCE, desactiva las páginas de protección y continúa 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