Android предоставляет многоуровневую модель безопасности, описанную в обзоре безопасности Android . Каждое обновление для Android включает десятки улучшений безопасности для защиты пользователей. Ниже приведены некоторые улучшения безопасности, представленные в версиях Android с 1.5 по 4.1:
- Андроид 1.5
- ProPolice для предотвращения переполнения буфера стека (-fstack-protector)
- safe_iop для уменьшения целочисленных переполнений
- Расширения для OpenBSD dlmalloc для предотвращения уязвимостей double free() и предотвращения атак консолидации фрагментов. Атаки с консолидацией фрагментов являются распространенным способом использования повреждения кучи.
- Calloc OpenBSD для предотвращения целочисленного переполнения во время выделения памяти
- Андроид 2.3
- Защита от уязвимостей строки формата (-Wformat-security -Werror=format-security)
- Аппаратный No eXecute (NX) для предотвращения выполнения кода в стеке и куче
- Linux mmap_min_addr для смягчения повышения привилегий разыменования нулевого указателя (дополнительно улучшено в Android 4.1)
- Андроид 4.0
- Рандомизация адресного пространства (ASLR) для рандомизации ключевых местоположений в памяти.
- Андроид 4.1
- Поддержка PIE (позиционно-независимый исполняемый файл)
- Перемещение только для чтения/немедленная привязка (-Wl,-z,relro -Wl,-z,now)
- dmesg_restrict включен (предотвращает утечку адресов ядра)
- kptr_restrict включен (предотвращает утечку адресов ядра)