O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Atualizações e recursos de segurança

A equipe de segurança do Android é responsável por gerenciar as vulnerabilidades de segurança descobertas na plataforma Android e muitos dos principais aplicativos Android incluídos nos dispositivos Android.

A equipe de segurança do Android encontra vulnerabilidades de segurança por meio de pesquisas internas e também responde a bugs relatados por terceiros. As fontes de erros externos incluem problemas relatados pelo modelo do Android Security Issue , pesquisas acadêmicas publicadas e pré-publicadas, mantenedores de projetos de código aberto, notificações de nossos parceiros fabricantes de dispositivos e problemas divulgados publicamente publicados em blogs ou mídias sociais.

Relatar problemas de segurança

Qualquer desenvolvedor, usuário do Android ou pesquisador de segurança pode notificar a equipe de segurança do Android sobre possíveis problemas de segurança através do formulário de relatório de vulnerabilidades de segurança .

Os erros marcados como problemas de segurança não são visíveis externamente, mas podem eventualmente se tornar visíveis após a avaliação ou resolução do problema. Se você planeja enviar um patch ou um teste do Compatibility Test Suite (CTS) para resolver um problema de segurança, anexe-o ao relatório de erros e aguarde uma resposta antes de enviar o código ao AOSP.

Triaging bugs

A primeira tarefa ao lidar com uma vulnerabilidade de segurança é identificar a gravidade do bug e qual componente do Android é afetado. A gravidade determina como o problema é priorizado e o componente determina quem corrige o erro, quem é notificado e como a correção é implantada nos usuários.

Tipos de processo

Esta tabela cobre as definições dos tipos de processo. O tipo de processo pode ser definido pelo tipo de aplicativo ou processo ou pela área em que é executado. Esta tabela está ordenada do menos para o mais privilegiado.

Tipo de processo Definição de tipo
Processo restrito Um processo que é executado em um domínio SELinux altamente limitado.
OU
Um processo significativamente mais limitado que um aplicativo normal.
Processo não privilegiado Um aplicativo ou processo de terceiros.
OU
Um aplicativo ou processo que corre no SELinux untrusted_app domínio.
Processo privilegiado Um aplicativo ou processo com capacidades que seriam proibidos pelo SELinux untrusted_app domínio.
OU
Um aplicativo ou processo com privilégios importantes que um aplicativo de terceiros não pode obter.
OU
Um componente de hardware interno no dispositivo que não faz parte da base de computação confiável (TCB).
Base de computação confiável (TCB) A funcionalidade que faz parte do kernel, é executada no mesmo contexto de CPU que o kernel (como drivers de dispositivo), tem acesso direto à memória do kernel (como componentes de hardware no dispositivo), tem a capacidade de carregar scripts em um componente do kernel ( por exemplo, eBPF), o processador de banda base ou é um dos vários serviços de usuário considerados equivalentes ao kernel: init , ueventd e vold .
Carregador de inicialização Um componente que configura o dispositivo na inicialização e passa o controle para o sistema operacional Android.
Ambiente de Execução Confiável (TEE) Um componente projetado para ser protegido até de um kernel hostil.
Elemento seguro (SE) Um componente opcional projetado para ser protegido de todos os outros componentes no dispositivo e contra ataques físicos, conforme definido em Introdução aos elementos seguros .

Gravidade

A severidade de um bug geralmente reflete o dano potencial que poderia ocorrer se um bug fosse explorado com êxito. Use os seguintes critérios para determinar a gravidade.

Avaliação Consequência da exploração bem-sucedida
Crítico
  • Acesso não autorizado a dados protegidos pelo SE
  • Execução de código arbitrário no TEE ou SE
  • Execução remota de código arbitrário em um processo privilegiado, carregador de inicialização ou no TCB
  • Negação de serviço permanente remota (inoperabilidade do dispositivo: completamente permanente ou exigindo reflash de todo o sistema operacional ou uma redefinição de fábrica)
  • Ignorar remotamente os requisitos de interação do usuário na instalação do pacote ou comportamento equivalente
  • Ignorar remotamente os requisitos de interação do usuário para qualquer desenvolvedor, segurança ou configurações de privacidade
  • Bypass de inicialização segura remota
  • Ignorar os mecanismos de segurança projetados para impedir o mau funcionamento de componentes críticos de hardware (por exemplo, proteções térmicas)
