安全更新和资源

Android 安全团队负责管理在 Android 平台中发现的以及在 Android 设备绑定的众多核心 Android 应用中发现的安全漏洞。

Android 安全团队会通过内部研究找出安全漏洞,并会对第三方报告的错误采取应对措施。外部错误的来源包括:通过 Android 安全问题模板报告的问题、已发布和预发布的学术研究、上游开源项目维护人员、来自设备制造商合作伙伴的通知,以及博客或社交媒体中发布的已公开披露的问题。

报告安全问题

任何开发者、Android 用户或安全研究人员都可以通过安全漏洞报告表单将潜在安全问题告知 Android 安全团队。

外部人员无法查看标记为安全问题的错误,不过在问题经过评估或得到解决后,这些错误最终可能会对外公开。如果您打算提交旨在解决安全问题的补丁程序或兼容性测试套件 (CTS) 测试,请将其附加到错误报告中,然后等待我们的回复,得到我们的回复后再将相应代码上传到 AOSP。

为错误分类

在处理安全漏洞时,第一项任务是确定错误的严重程度以及受影响的 Android 组件。严重程度决定问题的优先级,受影响的组件决定由谁来修复错误、谁将会收到通知以及如何将修复程序提供给用户。

进程类型

下表涵盖了各类进程的定义。进程类型可以按应用或进程的类型来定义,也可以按进程的运行区域来定义。下表按照权限从小到大的顺序排列。

进程类型 类型定义
受限进程 在高度受限的 SELinux 域中运行的进程。
或者
受限程度远远超过普通应用的进程。
非特权进程 第三方应用或进程。
或者
在 SELinux untrusted_app 域中运行的应用或进程。
特权进程 功能被 SELinux untrusted_app 域禁止的应用或进程。
或者
拥有第三方应用无法获得的重要权限的应用或进程。
或者
设备上的内置硬件组件,并不包含在可信计算基 (TCB) 内。
可信计算基 (TCB) 一种功能,具有以下特征:属于内核一部分、在与内核相同的 CPU 环境中运行(如设备驱动程序)、可以直接访问内核内存(如设备上的硬件组件)、能够将脚本加载到内核组件(如 eBPF)、基带处理器,或者是被认为等同于内核的几种用户服务中的一种:initueventdvold
引导加载程序 一种在启动时配置设备然后将控制权传递给 Android 操作系统的组件。
可信执行环境 (TEE) 一种受保护的组件,甚至可以抵御恶意内核的攻击。
安全元件 (SE) 一种可选组件,设计为可以避免来自设备上所有其他组件的攻击以及物理攻击,如安全元件简介中所定义。

严重程度

错误的严重程度通常能够反映错误被成功利用后可能造成的潜在危害。可以按照以下条件判断严重程度。

