GWP-ASan e KFENCE

GWP-ASan e KFENCE são ferramentas de detecção probabilística de memória para o espaço do usuário e o kernel, respectivamente. Quando ativadas, um pequeno número de alocações é protegido com páginas de memória adicionais que cercam a memória alocada. Isso permite detectar overflows de buffer e uso após a liberação com uma sobrecarga de desempenho desprezível. Mesmo com uma pequena taxa de amostragem para as alocações protegidas, quando implantadas em grande escala, elas podem detectar bugs de segurança de memória de forma eficaz. Desde a introdução, essas ferramentas ajudaram a identificar vários bugs da plataforma e provaram ser uma ferramenta valiosa para melhorar a estabilidade e a segurança. Recomendamos que os fornecedores ativem e monitorem de perto os bugs detectados nos dispositivos dos usuários finais.

Os desenvolvedores precisam verificar a presença de falhas usando /data/tombstones, logcat ou monitorando o pipeline DropboxManager do fornecedor em busca de bugs do usuário final.

Para mais informações, consulte nossas documentações sobre depuração de código nativo do Android.

Depuração de código nativo da Plataforma Android

GWP-ASan para detectar bugs de segurança de memória no espaço do usuário

O GWP-ASan foi introduzido no Android 11 para alocações de heap do espaço do usuário. Quando o GWP-ASan detecta um bug, ele registra um relatório de falhas com Cause: [GWP-ASan]: e encerra o processo. Os relatórios de bugs contêm outras informações de alocação e desalocação que facilitam a identificação da causa raiz.

O GWP-ASan é ativado aleatoriamente, na inicialização, para 1% dos processos do sistema ou apps e para aplicativos que definem o android:gwpAsanMode no arquivo AndroidManifest.xml.

GWP-ASan

KFENCE para detectar bugs de segurança de memória do kernel

O Android 12 introduziu o KFENCE para alocações de heap do kernel. Quando o KFENCE detecta um bug, ele registra um relatório de falha inicializando com BUG: KFENCE,, desativa as páginas de proteção e continua a execução. Isso ativa um mecanismo de detecção de bugs do kernel que afeta minimamente a experiência do usuário.

Para saber mais sobre o KFENCE, consulte a documentação disponível em https://www.kernel.org.