Alto
  • Bypass de inicialização segura local
  • Um desvio completo de um recurso de segurança principal (como SELinux, FDE ou seccomp)
  • Execução remota de código arbitrário em um processo não privilegiado
  • Execução de código arbitrário local em um processo privilegiado, carregador de inicialização ou no TCB
  • Acesso não autorizado a dados protegidos pelo ETE
  • Ataques contra um SE que resultam em um downgrade para uma implementação menos segura
  • Ignorar localmente os requisitos de interação do usuário na instalação do pacote ou comportamento equivalente
  • Acesso remoto a dados protegidos (dados limitados a um processo privilegiado)
  • Negação de serviço permanente local (inoperabilidade do dispositivo: permanente ou exigindo reflashing de todo o sistema operacional ou redefinição de fábrica)
  • Ignorar remotamente os requisitos de interação do usuário (acesso à funcionalidade ou aos dados que normalmente exigiriam iniciação ou permissão do usuário)
  • Transmissão de informações confidenciais por um protocolo de rede inseguro (por exemplo, HTTP e Bluetooth não criptografado) quando o solicitante espera uma transmissão segura (observe que isso não se aplica à criptografia Wi-Fi, como WEP)
  • Um desvio geral para uma defesa profunda ou explorar a tecnologia de mitigação no gerenciador de inicialização ou no TEE
  • Um desvio geral para proteções do sistema operacional que isolam os dados de aplicativos ou perfis de usuários entre si
  • Ignorar localmente os requisitos de interação do usuário para qualquer desenvolvedor, segurança ou configurações de privacidade
  • Vulnerabilidade criptográfica na TLS (Standard Transport Layer Security) que permite ataques do tipo man-in-the-middle
  • Desvio de tela de bloqueio
  • Desvio da proteção do dispositivo / proteção de redefinição de fábrica / restrições da transportadora
  • Prevenção direcionada do acesso a serviços de emergência
  • Ignorar os requisitos de interação do usuário que são protegidos pelo TEE
Moderado
  • Execução remota de código arbitrário em um processo restrito
  • Negação de serviço temporária remota do dispositivo (parada ou reinicialização remota)
  • Execução de código arbitrário local em um processo não privilegiado
  • Um desvio geral para uma defesa em profundidade ou explorar a tecnologia de mitigação em um processo privilegiado ou no TCB
  • Ignorar restrições em um processo restrito
  • Acesso remoto a dados não protegidos (dados normalmente acessíveis a qualquer aplicativo instalado localmente)
  • Acesso local a dados protegidos (dados limitados a um processo privilegiado)
  • Ignorar localmente os requisitos de interação do usuário (acesso à funcionalidade que normalmente exigiria iniciação ou permissão do usuário)
  • Vulnerabilidade criptográfica em primitivas criptográficas padrão que permite vazamento de texto sem formatação (não primitivas usadas no TLS)
  • Ignorando a criptografia ou autenticação Wi-Fi de uma maneira que permita que um invasor se conecte ao dispositivo Android ao atuar como ponto de acesso ou ao ponto de acesso à rede (AP) ao qual o dispositivo está conectado
Baixo
  • Execução de código arbitrário local em um processo restrito
  • Vulnerabilidade criptográfica em uso não padrão
  • Um desvio geral para uma defesa no nível do usuário em profundidade ou explorar a tecnologia de mitigação em um processo não privilegiado
Sem impacto na segurança (NSI)
  • Uma vulnerabilidade cujo impacto foi atenuado por um ou mais modificadores de classificação ou arquitetura específica da versão muda de forma que a gravidade efetiva esteja abaixo de Baixa, embora o problema de código subjacente possa permanecer

Modificadores de classificação

Embora a gravidade das vulnerabilidades de segurança seja fácil de identificar, as classificações podem mudar com base nas circunstâncias.

Razão Efeito
Requer execução como um processo privilegiado para executar o ataque -1 Gravidade
Detalhes específicos da vulnerabilidade limitam o impacto do problema -1 Gravidade
Configurações de compilador ou plataforma atenuam uma vulnerabilidade no código fonte Gravidade moderada se a vulnerabilidade subjacente for Moderada ou superior
Requer acesso físico aos dispositivos internos do dispositivo e ainda é possível se o telefone estiver desligado ou não tiver sido desbloqueado desde que foi ligado -1 Gravidade
Requer acesso físico aos dispositivos internos enquanto o telefone está ligado e foi desbloqueado anteriormente -2 Gravidade
Um ataque local que requer que o gerenciador de inicialização seja desbloqueado Não superior a baixo
Um ataque local que requer que o Modo desenvolvedor ou qualquer configuração persistente do modo desenvolvedor seja ativada no dispositivo (e não é um bug no Modo desenvolvedor). Não superior a baixo
Se nenhum domínio SELinux puder conduzir a operação sob o SEPolicy fornecido pelo Google Sem impacto na segurança

Local versus remoto

