O Project Mainline do Google no Android Q ajudará a acelerar as atualizações de segurança

Durante a conferência de desenvolvedores Google I/O 2019, o Google anunciou o Project Mainline – um esforço para acelerar atualizações de segurança por meio de módulos no Android Q.

A fragmentação da versão do Android é um dos maiores desafios que o Google deve resolver. Embora os smartphones Google Pixel estejam entre os smartphones mais seguros do mercado graças aos incríveis esforços do Pixel e Engenheiros AOSP, muitos outros smartphones são vulneráveis ​​a explorações devido à execução de versões desatualizadas do sistema operacional ou patch de segurança desatualizado níveis. O último relatório do Gartner mostra que o Android 9 Pie é um sistema operacional incrivelmente seguro, mas apenas aproximadamente 10% de todos os smartphones estão em lançamento.

Visão geral dos sistemas operacionais móveis e segurança de dispositivos de 2019: uma comparação de relatórios de plataformas. Fonte: Gartner. Através da: Google.

O Google está enfrentando a fragmentação de versões com iniciativas como

Projeto Agudos, uma grande rearquitetura do Android resultando em uma separação entre os componentes da estrutura do sistema operacional Android e os componentes HAL do fornecedor, Kernel Linux estendido LTS, atualizações obrigatórias de patches de segurança por 2 anos, e Recomendado para Android Enterprise. No Google I/O 2019, a empresa anunciou sua mais recente iniciativa para acelerar as atualizações de segurança: Project Mainline para Android Q.

Linha principal do projeto: atualização de módulos do sistema Android Q por meio do Google Play

Nos últimos meses, rastreamos algo chamado "ÁPICE"na AOSP. APEX, ou Pônei Android Express, é um novo tipo de pacote semelhante a um APK. Em vez de abrigar um aplicativo Android, no entanto, o APEX abriga uma biblioteca nativa ou de classes, código pré-compilado que pode ser chamado por aplicativos Android, Camadas de Abstração de Hardware (HAL) e Android Tempo de execução (ART). Assim como o APK, os pacotes APEX podem ser fornecidos aos usuários por meio de métodos tradicionais de instalação de pacotes no Android: Google Play Store/gerenciador de pacotes ou ADB.

Os módulos APEX podem ser usados ​​muito mais cedo no processo de inicialização do que os módulos baseados em APK e também são apoiados por dm-verity e Android Verified Boot para maior segurança. A montagem das imagens de carga útil no pacote APEX requer o driver de loop do kernel Linux, portanto, os dispositivos precisam da versão 4.9+ do kernel Linux. O gerenciamento dos pacotes APEX requer o novo daemon APEX, introduzido com o Android Q. Embora seja possível atualizar dispositivos para Android Q com kernel Linux 4.4 para suportar APEX (como o Google Pixel 3), os OEMs precisam mesclar patches adicionais para que funcione. Na maioria das vezes, apenas os dispositivos lançados com Android Q suportarão o Project Mainline.

As distribuições GNU/Linux há muito tempo são capazes de atualizar os componentes do sistema independentemente das atualizações completas do sistema, mas o Android sempre exigiu uma atualização do sistema para atualizá-los. O Google optou por não distribuir esses pacotes usando sistemas tradicionais de gerenciamento de pacotes Linux, como dpkg e rpm, porque eles não protegem os pacotes pós-instalação usando dm-verity.

Como leva muito tempo para os fabricantes de dispositivos lançarem atualizações, muitos dispositivos podem ter componentes de sistema desatualizados por dias, semanas ou até meses. Ao distribuir esses componentes como pacotes APEX, o Google pode contornar a longa espera até que os OEMs implementem uma atualização do sistema.

Os benefícios do Projeto Mainline. Fonte: Google.

No entanto, o Google não exerce controle total sobre todos os componentes do sistema. A empresa trabalhou com seus parceiros OEM para selecionar um conjunto de aplicativos de sistema (como APKs) e componentes de sistema (como APEX pacotes) para modularizar para que possam melhorar a segurança, a privacidade e a consistência para todos os usuários com dispositivos iniciados com AndroidQ. Embora o Google não tenha divulgado exatamente como surgiu o conjunto inicial de componentes do sistema, eles nos forneceu a lista de componentes do sistema em dispositivos lançados com Android Q que poderão ser atualizados por Google:

  • Segurança: Codecs de mídia, componentes de estrutura de mídia, resolvedor de DNS, Conscrypt
  • Privacidade: UI de documentos, controlador de permissão, ExtServices
  • Consistência: Dados de fuso horário, ANGLE (opção de desenvolvedores), metadados de módulo, componentes de rede, login de portal cativo, configuração de permissão de rede

Atualizações imediatas do Conscrypt, a biblioteca de segurança Java e dos componentes de mídia, que “representaram quase 40% das vulnerabilidades corrigidas recentemente”, tornarão os dispositivos Android mais seguros. As atualizações no Controlador de permissão melhorarão a privacidade. A padronização dos dados de fuso horário será útil para manter os dispositivos Android em todo o mundo na mesma página sempre que um país decidir alterar seu fuso horário. Além disso, os criadores de jogos beneficiarão da normalização dos ÂNGULO.

O Google está começando com esses componentes do sistema, mas poderá adicionar mais em versões futuras do Android. Desses 13 componentes, Conscrypt, dados de fuso horário, codecs de mídia e componentes de estrutura de mídia serão entregues como pacotes APEX. Os outros 9 componentes são APKs do sistema. Embora APEX e APKs possam ser entregues pelo Google Play, a atualização de um pacote APEX exigirá uma reinicialização. O Google ainda não compartilhou o fluxo da interface do usuário sobre como isso acontecerá, mas assim que os dispositivos começarem a ser lançados com Android Q, provavelmente aprenderemos mais informações sobre os pacotes Project Mainline e APEX.