63 lines
No EOL
4.5 KiB
HTML
63 lines
No EOL
4.5 KiB
HTML
<html devsite><head>
|
||
<title>Android 4.3 中的安全增强功能</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 版本中都包含数十种用于保护用户的安全增强功能。以下是 Android 4.3 中提供的一些安全增强功能:</p>
|
||
|
||
<ul>
|
||
<li><strong>通过 SELinux 得到增强的 Android 沙盒。
|
||
</strong>此版本利用 Linux 内核中的 SELinux 强制访问控制系统 (MAC) 增强了 Android 沙盒。SELinux 强化功能(用户和开发者看不到它)可提高现有 Android 安全模型的可靠性,同时与现有应用保持兼容。为了确保持续兼容,此版本允许以宽容模式使用 SELinux。此模式会记录所有政策违规行为,但不会中断应用或影响系统行为。</li>
|
||
|
||
<li><strong>没有 SetUID/SetGID 程序:
|
||
</strong>针对 Android 系统文件添加了对文件系统功能的支持,并移除了所有 SetUID/SetGUID 程序。这可以减小 Root 攻击面,并降低出现潜在安全漏洞的可能性。</li>
|
||
|
||
<li><strong>ADB 身份验证。
|
||
</strong>从 Android 4.2.2 起,开始使用 RSA 密钥对为 ADB 连接进行身份验证。这可以防止攻击者在实际接触到设备的情况下未经授权使用 ADB。</li>
|
||
|
||
<li><strong>限制 Android 应用执行 SetUID 程序。
|
||
</strong>/system 分区现在针对 Zygote 衍生的进程装载了 nosuid,以防止 Android 应用执行 SetUID 程序。这可以减小 Root 攻击面,并降低出现潜在安全漏洞的可能性。</li>
|
||
|
||
<li><strong>功能绑定。
|
||
</strong>在执行应用之前,Android Zygote 和 ADB 现在会先使用 prctl(PR_CAPBSET_DROP) 舍弃不必要的功能。这可以防止 Android 应用和从 shell 启动的应用获取特权功能。</li>
|
||
|
||
<li><strong>AndroidKeyStore 提供程序。
|
||
</strong>Android 现在有一个允许应用创建专用密钥的密钥库提供程序。该程序可以为应用提供一个用于创建或存储私钥的 API,其他应用将无法使用这些私钥。</li>
|
||
|
||
<li><strong>KeyChain isBoundKeyAlgorithm。
|
||
</strong>Keychain API 现在提供了一种方法 (isBoundKeyType),可让应用确认系统级密钥是否已绑定到设备的硬件信任根。该方法提供了一个用于创建或存储私钥的位置,即使发生 Root 权限被窃取的情况,这些私钥也无法从设备中导出。</li>
|
||
|
||
<li><strong>NO_NEW_PRIVS。</strong>
|
||
在执行应用代码之前,Android Zygote 现在会先使用 prctl(PR_SET_NO_NEW_PRIVS) 禁止添加新权限。这可以防止 Android 应用执行可通过 execve 提权的操作。(此功能需要使用 3.5 或更高版本的 Linux 内核)。</li>
|
||
|
||
<li><strong>FORTIFY_SOURCE 增强功能。
|
||
</strong>Android x86 和 MIPS 上启用了 FORTIFY_SOURCE,并增强了 strchr()、strrchr()、strlen() 和 umask() 调用。这可以检测潜在的内存损坏漏洞或没有结束符的字符串常量。</li>
|
||
|
||
<li><strong>迁移保护。
|
||
</strong>针对静态关联的可执行文件启用了只读迁移 (relro) 技术,并移除了 Android 代码中的所有文本迁移技术。这可以深度防范潜在的内存损坏漏洞。</li>
|
||
|
||
<li><strong>经过改进的 EntropyMixer。
|
||
</strong>除了定期执行混合操作之外,EntropyMixer 现在还会在关机/重新启动时写入熵。这样一来,便可以保留设备开机时生成的所有熵,而这对于配置之后立即重新启动的设备来说尤其有用。</li>
|
||
|
||
<li><strong>安全漏洞修复程序。
|
||
</strong>Android 4.3 中还包含针对 Android 特有漏洞的修复程序。有关这些漏洞的信息已提供给“开放手机联盟”(Open Handset Alliance) 成员,并且 Android 开放源代码项目中提供了相应的修复程序。为了提高安全性,搭载更低版本 Android 的某些设备可能也会包含这些修复程序。</li>
|
||
</ul>
|
||
|
||
</body></html> |