Um vetor de ataque remoto indica que o bug pode ser explorado sem a instalação de um aplicativo ou sem acesso físico a um dispositivo. Isso inclui erros que podem ser acionados navegando até uma página da Web, lendo um email, recebendo uma mensagem SMS ou conectando-se a uma rede hostil. Para fins de nossas classificações de gravidade, a equipe de segurança do Android também considera remotos os vetores de ataque "proximais". Isso inclui bugs que podem ser explorados apenas por um invasor que está fisicamente próximo ao dispositivo de destino, por exemplo, um bug que exige o envio de pacotes Wi-Fi ou Bluetooth malformados. A equipe de segurança do Android considera os ataques baseados em NFC como proximais e, portanto, remotos.

Os ataques locais exigem que a vítima execute um aplicativo, instalando e executando um aplicativo ou consentindo em executar um aplicativo instantâneo . Para fins de classificações de gravidade, a equipe de segurança do Android também considera os vetores de ataque físico como locais. Isso inclui erros que podem ser explorados apenas por um invasor que tem acesso físico ao dispositivo, por exemplo, um erro em uma tela de bloqueio ou que requer a conexão de um cabo USB. Observe que os ataques que exigem uma conexão USB têm a mesma gravidade, independentemente de o dispositivo precisar ou não ser desbloqueado; é comum que os dispositivos sejam desbloqueados enquanto estiverem conectados ao USB.

Segurança Wi-Fi

O Android assume que todas as redes são hostis e podem estar injetando ataques ou espionando o tráfego. Para garantir que os adversários no nível da rede não ignorem as proteções de dados do aplicativo, o Android recomenda enfaticamente que todo o tráfego de rede use criptografia de ponta a ponta. A criptografia no nível do link é insuficiente.

Componente afetado

A equipe de desenvolvimento responsável por corrigir o bug depende de qual componente o bug está. Pode ser um componente principal da plataforma Android, um driver de kernel fornecido por um fabricante de equipamento original (OEM) ou um dos aplicativos pré-carregados em dispositivos Pixel .

Os erros no código AOSP são corrigidos pela equipe de engenharia do Android. Erros de baixa gravidade, erros em determinados componentes ou erros já conhecidos publicamente podem ser corrigidos diretamente na ramificação principal do AOSP publicamente disponível; caso contrário, eles serão corrigidos em nossos repositórios internos primeiro.

O componente também é um fator de como os usuários obtêm atualizações. Um bug na estrutura ou no kernel requer uma atualização de firmware over-the-air (OTA) que cada OEM precisa enviar. Um bug em um aplicativo ou biblioteca publicado no Google Play (por exemplo, Gmail, Google Play Services ou WebView) pode ser enviado aos usuários do Android como uma atualização do Google Play.

Notificando parceiros

Quando uma vulnerabilidade de segurança no AOSP é corrigida em um boletim de segurança do Android, notificaremos os parceiros do Android sobre detalhes do problema e forneceremos patches. A lista de versões suportadas pelo backport muda a cada nova versão do Android. Entre em contato com o fabricante do dispositivo para obter a lista de dispositivos suportados.

Liberando código para AOSP

Se o bug de segurança estiver em um componente AOSP, a correção será enviada para o AOSP após o lançamento do OTA para os usuários. As correções para problemas de baixa gravidade podem ser enviadas diretamente à ramificação principal do AOSP antes que uma correção esteja disponível para os dispositivos por meio de uma OTA.

Recebendo atualizações do Android

As atualizações no sistema Android geralmente são entregues aos dispositivos por meio de pacotes de atualização OTA. Essas atualizações podem vir do OEM que produziu o dispositivo ou da transportadora que presta serviços ao dispositivo. As atualizações do dispositivo Google Pixel vêm da equipe do Google Pixel depois de passar por um procedimento de teste de aceitação técnica da operadora (TA). O Google também publica imagens de fábrica Pixel que podem ser carregadas lateralmente nos dispositivos.

Atualizando serviços do Google

Além de fornecer correções para bugs de segurança, a equipe de segurança do Android analisa os bugs de segurança para determinar se existem outras maneiras de proteger os usuários. Por exemplo, o Google Play verifica todos os aplicativos e remove qualquer aplicativo que tente explorar um bug de segurança. Para aplicativos instalados fora do Google Play, os dispositivos com o Google Play Services também podem usar o recurso Verificar aplicativos para alertar os usuários sobre aplicativos que podem ser potencialmente prejudiciais.

Outros recursos

Informações para desenvolvedores de aplicativos Android: https://developer.android.com

As informações de segurança existem nos sites Android Open Source e Developer. Bons lugares para começar:

Relatórios

Às vezes, a equipe do Android Security publica relatórios ou documentos técnicos. Consulte Relatórios de segurança para mais detalhes.