Desinfetantes

Os sanitizadores são um grupo de ferramentas de análise dinâmica que encontram erros em programas em tempo de execução através de instrumentação adicional inserida pelo compilador. Isso inclui a detecção de problemas de segurança de memória . O Android suporta e recomenda fortemente o uso dos seguintes desinfetantes:

Desinfetante de endereço HWA (HWASan)

HWASan é o principal sanitizador para fornecer detecção de problemas de segurança de memória. Requer ARM64 e pode detectar:

  • Estouro ou underflow de buffer de pilha e heap
  • Heap use depois de grátis
  • Uso de pilha após escopo
  • Uso da pilha após retorno
  • Duplo grátis ou selvagem grátis

Desinfetante de endereço (ASan)

ASan é uma ferramenta semelhante ao HWASan. Funciona em mais plataformas, mas não é compatível com Android.

Desinfetante KernelAddress

KASan é a contraparte do kernel das ferramentas de espaço do usuário acima. Ele compartilha a mesma implementação do compilador. KASAN e ASan/HWASan são complementares, pois uma ferramenta se aplica ao kernel e outra ao espaço do usuário. Recomendamos ativar ambos ao mesmo tempo para reduzir o número de configurações de build e a matriz de testes.

Desinfetante de comportamento indefinido (UBSan)

O UBSan executa instrumentação em tempo de compilação para verificar vários tipos de comportamento indefinido (sem segurança de memória). Isso inclui verificação de estouro de número inteiro assinado e não assinado (IntSan), verificações de limites para matrizes de tamanho estaticamente (BoundsSan) e muitos outros tipos de comportamento indefinido. IntSan e BoundsSan também são adequados para ativação na produção como mitigação de segurança.