Android 7.0 四大新改进
今年夏季,我们预览了 Android 7.0 Nougat 中的各种安全性增强功能(查看详情可点击下方蓝字):
重新设计的媒体服务器和加固的媒体栈
以及旨在减少攻击面并加强内存保护的 Linux 内核更新
真是太棒了!
如今,Nougat 已经开始部署,我们想简要回顾一下这些更新并重点介绍几项新的改进。
在之前的 Android 版本中,在启动过程中,默认情况下,使用加密设备的用户必须输入自己的 PIN 码/图案/密码对存储区进行解密并完成启动。在 Android 7.0 Nougat 中,我们更新了底层加密方案并精简了启动过程,从而加快手机的重启。目前,手机的主要功能(例如电话应用和闹钟),在未键入 PIN 码之前便已准备就绪,这样,人们可以打电话给您,闹钟可以唤醒您。我们将这项功能称之为直接启动。
从底层技术来讲,基于文件的加密实现了这项用户体验的改进。通过这种新的加密方案,系统存储区以及每一个用户配置文件存储区都是单独加密的。与将所有数据整体加密的全盘加密不同,采用基于配置文件的加密,系统只需使用设备密钥即可正常重启进入正常运行状态。基本应用可以选择重新启动之后以受限状态运行,当您输入锁屏凭据之后,这些应用可以访问您的用户数据,以提供完整的功能。
基于文件的加密方案对数据进行更精细的加密,从而更好地隔离和保护设备上的各个用户和配置文件。每个配置文件使用唯一密钥进行加密,只能通过 PIN 码或密码解锁,因此,您的数据只能由您来解密。
整个 Android 生态系统对加密的支持也越来越给力。从 Marshmallow 开始,要求所有有条件的设备都支持加密。许多设备(如 Nexus 5X 和 6P)也使用只有通过受信任硬件(如 ARM TrustZone)才能访问的唯一密钥。如今,使用 7.0 Nougat,所有有条件的新 Android 设备也必须能够为密钥存储提供这种硬件支持,从而提供强力保护,只有通过锁屏凭据验证后,才可以使用这些密钥。这样,您所有的数据都只能在本机解密,而且只能由您来解密。
在 Android Nougat 中,我们已加固并重新设计了媒体服务器,媒体服务器是处理不信任输入的主要系统服务之一。
首先,通过合并整型溢出处理(为 Clang 的 UndefinedBehaviorSanitizer 的一部分),我们封堵了一整类漏洞,大多数已报告的 libstagefright 错误均属此列。一旦检测到整型溢出,我们就关闭该进程,从而阻止攻击。其次,我们对媒体栈进行了模块化,将不同组件分别放入不同的沙盒中,同时限制每个沙盒只具有执行其功能所需的最低权限。通过这种遏制技术,攻击者通过侵入媒体栈众多区域中的某一处所获得的访问权限相比以前大大减少了,暴露的内核攻击面也随之显著减少。
除了加固媒体服务器之外,我们还为平台增加了大量保护功能,包括:
验证启动:目前,严格执行验证启动以阻止遭到入侵的设备启动;它支持纠错功能,从而减少了非恶意数据的损坏,提升了可靠性。
SELinux:更新了 SELinux 配置,扩大了 Seccomp 作用范围,从而进一步锁定应用沙盒,减少攻击面。
库加载顺序随机化和改进的 ASLR:增大随机性降低了某些代码重用攻击的有效性。
内核加固:通过将内核内存部分标记为只读、限制内核访问用户空间地址以及进一步减少现有攻击面,为新内核提供额外的内存保护。
APK 签名方案 v2:引入全文签名方案,可提高验证速度和加强完整性保证。
Android Nougat 是供应用开发者使用的最安全、最简单的 Android 版本。
现在,希望与其他应用共享数据的应用必须通过内容提供程序(如FileProvider)来提供文件,从而显式加入共享。对于 API 级别 24 以上的应用,应用私有目录(通常为 /data/data/)的 Linux 权限现在设置为 0700。
为了使应用更容易控制对其安全网络流量的访问,对于 API 级别 24 以上的应用,由用户安装的证书颁发机构以及通过 Device Admin API 安装的证书颁发机构在默认情况下不再受信任。此外,所有新的 Android 设备必须出厂时配置相同的受信任 CA 存储。
借助网络安全性配置,开发者可以通过声明式配置文件更轻松地配置网络安全策略。其中包括阻止明文通信、配置一组受信任的 CA 和证书,以及设置一个独立的调试配置。
我们还会继续完善应用权限和功能,以防止您遭受潜在的有害应用的危害。
为了加强设备的隐私保护,我们已经进一步限制和取消对永久性设备标识符(如 MAC 地址)的访问。
权限对话框上不会再重叠显示用户界面。有些应用使用这种“点击劫持”技术,试图非法获取权限。
我们已经降低了设备管理应用的权限,如果您已设置锁屏保护,该应用将无法再改变您的锁屏设置;如有禁用请求,将不再通过 onDisableRequested() 通知设备管理应用。以上是某些劫持软件用来控制设备的手段。
最后,我们大幅增强了 OTA 更新系统,让您的设备始终拥有最新的系统软件和安全补丁,从而更轻松地保持最新状态。我们加快了 OTA 安装速度,缩小了 OTA 安全更新文件的大小。您不必再等待应用优化步骤,这是更新过程中最慢的步骤之一,因为新的 JIT 编译器已经进行了优化,使安装和更新快如闪电。
对于已更新固件、运行 Nougat 的新 Android 设备,更新体验甚至更快。就像 Chromebook 一样,更新将在后台执行,设备仍继续正常运行。这些更新应用于不同的系统分区,当您重新启动时,它会无缝切换到运行新系统软件版本的新分区。
我们正在不断努力加强 Android 的安全性,Android Nougat 在安全性方面实现了全方位的显著改善。我们一如既往地感谢您对我们工作的反馈,欢迎就改进 Android 提供宝贵建议。请通过security@android.com 联系我们。
9.20 Google Doodle: 拉赫尔·布劳斯坦诞辰 126 周年