allwinner_a64/android/docs/source.android.com/en/security/enhancements/enhancements41.html
2018-08-08 20:10:12 +08:00

69 lines
2.4 KiB
HTML

<html devsite>
<head>
<title>Security Enhancements in Android 1.5 through 4.1</title>
<meta name="project_path" value="/_project.yaml" />
<meta name="book_path" value="/_book.yaml" />
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>
Android provides a multi-layered security model described in the <a href="/security/index.html">Android
Security Overview</a>. Each update to Android includes dozens of
security enhancements to protect users. The following are some of the security
enhancements introduced in Android versions 1.5 through 4.1:</p>
<dl>
<dt><strong>Android 1.5</strong></dt>
<dd><ul>
<li>ProPolice to prevent stack buffer overruns (-fstack-protector)</li>
<li>safe_iop to reduce integer overflows</li>
<li>Extensions to OpenBSD dlmalloc to prevent double free() vulnerabilities and
to prevent chunk consolidation attacks. Chunk consolidation attacks are a
common way to exploit heap corruption.</li>
<li>OpenBSD calloc to prevent integer overflows during memory allocation</li>
</ul>
</dd>
<dt><strong>Android 2.3</strong></dt>
<dd><ul>
<li>Format string vulnerability protections (-Wformat-security -Werror=format-security)</li>
<li>Hardware-based No eXecute (NX) to prevent code execution on the stack and heap</li>
<li>Linux mmap_min_addr to mitigate null pointer dereference privilege
escalation (further enhanced in Android 4.1)</li>
</ul>
</dd>
<dt><strong>Android 4.0</strong></dt>
<dd>Address Space Layout Randomization (ASLR) to randomize key locations in memory
</dd>
<dt><strong>Android 4.1</strong></dt>
<dd><ul>
<li>PIE (Position Independent Executable) support</li>
<li>Read-only relocations / immediate binding (-Wl,-z,relro -Wl,-z,now)</li>
<li>dmesg_restrict enabled (avoid leaking kernel addresses)</li>
<li>kptr_restrict enabled (avoid leaking kernel addresses)</li>
</ul>
</dd>
</dl>
</body>
</html>