Home | History | Annotate | Download | only in enhancements
      1 page.title=Security Enhancements in Android 1.5 through 4.1
      2 @jd:body
      3 
      4 <p>
      5 Android provides a multi-layered security model described in the <a href="{@docRoot}security/index.html">Android
      6 Security Overview</a>. Each update to Android includes dozens of
      7 security enhancements to protect users.  The following are some of the security
      8 enhancements introduced in Android versions 1.5 through 4.1:</p>
      9 
     10 <dl>
     11 <dt><strong>Android 1.5</strong></dt>
     12 <dd><ul>
     13 <li>ProPolice to prevent stack buffer overruns (-fstack-protector)</li>
     14 <li>safe_iop to reduce integer overflows</li>
     15 <li>Extensions to OpenBSD dlmalloc to prevent double free() vulnerabilities and
     16 to prevent chunk consolidation attacks.  Chunk consolidation attacks are a
     17 common way to exploit heap corruption.</li>
     18 <li>OpenBSD calloc to prevent integer overflows during memory allocation</li>
     19 </ul>
     20 </dd>
     21 
     22 <dt><strong>Android 2.3</strong></dt>
     23 <dd><ul>
     24 <li>Format string vulnerability protections (-Wformat-security -Werror=format-security)</li>
     25 <li>Hardware-based No eXecute (NX) to prevent code execution on the stack and heap</li>
     26 <li>Linux mmap_min_addr to mitigate null pointer dereference privilege
     27 escalation (further enhanced in Android 4.1)</li>
     28 </ul>
     29 </dd>
     30 
     31 <dt><strong>Android 4.0</strong></dt>
     32 <dd>Address Space Layout Randomization (ASLR) to randomize key locations in memory
     33 </dd>
     34 
     35 <dt><strong>Android 4.1</strong></dt>
     36 <dd><ul>
     37 <li>PIE (Position Independent Executable) support</li>
     38 <li>Read-only relocations / immediate binding (-Wl,-z,relro -Wl,-z,now)</li>
     39 <li>dmesg_restrict enabled (avoid leaking kernel addresses)</li>
     40 <li>kptr_restrict enabled (avoid leaking kernel addresses)</li>
     41 </ul>
     42 </dd>
     43 
     44 </dl>
     45