GWP-ASan e KFENCE

GWP-ASan e KFENCE são ferramentas de detecção de memória probabilística para o espaço do usuário e o kernel, respectivamente. Quando ativado, um pequeno número de alocações é protegido com páginas de memória adicionais que circundam a memória alocada. Isso permite detectar estouros de buffer e liberações de uso após uma sobrecarga de desempenho insignificante. Mesmo com uma pequena taxa de amostragem para as alocações protegidas, quando implantados em escala, eles podem detectar efetivamente bugs de segurança de memória. Desde a sua 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. Incentivamos os fornecedores a habilitá-los e monitorar de perto os bugs detectados nos dispositivos do usuário final.

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

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

Depurando o 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 de espaço de usuário. Quando o GWP-ASan detecta um bug, ele registra um relatório de falha com Cause: [GWP-ASan]: e encerra o processo. Os relatórios de bugs contêm informações adicionais 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 ou aplicativos do sistema e para aplicativos que definem o android:gwpAsanMode em seu 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 começando com BUG: KFENCE, desabilita as páginas de guarda e continua a execução. Isso habilita um mecanismo de detecção de bug 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