Skip to content

Latest commit

 

History

History
57 lines (55 loc) · 4.3 KB

android_mitigations.md

File metadata and controls

57 lines (55 loc) · 4.3 KB

We list mitigations added in all Android versions.

Version (and date) Mitigation References
2.3 Binaries compiled with non-executable stack and heap ?
2.3 Stack ramdomised ?
4.0 Libraries randomised ?
4.0.2 Heap randomised ?
4.1 default umask 0077 ?
4.1 Linker randomised ?
4.1 isolatedProcess introduction ?
4.1.1 mmap_min_addr increased to 32768 ?
4.1.1 /proc/kallsyms not available. kptr_restrict to control it. 9 10 11
4.3 SELinux in permissive mode ?
4.3 deletion of setuid/setgid binaries ?
4.3 deletion of Linux capabilities in dans zygote/adbd ?
4.4 SELinux in enforcing mode to crucial domains ?
5.0 SELinux in enforcing mode to all domains 12
6.x? isolatedApplicationData 13
6.x? preventAppDataExecution 1
N UndefinedBehaviorSanitizer (UBSan) allowing Integer Overflow Sanitization (IntSan) in media stack 2 3
N mediaserver containment / some media services are in their individual service processes (sandboxed) 4 5
? trustzone 6
O Privileged Access Never (PAN) emulation 7 8
O Hardened usercopy (w/o whitelist) 7 8
O Post-init read-only memory (__ro_after_init) 7 8
O Kernel Address Space Layout Randomization (KASLR) 8
O media service processes converted into HALs 5 15
O SECURE_DELETE on SQLite databases 16
O Control Flow Integrity (CFI) in select components 3
P Control Flow Integrity (CFI) in more components by default (media framework, NFC, Bluetooth) 3 17 5
P Kernel Control Flow Integrity (kCFI) into Android common kernel 3 14
P Integer Overflow Sanitization (IntSan) in more libraries (libui, libnl, libmediaplayerservice, libexif, libdrmclearkeyplugin, libreverbwrapper) and reduced performance overhead by 75% 3
Q software media codecs moved into constrained sandbox in system service (mediaswcodec sandbox, based on SELinux and seccomp, no access to device drivers) 5
Q LLVM's bound sanitizer (BoundSan) to fail safely when array's overflow, at compile time, enabled on 11 media codecs and Bluetooth's stack 5
Q Integer Overflow Sanitization (IntSan) to fail safely when integer overflow, at compile time in all media framework 5
Q LLVM's Shadow Call Stack (SCS) to protect return addresses (x18 register) in Bluetooth stack and some parts of the kernel 5
Q eXecute-Only Memory (XOM) makes code unreadable for Aarch64, ARMv8.2+ and Linux 4.9+ devices 5
Q Scudo Hardened Allocator (resilience against UAF, double-frees, BOF, heap sprays) enabled in media extractors and codecs 5