分级 被成功利用的后果
严重
  • 攻击者可以在未经授权的情况下访问受 SE 保护的数据
  • 在 TEE 或 SE 中执行任意代码
  • 攻击者可以在特权进程、引导加载程序或 TCB 中远程执行任意代码
  • 设备遭到远程发起的永久性拒绝服务攻击(设备无法再使用:完全永久性损坏,或者需要重新刷写整个操作系统或恢复出厂设置)
  • 攻击者可以远程绕过与软件包安装或等效行为相关的用户互动要求
  • 攻击者可以远程绕过针对任何开发者或针对任何安全或隐私设置的用户互动要求
  • 攻击者可以绕过远程安全启动
  • 攻击者可以绕过旨在预防关键硬件组件出现故障的安全机制(例如热保护机制)
  • 攻击者可以绕过本地安全启动
  • 攻击者可以完全绕过核心安全功能(例如 SELinux、FDE 或 seccomp)
  • 攻击者可以在非特权进程中远程执行任意代码
  • 攻击者可以在特权进程、引导加载程序或 TCB 中本地执行任意代码
  • 攻击者可以在未经授权的情况下访问受 TEE 保护的数据
  • 针对 SE 的攻击会导致设备降级为安全系数较低的实现
  • 攻击者可以从本地绕过与软件包安装或等效行为相关的用户互动要求
  • 攻击者可以远程访问受保护的数据(仅限特权进程访问的数据)
  • 设备遭到从本地发起的永久性拒绝服务攻击(设备无法再使用:永久性损坏,或者需要重新刷写整个操作系统或恢复出厂设置)
  • 攻击者可以远程绕过用户互动要求(攻击者能够访问通常需要由用户发起的功能或需要获得用户许可后方可使用的功能或数据)
  • 在请求者期望安全传输时通过不安全的网络协议(例如 HTTP 和未加密的蓝牙)传输敏感信息(请注意,这不适用于 WEP 等 WLAN 加密)
  • 攻击者可以全面深入地绕过防护功能,或在引导加载程序或 TEE 中利用缓解技术存在的漏洞进行攻击
  • 攻击者可以全面绕过将应用数据或用户个人资料彼此隔离开来的操作系统保护功能
  • 攻击者可以从本地绕过针对任何开发者或针对任何安全或隐私设置的用户互动要求
  • 在标准传输层安全协议 (TLS) 中造成可受到中间人攻击的加密漏洞
  • 攻击者可以绕过锁定屏幕
  • 攻击者可以绕过设备保护服务/恢复出厂设置保护服务/运营商的限制
  • 有针对性地阻止对应急服务的访问
  • 攻击者可以绕过受 TEE 保护的用户互动要求
  • 攻击者可以在受限进程中远程执行任意代码
  • 设备遭到远程发起的设备暂时性拒绝服务攻击(远程挂起或重新启动设备)
  • 攻击者可以从本地在非特权进程中执行任意代码
  • 攻击者可以全面深入地绕过防护功能,或者在特权进程或 TCB 中利用缓解技术存在的漏洞进行攻击
  • 绕过对受限进程的限制
  • 攻击者可以远程访问不受保护的数据(通常可供本地安装的所有应用访问的数据)
  • 攻击者可以从本地访问受保护的数据(仅限特权进程访问的数据)
  • 攻击者可以从本地绕过用户互动要求(攻击者能够访问通常需要由用户发起的功能或需要获得用户许可后方可使用的功能)
  • 在标准加密基元(并非 TLS 中使用的基元)中造成可导致明文泄露的加密漏洞
  • 攻击者可以连接到 Android 设备(为设备提供热点时)或设备所连接的网络接入点,从而绕过 WLAN 加密或身份验证
  • 攻击者可以从本地在受限进程中执行任意代码
  • 攻击者可以在非标准使用中造成加密漏洞
  • 攻击者可以全面深入地绕过用户级防护功能,或在非特权进程中利用缓解技术存在的漏洞进行攻击
无安全影响 (NSI)
  • 漏洞的影响已被一个或多个分级调节方式或特定于版本的架构更改减弱,因此有效严重程度已降至“低”以下,但底层代码问题可能仍然存在

分级调节方式

尽管通常可以轻松确定安全漏洞的严重程度,但分级可能会因具体情况而异。

原因 影响
需要作为特权进程运行才能执行攻击 严重程度降低 1 级
漏洞特有的详细信息限制了相应问题的影响大小 严重程度降低 1 级
编译器或平台配置缓解了源代码中的漏洞 如果底层漏洞的严重程度为“中”或更高,则实际严重程度为“中”
需要实际接触设备内件,在手机已关机或开机后尚未解锁时仍然可以访问 严重程度降低 1 级
在手机处于开机状态且之前已解锁时需要实际接触设备内件 严重程度降低 2 级
需要解锁引导加载程序才能进行本地攻击 不高于“低”
需要在设备上启用开发者模式或任何持久开发者模式设置(且不是开发者模式中的错误)才能进行本地攻击 不高于“低”
如果任何 SELinux 域都无法在 Google 提供的 SEPolicy 下执行操作 无安全影响

