Desinfectantes

Los esterilizadores son un grupo de herramientas de análisis dinámico que encuentran errores en los programas durante el tiempo de ejecución a través de la instrumentación adicional que insertó el compilador. Esto incluye detectar problemas de seguridad de la memoria. Android admite los siguientes validadores y recomienda su uso:

AddressSanitizer asistido por hardware (HWASan)

HWASan es el limpiador principal que proporciona detección de problemas de seguridad de la memoria. Requiere ARM64 y puede detectar lo siguiente:

  • Desabastecimiento o desbordamiento del búfer de pila y montón
  • Uso de montón después de liberación
  • Uso de pila después del alcance
  • Uso de pila después de mostrar
  • Liberación doble o salvaje

Address Sanitizer (ASan)

ASan es una herramienta similar a HWASan. Funciona en más plataformas, pero no es compatible con Android.

KernelAddress Sanitizer (KASan)

KASan es la contraparte del kernel de las herramientas de espacio de usuario anteriores. Comparte la misma implementación del compilador. KASan y ASan/HWASan se complementan, ya que una herramienta se aplica al kernel y otra al espacio de usuario. Recomendamos habilitar ambos al mismo tiempo para reducir la cantidad de configuraciones de compilación y la matriz de pruebas.

UndefinedBehaviorSanitizer (UBSan)

UBSan realiza instrumentación en el tiempo de compilación para verificar varios tipos de comportamientos no definidos (no seguros para la memoria). Esto incluye la verificación de desbordamiento de números enteros firmados y sin firmar (IntSan), las verificaciones de límites para arrays de tamaño estático (BoundsSan) y muchos otros tipos de comportamientos no definidos. IntSan y BoundsSan también son adecuados para habilitarse en producción como una mitigación de seguridad.