O Android fornece um modelo de segurança de várias camadas descrito na Visão geral de segurança do Android . Cada atualização do Android inclui dezenas de aprimoramentos de segurança para proteger os usuários. Veja a seguir alguns dos aprimoramentos de segurança introduzidos nas versões do Android 1.5 a 4.1:
- Android 1.5
- ProPolice para evitar estouros de buffer de pilha (-fstack-protector)
- safe_iop para reduzir estouros de inteiros
- Extensões para dlmalloc do OpenBSD para evitar vulnerabilidades double free() e para evitar ataques de consolidação de blocos. Os ataques de consolidação de pedaços são uma maneira comum de explorar a corrupção de heap.
- Calloc OpenBSD para evitar estouros de inteiros durante a alocação de memória
- Android 2.3
- Proteções de vulnerabilidade de string de formato (-Wformat-security -Werror=format-security)
- No eXecute (NX) baseado em hardware para evitar a execução de código na pilha e no heap
- Linux mmap_min_addr para mitigar o escalonamento de privilégios de desreferência de ponteiro nulo (mais aprimorado no Android 4.1)
- Android 4.0
- Randomização de layout de espaço de endereço (ASLR) para randomizar locais de chave na memória
- Android 4.1
- Suporte PIE (Executável Independente de Posição)
- Realocações somente leitura/vinculação imediata (-Wl,-z,relro -Wl,-z,now)
- dmesg_restrict habilitado (evitar vazamento de endereços do kernel)
- kptr_restrict habilitado (evitar vazamento de endereços do kernel)