O Android incorpora recursos de segurança líderes do setor e trabalha com desenvolvedores e implementadores de dispositivos para manter a plataforma e o ecossistema do Android seguros. Um modelo de segurança robusto é essencial para permitir um ecossistema vigoroso de apps e dispositivos criados para a plataforma Android e com suporte de serviços de nuvem. Como resultado, durante todo o ciclo de vida de desenvolvimento, o Android foi sujeito a um programa de segurança rigoroso.
O Android foi projetado para ser aberto. Os apps Android usam hardware e software avançados, além de dados locais e veiculados, expostos pela plataforma para trazer inovação e valor aos consumidores. Para aproveitar esse valor, a plataforma oferece um ambiente de app que protege a confidencialidade, a integridade e a disponibilidade de usuários, dados, apps, dispositivos e a rede.
A proteção de uma plataforma aberta exige uma arquitetura de segurança forte e programas rigorosos. O Android foi projetado com segurança em várias camadas que é flexível o suficiente para oferecer suporte a uma plataforma aberta e proteger todos os usuários dela. Para informações sobre como informar problemas de segurança e o processo de atualização, consulte Atualizações e recursos de segurança.
O Android foi criado para desenvolvedores. Os controles de segurança foram feitos para ajudar os desenvolvedores. Quem entende bastante do tema tem acesso fácil a controles flexíveis e confiáveis. Quem conhece menos o assunto conta com a proteção dos padrões seguros.
Além de oferecer uma plataforma estável para desenvolvimento, o Android oferece mais suporte aos desenvolvedores de várias maneiras. A equipe de segurança do Android procura possíveis vulnerabilidades em apps e sugere maneiras de corrigir esses problemas. Para dispositivos com o Google Play, o Play Services oferece atualizações de segurança para bibliotecas de software essenciais, como o OpenSSL, que é usado para proteger comunicações de apps. A segurança do Android lançou uma ferramenta para testar SSL (nogotofail) que ajuda os desenvolvedores a encontrar possíveis problemas de segurança em qualquer plataforma em que estejam desenvolvendo.
O Android também usa o suporte de hardware subjacente para segurança. Por exemplo, a tecnologia ARM TrustZone é usada para fornecer armazenamento seguro para chaves criptográficas e atestados de integridade de inicialização. O DICE é usado para medir o firmware carregado antes da inicialização do Android. Isso permite a verificação remota de que o firmware não está afetado por vulnerabilidades críticas conhecidas que podem ser exploradas para prejudicar desenvolvedores e usuários.
Mais informações para desenvolvedores de apps Android podem ser encontradas em developer.android.com.
O Android foi desenvolvido para os usuários. Os usuários têm visibilidade sobre as permissões solicitadas por cada app e controle sobre elas. Esse design inclui a expectativa de que os invasores tentariam realizar ataques comuns, como ataques de engenharia social para convencer os usuários do dispositivo a instalar malware, e ataques a apps de terceiros no Android. O Android foi projetado para reduzir a probabilidade desses ataques e limitar significativamente o impacto deles, caso aconteçam. A segurança do Android continua avançando depois que o dispositivo está nas mãos do usuário. O Android trabalha com parceiros e o público para fornecer patches para qualquer dispositivo Android que continue a receber atualizações de segurança.
Mais informações para usuários finais podem ser encontradas na Central de Ajuda do Nexus, Central de Ajuda do Pixel ou na Central de Ajuda do fabricante do dispositivo.
Esta página descreve os objetivos do programa de segurança do Android, descreve os fundamentos da arquitetura de segurança do Android e responde às perguntas mais pertinentes para arquitetos de sistemas e analistas de segurança. Ele se concentra nos recursos de segurança da plataforma principal do Android e não discute problemas de segurança exclusivos de apps específicos, como aqueles relacionados ao navegador ou ao app de SMS.
Contexto
O Android oferece uma plataforma de código aberto e um ambiente de app para dispositivos móveis.
As seções e páginas abaixo descrevem os recursos de segurança da plataforma Android. A Figura 1 ilustra os componentes de segurança e as considerações dos vários níveis da pilha de software do Android. Cada component pressupõe que os componentes abaixo estejam devidamente protegidos. Com a exceção de uma pequena quantidade de código do SO Android executado como raiz, todo o código acima do kernel do Linux é restrito pelo sandbox do aplicativo.
Figura 1. Pilha de software do Android
Os principais elementos básicos da plataforma Android são:
- Hardware do dispositivo:o Android é executado em uma ampla variedade de configurações de hardware, incluindo smartphones, tablets, relógios, automóveis, smart TVs, caixas de jogos OTT e set-top boxes. O Android não depende do processador, mas aproveita alguns recursos de segurança específicos de hardware, como o ARM eXecute-Never.
- Sistema operacional Android:o sistema operacional principal é criado com base no kernel do Linux. Todos os recursos do dispositivo, como funções da câmera, dados de GPS, funções de Bluetooth, funções de telefonia e conexões de rede são acessados pelo sistema operacional.
- Ambiente de execução do aplicativo Android:os apps Android são geralmente criados na linguagem de programação Java e executados no ambiente de execução do Android (ART). No entanto, muitos apps, incluindo os principais serviços e apps do Android, são nativos ou incluem bibliotecas nativas. Tanto o ART quanto os apps nativos são executados no mesmo ambiente de segurança, contido no sandbox do aplicativo. Os apps recebem uma parte dedicada do sistema de arquivos em que podem gravar dados particulares, incluindo bancos de dados e arquivos brutos.
Os apps Android estendem o sistema operacional Android. Há duas fontes principais de apps:
- Apps pré-instalados:o Android inclui um conjunto de apps pré-instalados, como telefone, e-mail, agenda, navegador da Web e contatos. Eles funcionam como apps do usuário e fornecem os principais recursos do dispositivo que podem ser acessados por outros apps. Os apps pré-instalados podem fazer parte da plataforma Android de código aberto ou podem ser desenvolvidos por um fabricante de dispositivos para um dispositivo específico.
- Apps instalados pelo usuário:o Android oferece um ambiente de desenvolvimento aberto que oferece suporte a qualquer app de terceiros. O Google Play oferece aos usuários centenas de milhares de apps.
Serviços de segurança do Google
O Google oferece um conjunto de serviços baseados na nuvem que estão disponíveis para dispositivos Android compatíveis com os Serviços Móveis do Google. Embora esses serviços não façam parte do Android Open Source Project (AOSP), eles estão incluídos em muitos dispositivos Android. Para mais informações sobre alguns desses serviços, consulte a Retrospectiva de segurança do Android de 2018.
Os principais serviços de segurança do Google são:
- Google Play:é um conjunto de serviços que permite aos usuários descobrir, instalar e comprar apps no dispositivo Android ou na Web. O Google Play facilita o acesso dos desenvolvedores a usuários do Android e clientes em potencial. O Google Play também oferece a revisão da comunidade, verificação de licença, verificação de segurança de apps e outros serviços de segurança.
- Atualizações do Android:o serviço de atualização do Android oferece novos recursos e atualizações de segurança para dispositivos Android selecionados, incluindo atualizações pela Web ou over-the-air (OTA).
- Serviços de app:frameworks que permitem que apps Android usem recursos de nuvem, como (backup) de dados e configurações do app e mensagens de nuvem para dispositivo (C2DM) para mensagens push.
- Verificar apps:avisa ou bloqueia automaticamente a instalação de apps nocivos e verifica continuamente os apps no dispositivo, alertando sobre ou removendo apps nocivos.
- SafetyNet:um sistema de detecção de intrusões que preserva a privacidade para ajudar o Google a rastrear, reduzir ameaças de segurança conhecidas e identificar novas ameaças de segurança.
- SafetyNet Attestation:API de terceiros para determinar se o dispositivo é compatível com o CTS. A atestado também pode identificar o app Android que se comunica com o servidor do app.
- Gerenciador de dispositivos Android:um app da Web e do Android para localizar dispositivos perdidos ou roubados.
Visão geral do programa de segurança
Os principais componentes do Programa de segurança do Android incluem:
- Revisão de design:o processo de segurança do Android começa no início do ciclo de vida de desenvolvimento com a criação de um modelo e design de segurança avançado e configurável. Cada recurso importante da plataforma é analisado por recursos de engenharia e segurança, com controles de segurança adequados integrados à arquitetura do sistema.
- Teste de penetração e análise de código:durante o desenvolvimento da plataforma, os componentes de código aberto e criados pelo Android estão sujeitos a análises de segurança rigorosas. Essas revisões são realizadas pela equipe de segurança do Android, pela equipe de engenharia de segurança da informação do Google e por consultores de segurança independentes. O objetivo dessas análises é identificar pontos fracos e possíveis vulnerabilidades antes dos lançamentos principais e simular os tipos de análise que são realizados por especialistas em segurança externos após o lançamento.
- Código aberto e análise da comunidade:o AOSP permite uma análise de segurança ampla por qualquer parte interessada. O Android também usa tecnologias de código aberto que passaram por uma análise de segurança externa significativa, como o kernel do Linux. O Google Play oferece um fórum para que usuários e empresas forneçam informações sobre apps específicos diretamente aos usuários.
- Resposta a incidentes:mesmo com essas precauções, problemas de segurança podem ocorrer após o envio. Por isso, o projeto Android criou um processo abrangente de resposta à segurança. Os membros da equipe de segurança do Android em tempo integral monitoram a comunidade de segurança específica do Android e a comunidade de segurança geral para discutir possíveis vulnerabilidades e revisar bugs de segurança registrados no banco de dados de bugs do Android. Ao descobrir problemas legítimos, a equipe do Android tem um processo de resposta que permite a mitigação rápida de vulnerabilidades para garantir que o possível risco para todos os usuários do Android seja minimizado. Essas respostas com suporte à nuvem podem incluir a atualização da plataforma Android (atualizações do AOSP), a remoção de apps do Google Play e a remoção de apps de dispositivos em uso.
- Atualizações de segurança mensais:a equipe de segurança do Android oferece atualizações mensais para dispositivos Android do Google e todos os nossos parceiros de fabricação de dispositivos.
Arquitetura de segurança da plataforma
O Android busca ser o sistema operacional mais seguro e utilizável para plataformas móveis, reaproveitando os controles de segurança tradicionais de sistemas operacionais para:
- Proteger dados do app e do usuário
- Proteger os recursos do sistema (incluindo a rede)
- Oferecer isolamento de apps do sistema, de outros apps e do usuário
Para alcançar esses objetivos, o Android oferece os seguintes recursos de segurança:
- Segurança avançada no nível do SO com o kernel do Linux
- Sandbox obrigatório para todos os apps
- Comunicação segura entre processos
- Assinatura de apps
- Permissões definidas pelo app e concedidas pelo usuário