A MTE pode ser ativada de forma independente no kernel do Android e em qualquer no sistema Android. O Google não exige nenhuma configuração e visa fornecer flexibilidade máxima ao dispositivo de sites.
Este documento descreve as configurações e o escopo da MTE que, na nossa opinião, oferece um bom equilíbrio entre segurança e custo para o Android usuários como mitigação de vulnerabilidade sempre ativada.
Kernel
A MTE no kernel é configurada pela linha de comando. A por padrão é ATIVADO no modo de sincronização. Isso está sujeito a mudanças futuras para por vários motivos:
- Isso afeta significativamente a performance e as necessidades o trabalho de otimização.
- A qualidade do código do kernel é amplamente percebida como insuficiente para enviar MTE no modo de aplicação (ou seja, pânico em caso de falha).
A recomendação atual é desativar a MTE do kernel no
dispositivos de produção. Para fazer isso, adicione kasan=off
ao
linha de comando do kernel.
Espaço do usuário
O Google fornece uma lista padrão de binários do espaço do usuário a serem protegidos com a MTE. A lista foi composta com a entrada da equipe de segurança e inclui componentes privilegiados e/ou que lidam com dados de entrada. A lista atualizada de binários nativos recomendados com a MTE podem ser encontradas as memtag-common.mk (link em inglês) no build do Android sistema. Além disso, várias apps do sistema também estão incluídos: atualmente, Nfc, Bluetooth e SecureElement. Esses binários e apps são ativada no modo assíncrono por padrão.
A recomendação atual é usar a lista de destino padrão. (nenhuma alteração necessária). Além disso, é recomendável avaliar Adições de BSP e OEM ao sistema principal e permitem a MTE que exigem segurança.
Apps
Os três aplicativos do sistema listados acima são os únicos que usam
MTE no momento. Para que um app de terceiros ative
MTE, o AndroidManifest.xml
precisaria especificar
android:memtagMode
com um valor diferente
de off
. Assim, conjuntos comuns de parâmetros de comparação,
O Geekbench ou o AnTuTu não funcionam com a MTE. Se a MTE do kernel também for
desativado (veja o kasan=off
acima), os comparativos de mercado serão
o impacto no desempenho é muito limitado.
Quanto aos outros apps, há um desenvolvimento ativo de suporte à MTE na
Chrome. A versão atual do Chrome na Play Store inclui
memtagMode=async
no manifesto. Também é nossa expectativa
de que diversos apps voltados à segurança no ecossistema Android
(por exemplo, apps bancários) fariam o mesmo. No(s) dia(s)
por outro lado, alguns aplicativos que exigem
pico da CPU
como jogos, manterão a MTE desativada.
Outros modos
As instruções acima usam apenas o modo MTE assíncrono em todos os lugares. Dependendo do hardware, outros modos podem ser quase, ou com a mesma velocidade. Eles também oferecem diagnósticos e diagnósticos propriedades de mitigação de vulnerabilidades mais eficientes.
Recomendamos testar uma ou duas outras configurações
são suficientes para seus
requisitos de desempenho/energia. Modos da MTE
podem ser definidas para cada núcleo da CPU no sistema, gravando no
/sys/devices/system/cpu/cpu*/mte_tcf_preferred
: Por exemplo, escrever
sync
(ou asymm
) causaria qualquer processo do espaço do usuário solicitado
Modo assíncrono para fazer upgrade automático de forma silenciosa para sincronização (ou Asymm) enquanto
em execução nesse núcleo. Essa configuração pode ser feita em um arquivo .rc no dispositivo
o tempo de inicialização.
Recomendamos medir uma ou duas outras configurações para verificar se atendem aos seus requisitos de desempenho e energia. Algumas configurações interessantes a serem exploradas:
- Asymm em todos os núcleos.
- Asymm em núcleos grandes e Sync em outros núcleos.
Para verificar se um processo está solicitando o modo assíncrono (com possíveis upgrade automático), verifique se a linha a seguir inclui PR_MTE_TCF_SYNC e PR_MTE_TCF_ASYNC:
debuggerd <PID> | head -30 | grep tagged_addr
Infelizmente, não há uma maneira fácil de ver o modo eficaz de uma processo mas qualquer processo que mostre os dois valores listados acima sujeito ao comportamento de upgrade automático.