Aprimoramentos de segurança no Android 4.3

Cada versão do Android inclui dezenas de aprimoramentos de segurança para proteger os usuários. A seguir estão alguns dos aprimoramentos de segurança disponíveis no Android 4.3:

  • Sandbox Android reforçado com SELinux. Esta versão fortalece a sandbox do Android usando o sistema de controle de acesso obrigatório (MAC) SELinux no kernel do Linux. O reforço do SELinux é invisível para usuários e desenvolvedores e adiciona robustez ao modelo de segurança do Android existente, mantendo a compatibilidade com os aplicativos existentes. Para garantir a compatibilidade contínua, esta versão permite o uso do SELinux em um modo permissivo. Este modo registra qualquer violação de política, mas não interromperá os aplicativos nem afetará o comportamento do sistema.
  • Nenhum programa setuid/setgid. Adicionado suporte para recursos do sistema de arquivos para arquivos do sistema Android e removeu todos os programas setuid/setguid. Isso reduz a superfície de ataque de raiz e a probabilidade de possíveis vulnerabilidades de segurança.
  • Autenticação ADB. Desde o Android 4.2.2, as conexões com o ADB são autenticadas com um par de chaves RSA. Isso evita o uso não autorizado do ADB onde o invasor tem acesso físico a um dispositivo.
  • Restringir Setuid de aplicativos Android. A partição /system agora é montada nosuid para processos gerados por zigoto, impedindo que aplicativos Android executem programas setuid. Isso reduz a superfície de ataque de raiz e a probabilidade de possíveis vulnerabilidades de segurança.
  • Limitação de capacidade. O zygote Android e o ADB agora usam prctl(PR_CAPBSET_DROP) para descartar recursos desnecessários antes de executar aplicativos. Isso impede que aplicativos Android e aplicativos iniciados a partir do shell adquiram recursos privilegiados.
  • Provedor AndroidKeyStore. O Android agora tem um provedor de armazenamento de chaves que permite que os aplicativos criem chaves de uso exclusivo. Isso fornece aos aplicativos uma API para criar ou armazenar chaves privadas que não podem ser usadas por outros aplicativos.
  • KeyChain éBoundKeyAlgorithm. A API do Keychain agora fornece um método (isBoundKeyType) que permite que os aplicativos confirmem que as chaves de todo o sistema estão vinculadas a uma raiz confiável de hardware para o dispositivo. Isso fornece um local para criar ou armazenar chaves privadas que não podem ser exportadas para fora do dispositivo, mesmo no caso de comprometimento da raiz.
  • NO_NEW_PRIVS. O zygote Android agora usa prctl(PR_SET_NO_NEW_PRIVS) para bloquear a adição de novos privilégios antes da execução do código do aplicativo. Isso impede que aplicativos Android executem operações que podem elevar privilégios via execve. (Isso requer o kernel Linux versão 3.5 ou superior).
  • Aprimoramentos de FORTIFY_SOURCE. Ativado FORTIFY_SOURCE no Android x86 e MIPS e chamadas strchr(), strrchr(), strlen() e umask() fortificadas. Isso pode detectar possíveis vulnerabilidades de corrupção de memória ou constantes de string não terminadas.
  • Proteções de realocação. Ativação de realocações somente leitura (relro) para executáveis ​​vinculados estaticamente e removeu todas as realocações de texto no código Android. Isso fornece defesa em profundidade contra possíveis vulnerabilidades de corrupção de memória.
  • EntropyMixer aprimorado. O EntropyMixer agora grava entropia no desligamento/reinicialização, além da mixagem periódica. Isso permite a retenção de toda a entropia gerada enquanto os dispositivos estão ligados e é especialmente útil para dispositivos que são reinicializados imediatamente após o provisionamento.
  • Correções de segurança. O Android 4.3 também inclui correções para vulnerabilidades específicas do Android. As informações sobre essas vulnerabilidades foram fornecidas aos membros da Open Handset Alliance e as correções estão disponíveis no Android Open Source Project. Para melhorar a segurança, alguns dispositivos com versões anteriores do Android também podem incluir essas correções.