Android 采用了业界领先的安全功能,并与开发者和设备实现方合作,以确保 Android 平台和生态系统的安全。强大的安全模型对于构建在 Android 平台之上和周围,并由云服务提供支持的活跃的应用和设备生态系统至关重要。因此,在整个开发生命周期中,Android 都受到严格的安全计划的约束。
Android 旨在保持开放性。 Android 应用使用先进的硬件和软件,以及通过平台公开的本地和服务数据,为消费者带来创新和价值。为了实现这一价值,该平台提供了一个应用环境,以保护用户、数据、应用、设备和网络的机密性、完整性和可用性。
保护开放平台需要强大的安全架构和严格的安全计划。Android 在设计时采用了多层安全防护,这种安全防护既足够灵活,可以支持开放平台,又能保护平台的所有用户。如需了解有关报告安全问题和更新流程的信息,请参阅安全更新和资源。
Android 专为开发者而设计。 安全控制旨在减轻开发者的负担。精通安全的开发者可以轻松地使用和依赖灵活的安全控制。对安全不太熟悉的开发者会受到安全默认设置的保护。
除了提供一个稳定的构建平台之外,Android 还通过多种方式为开发者提供额外支持。Android 安全团队会查找应用中的潜在漏洞,并建议修复这些问题的方法。对于装有 Google Play 的设备,Play 服务会为关键软件库(例如 OpenSSL)提供安全更新,OpenSSL 用于保护应用通信。Android 安全发布了一款用于测试 SSL 的工具 (nogotofail),可帮助开发者在他们开发的任何平台上查找潜在的安全问题。
Android 还利用底层硬件支持来增强安全性。例如,ARM TrustZone 技术用于为加密密钥提供安全存储,以及启动完整性证明。DICE 用于衡量在 Android 启动之前加载的固件。这可以远程验证固件是否未受到已知关键漏洞的影响,这些漏洞可能会被利用来损害开发者和用户。
有关 Android 应用开发者的更多信息,请访问 developer.android.com。
Android 专为用户而设计。 用户可以了解每个应用请求的权限,并可以控制这些权限。此设计包括期望攻击者会尝试执行常见攻击,例如社交工程攻击,以说服设备用户安装恶意软件,以及攻击 Android 上的第三方应用。Android 的设计既可以降低这些攻击的可能性,又可以在攻击成功时大大限制攻击的影响。在设备交付到用户手中后,Android 安全性仍在不断进步。Android 与合作伙伴和公众合作,为仍在接收安全更新的任何 Android 设备提供补丁。
最终用户的更多信息,请访问Nexus 帮助中心、Pixel 帮助中心,或您的设备制造商的帮助中心。
本页概述了 Android 安全计划的目标,介绍了 Android 安全架构的基础知识,并解答了系统架构师和安全分析师最关注的问题。本页重点介绍 Android 核心平台的安全功能,不讨论特定于特定应用(例如浏览器或短信应用)的安全问题。
背景
Android 为移动设备提供了一个开源平台和应用环境。
以下部分和页面介绍了 Android 平台的安全功能。图 1 说明了 Android 软件堆栈各个级别的安全组件和注意事项。每个组件都假定其下方的组件已得到妥善保护。除了少量以 root 身份运行的 Android 操作系统代码外,Linux 内核之上的所有代码都受到应用沙盒的限制。
图 1. Android 软件堆栈
主要的 Android 平台构建块包括:
- 设备硬件: Android 在各种硬件配置上运行,包括手机、平板电脑、手表、汽车、智能电视、OTT 游戏盒子和机顶盒。Android 与处理器无关,但它利用了一些特定于硬件的安全功能,例如 ARM eXecute-Never。
- Android 操作系统: 核心操作系统构建于 Linux 内核之上。所有设备资源(例如相机功能、GPS 数据、蓝牙功能、电话功能和网络连接)都通过操作系统访问。
- Android 应用运行时: Android 应用通常使用 Java 编程语言编写,并在 Android 运行时 (ART) 中运行。但是,许多应用(包括核心 Android 服务和应用)都是原生应用或包含原生库。ART 和原生应用都在相同的安全环境中运行,并包含在应用沙盒中。应用会在文件系统的一个专用部分中获取空间,它们可以在其中写入私有数据,包括数据库和原始文件。
Android 应用扩展了核心 Android 操作系统。应用主要有以下两个来源:
- 预装应用: Android 包含一组预装应用,包括电话、电子邮件、日历、网络浏览器和联系人。这些应用充当用户应用,它们提供可供其他应用访问的关键设备功能。预装应用可能是开源 Android 平台的一部分,也可能是设备制造商为特定设备开发的。
- 用户安装的应用: Android 提供了一个开放的开发环境,支持任何第三方应用。Google Play 为用户提供了数十万款应用。
Google 安全服务
Google 为兼容的 Android 设备提供了一组基于云的服务,这些设备搭载了 Google 移动服务。虽然这些服务不是 Android 开源项目 (AOSP) 的一部分,但它们包含在许多 Android 设备中。如需详细了解其中一些服务,请参阅 Android 安全部门的2018 年回顾报告。
主要的 Google 安全服务包括:
- Google Play: Google Play 是一系列服务,用户可以通过 Android 设备或网络查找、安装和购买应用。借助 Google Play,开发者可以轻松地接触到 Android 用户和潜在客户。Google Play 还提供社区评价、应用许可验证、应用安全扫描和其他安全服务。
- Android 更新: Android 更新服务可为选定的 Android 设备提供新功能和安全更新,包括通过网络或无线下载 (OTA) 方式进行的更新。
- 应用服务: 允许 Android 应用使用云功能的框架,例如(备份)应用数据和设置以及云到设备消息传递 (C2DM) 以进行推送消息传递。
- 验证应用: 警告或自动阻止安装有害应用,并持续扫描设备上的应用,警告或移除有害应用。
- SafetyNet: 一种保护隐私的入侵检测系统,可协助 Google 跟踪和缓解已知安全威胁,并识别新的安全威胁。
- SafetyNet 证明: 用于确定设备是否与 CTS 兼容的第三方 API。证明还可以识别与应用服务器通信的 Android 应用。
- Android 设备管理器: 用于定位丢失或被盗设备的网络应用和Android 应用。
安全计划概览
Android 安全计划的关键组件包括:
- 设计审核: Android 安全流程在开发生命周期的早期阶段开始,首先是创建丰富且可配置的安全模型和设计。平台的每个主要功能都由工程和安全资源进行审核,并将适当的安全控制集成到系统架构中。
- 渗透测试和代码审核: 在平台开发期间,Android 创建的和开源的组件都将接受严格的安全审核。这些审核由 Android 安全团队、Google 的信息安全工程团队和独立的安全性顾问执行。这些审核的目标是在主要版本发布之前找出弱点和可能的漏洞,并模拟外部安全专家在发布后执行的分析类型。
- 开源和社区审核: AOSP 支持任何感兴趣的方进行广泛的安全审核。Android 还使用已经过重要的外部安全审核的开源技术,例如 Linux 内核。Google Play 提供了一个论坛,供用户和公司直接向用户提供有关特定应用的信息。
- 事件响应: 即使采取了这些预防措施,发货后仍可能发生安全问题,这就是 Android 项目创建全面的安全响应流程的原因。专职 Android 安全团队成员会监控特定于 Android 的安全社区和通用安全社区,以讨论潜在的漏洞,并审核在 Android 错误数据库中提交的安全错误。在发现合法问题后,Android 团队会启动响应流程,以便快速缓解漏洞,从而最大程度地降低所有 Android 用户的潜在风险。这些云支持的响应可能包括更新 Android 平台(AOSP 更新)、从 Google Play 中移除应用以及从现场设备中移除应用。
- 每月安全更新: Android 安全团队为 Google Android 设备和我们所有的设备制造合作伙伴提供每月更新。
平台安全架构
Android 致力于成为移动平台最安全、最易用的操作系统,方法是重新利用传统的操作系统安全控制来:
- 保护应用和用户数据
- 保护系统资源(包括网络)
- 提供应用与系统、其他应用和用户之间的隔离
为了实现这些目标,Android 提供了以下关键安全功能:
- 通过 Linux 内核在操作系统级别提供强大的安全性
- 所有应用的强制性应用沙盒
- 安全的进程间通信
- 应用签名
- 应用定义和用户授予的权限