O Android 14 pode adicionar um recurso avançado de proteção de memória para proteger seu dispositivo contra bugs de segurança de memória

O Android 14 pode adicionar um novo recurso beta chamado “proteção avançada de memória” que pode proteger contra bugs de segurança de memória em dispositivos compatíveis.

A segurança da memória tem sido uma grande prioridade para o Google ultimamente, já que os bugs de segurança da memória tendem a ser alguns dos bugs mais graves no desenvolvimento de software. Na verdade, as vulnerabilidades de segurança de memória costumavam ser responsáveis ​​pela maioria dos problemas graves do Android. vulnerabilidades até 2022, quando o Google escreveu uma parte significativa do novo nativo do Android código no Linguagem de programação Rust em vez de C/C++. O Google tem trabalhado no suporte a outros meios para mitigar vulnerabilidades de segurança de memória no Android, um dos quais é chamado de marcação de memória. Em dispositivos suportados em execução Andróide 14, pode haver uma nova configuração de “proteção avançada de memória” que pode alternar esse recurso.

Memory Tagging Extension (MTE) é um recurso de hardware obrigatório das CPUs Arm v9 que protege contra memória bugs de segurança (com uma ligeira sobrecarga de custo de desempenho em tempo de execução), fornecendo informações detalhadas sobre a memória violações.

Como o Google explica, “em alto nível, o MTE marca cada alocação/desalocação de memória com metadados adicionais. Ele atribui uma tag a um local de memória, que pode então ser associado a ponteiros que fazem referência a esse local de memória. Em tempo de execução, a CPU verifica se o ponteiro e as tags de metadados correspondem em cada carregamento e armazenamento.”

O Google tem trabalhado para oferecer suporte ao MTE em toda a pilha de software Android em vários lançamentos. No Android 12, scudo, alocador de heap do Android, adicionou suporte para três modos operacionais MTE em dispositivos compatíveis: modo síncrono, modo assíncrono e modo assimétrico. O Google também tornou possível ativar o MTE para processos do sistema no momento da construção ou por meio de propriedades do sistema e/ou variáveis ​​de ambiente. Os aplicativos podem optar por oferecer suporte ao MTE por meio do Android: memtagMode atributo. Quando o MTE está habilitado para processos no Android, classes inteiras de bugs de segurança de memória, como uso após liberação e estouros de buffer, acionam uma falha em vez de uma corrupção silenciosa da memória.

Em Andróide 13, o Google adicionou uma ABI para o espaço do usuário comunicar o modo operacional MTE solicitado ao bootloader. Isso pode ser usado para ativar o MTE em dispositivos compatíveis que não são fornecidos com ele ativado por padrão, ou, alternativamente, pode ser usado para desativá-lo em dispositivos compatíveis que o tenham habilitado por padrão. Definir a propriedade do sistema ro.arm64.memtag.bootctl_supported como “true” no Android 13 informaria ao sistema que o bootloader suporta a ABI e também aciona o aparecimento de um botão no menu Opções do desenvolvedor que permite ao usuário habilitar o MTE no próximo reinício. O objetivo era destinado a desenvolvedores que desejavam testar o comportamento de seus aplicativos com o MTE habilitado.

No entanto, no Android 14, ativar o MTE em dispositivos compatíveis pode não exigir mais o mergulho nas opções do desenvolvedor. Se o dispositivo possuir uma CPU Arm v8.5+ com suporte MTE, a implementação do dispositivo suporta a ABI para comunicar o modo operacional MTE solicitado ao bootloader, e o novo propriedade do sistema ‘ro.arm64.memtag.bootctl_settings_toggle’ está definida como verdadeira, então uma nova página de “proteção avançada de memória” pode aparecer em Configurações > Segurança e privacidade > Mais segurança configurações. Esta página também pode ser lançada através do novo ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS ação intencional.

Notavelmente, o chipset Tensor G2 no Google Pixel 7 A série usa núcleos de CPU Arm v8.2, portanto, não oferece suporte a MTE. Se a próxima série Google Pixel 8 usar novos núcleos de CPU Arm v9 como muitos outros dispositivos Android emblemáticos fazem, então eles teriam hardware capaz de suportar MTE. Resta saber se esse recurso de “proteção avançada de memória” realmente chegará à versão estável.

Agradecimentos ao pesquisador de segurança @flawedworlddev pela ajuda neste artigo!