本地与远程

远程攻击途径指攻击者可以在不安装应用或不实际接触设备的情况下利用的错误。这包括因浏览网页、阅读电子邮件、接收短信或连接到恶意网络而触发的错误。为了进行严重程度分级,Android 安全团队还将“邻近”攻击途径视为远程攻击途径。这包括只能被实际接近目标设备的攻击者利用的错误,例如需要发送格式错误的 WLAN 数据包或蓝牙数据包的错误。Android 安全团队会将基于 NFC 的攻击视为邻近攻击,因此属于远程攻击。

本地攻击需要受害者运行应用才能得逞,即需要用户安装和运行应用,或同意运行免安装应用。为了进行严重程度分级,Android 安全团队还会将现实攻击途径视为本地攻击。这包括只能被实际接触到设备的攻击者利用的错误,例如锁定屏幕中的错误,或需要插入 USB 数据线的错误。请注意,无论是否需要解锁设备,需要通过 USB 连接进行的攻击都具有相同的严重程度;插入 USB 后会解锁设备的情况很常见。

WLAN 安全

Android 假设所有网络都是恶意网络且可能会注入攻击或监视流量。为确保网络级攻击者无法绕过应用数据保护,Android 强烈建议为所有网络流量使用端到端加密。链路级加密的安全性不足。

受影响的组件

开发团队负责根据错误所在的组件来修复错误。该组件可能是 Android 平台的核心组件、原始设备制造商 (OEM) 提供的内核驱动程序,或 Pixel 设备上某个预加载的应用。

AOSP 代码中的错误由 Android 工程团队负责修复。严重程度为“低”的错误、特定组件内的错误或者已经是众所周知的错误可以直接在已公开发布的 AOSP master 分支中进行修复;除此之外的其他错误都会先在我们的内部代码库中进行修复。

组件也是会影响用户如何获取更新的一种因素。如果是框架或内核存在的错误,用户需要使用无线下载 (OTA) 的固件更新,每个原始设备制造商 (OEM) 都需要推送此类更新。Google Play 中发布的应用或库中的错误(例如,Gmail,Google Play 服务或 WebView)可作为 Google Play 的更新发送给 Android 用户。

通知合作伙伴

AOSP 中的安全漏洞在 Android 安全公告中得到修复后,我们会将问题详细信息通知给 Android 合作伙伴,并提供相应的补丁程序。具体会针对哪些版本提供补丁程序会随着每个新 Android 版本的发布而发生变化。如需查看支持的设备列表,请与设备制造商联系。

向 AOSP 发布代码

如果安全错误发生在 AOSP 组件内,我们会先向用户发布 OTA 更新,然后再将修复程序推送到 AOSP。如果问题的严重程度为“低”,我们可能会先直接将修复程序提交到 AOSP master 分支,然后再发布修复程序。

接收 Android 更新

对 Android 系统的更新一般会通过 OTA 更新文件包提供给设备。这些更新可能来自生产相应设备的原始设备制造商 (OEM),也可能来自向相应设备提供服务的运营商。Google Pixel 设备更新由 Google Pixel 团队在相应更新通过运营商技术验收 (TA) 测试程序之后予以提供。Google 还会发布可以旁加载到设备的 Pixel 出厂映像

更新 Google 服务

除了针对安全错误提供补丁程序之外,Android 安全团队还会审核安全错误,以确定是否有其他方式来保护用户。例如,Google Play 会扫描所有应用并移除任何试图利用安全错误的应用。对于通过 Google Play 之外的途径安装的应用,带有 Google Play 服务的设备可能还会使用验证应用功能来警告用户注意可能有害的应用。

其他资源

面向 Android 应用开发者的信息:https://developer.android.com

您可以从各个 Android 开放源代码和开发者网站上找到安全信息。建议您先查看以下网址中提供的安全信息:

报告

Android 安全团队有时会发布报告或白皮书。 如需了解详情,请参阅安全报告