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 Android seguros. Um modelo de segurança robusto é essencial para permitir um ecossistema vigoroso de apps e dispositivos criados na plataforma Android e com suporte de serviços de nuvem. Como resultado, durante todo o ciclo de vida de desenvolvimento, o Android passou por 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 fornecidos, expostos pela plataforma para trazer inovação e valor aos consumidores. Para isso, a plataforma oferece um ambiente de app que protege a confidencialidade, a integridade e a disponibilidade de usuários, dados, apps, dispositivos e redes.
Para proteger uma plataforma aberta, é preciso ter uma arquitetura de segurança forte e programas de segurança 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 relatar problemas de segurança e o processo de atualização, consulte Atualizações e recursos de segurança.
O Android foi projetado 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 fornecer uma plataforma estável para desenvolvimento, o Android oferece suporte adicional 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. Em dispositivos com o Google Play, o Play Services oferece atualizações de segurança para bibliotecas de software críticas, como o OpenSSL, usado para proteger as comunicações de apps. A segurança do Android lançou uma ferramenta para testar SSL (nogotofail) que ajuda 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 para segurança. Por exemplo, a tecnologia ARM TrustZone é usada para fornecer armazenamento seguro de 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 é afetado por vulnerabilidades críticas conhecidas que podem ser exploradas para prejudicar desenvolvedores e usuários.
Mais informações para desenvolvedores de apps Android estão disponíveis em developer.android.com.
O Android foi desenvolvido para usuários. Os usuários têm visibilidade das permissões solicitadas por cada app e controle sobre elas. Esse design inclui a expectativa de que os invasores tentem realizar ataques comuns, como engenharia social para convencer os usuários de dispositivos a instalar malware, e ataques a apps de terceiros no Android. O Android foi projetado para reduzir a probabilidade desses ataques e limitar muito o impacto deles caso sejam bem-sucedidos. 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 a qualquer dispositivo Android que continue recebendo atualizações de segurança.
Para mais informações para usuários finais, consulte a Central de Ajuda do Nexus, a Central de Ajuda do Pixel ou a Central de Ajuda do fabricante do dispositivo.
Esta página descreve as metas do programa de segurança do Android, 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 aborda problemas de segurança exclusivos de apps específicos, como os 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 e as considerações de segurança dos vários níveis da pilha de software do Android. Cada componente pressupõe que os componentes abaixo estão devidamente fixados. Com 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 de aplicativos.
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 conversores. O Android não depende de um processador específico, mas aproveita alguns recursos de segurança específicos do 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 de câmera, dados de GPS, funções de Bluetooth, funções de telefonia e conexões de rede, são acessados pelo sistema operacional.
- Tempo de execução de aplicativos Android:os apps Android são escritos com mais frequência na linguagem de programação Java e executados no tempo de execução do Android (ART). No entanto, muitos apps, incluindo serviços e apps principais 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, contidos no sandbox de aplicativos. 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 principal. Existem 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 oferecem recursos importantes do dispositivo que podem ser acessados por outros apps. Os apps pré-instalados podem fazer parte da plataforma Android de código aberto ou ser desenvolvidos por um fabricante de dispositivos para um aparelho específico.
- Apps instalados pelo usuário:o Android oferece um ambiente de desenvolvimento aberto que é compatível com 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 disponíveis para dispositivos Android compatíveis com o Google Mobile Services. 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 2018 da segurança do Android.
Os principais serviços de segurança do Google são:
- Google Play:o Google Play é um conjunto de serviços que permitem que os usuários descubram, instalem e comprem apps no dispositivo Android ou na Web. O Google Play facilita o alcance de usuários do Android e clientes em potencial pelos desenvolvedores. O Google Play também oferece revisão da comunidade, verificação de licença do app, verificação de segurança do app 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 OTA (over-the-air).
- Serviços de apps:frameworks que permitem que apps Android usem recursos da nuvem, como backup de dados e configurações de apps e mensagens da nuvem para o dispositivo (C2DM) para mensagens push.
- Verificar apps:avisa ou bloqueia automaticamente a instalação de apps nocivos e verifica continuamente os apps no dispositivo, avisando ou removendo apps nocivos.
- SafetyNet:um sistema de detecção de intrusão que preserva a privacidade para ajudar no rastreamento do Google, reduzir ameaças de segurança conhecidas e identificar novas ameaças.
- SafetyNet Attestation:API de terceiros para determinar se o dispositivo é compatível com o CTS. A declaração também pode identificar o app Android que está se comunicando com o servidor de apps.
- Gerenciador de dispositivos Android:um app da Web e um app 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çados e configuráveis. Cada recurso principal da plataforma é revisado 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 criados pelo Android e de código aberto são submetidos 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 fraquezas e possíveis vulnerabilidades muito antes dos principais lançamentos e simular os tipos de análise realizados por especialistas externos em segurança após o lançamento.
- Código aberto e análise da comunidade:o AOSP permite uma ampla análise de segurança por qualquer parte interessada. O Android também usa tecnologias de código aberto que passaram por uma revisão 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 a incidentes de segurança. Os membros da equipe de segurança do Android em tempo integral monitoram a comunidade de segurança geral e específica do Android para discutir possíveis vulnerabilidades e analisam 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 minimizar o risco potencial a todos os usuários do Android. Essas respostas compatíveis com a 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 fornece 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, reutilizando os controles de segurança tradicionais para:
- Proteja os dados de apps e usuários
- Proteger os recursos do sistema (incluindo a rede)
- Fornecer isolamento do app 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 entre processos segura
- Assinatura de apps
- Permissões definidas pelo app e concedidas pelo usuário