您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [Google]:2024年Android安全白皮书 - 发现报告

2024年Android安全白皮书

2024-04-30 Google xingxing+
报告封面

Contents 数据保护26加密26Adiantum27备份加密27 设计安全 15 Hypervisor and Virtualization 28 硬件安全16 Hypervisor29 虚拟机监视器29 微型机器人29 PVM 固件30VM Attestation31 Secretkeeper31 可信执行环境16 受保护确认17 内存安全17 杀菌剂18 GWP-ASan and KFENCE18 铁锈18 3233343537383941谷歌安全服务应用签名应用权限增强用户隐私控制Google Play Protect: 强大的设备保护开发者安全增强。Google Play 应用审核Jetpack安全性 操作系统安全19 沙盒化19 SELinuxUnix权限20 Contents 安卓安全更新 42 设备制造商合作伙伴更新43Google Play系统更新43Conscrypt44 应用管理 45 管理谷歌应用商店45 私有应用程序46 管理配置47 来自未知来源的申请47 结论 53 贡献者 54 关于Android安全论文 在当今的现代世界,移动设备在我们的工作和个人生活中都扮演着至关重要的角色。它们伴随着我们到任何地方——无论是在家、在旅途中还是在办公室——这意味着保护它们免受网络威胁的任务从未如此重要。 并且因为移动设备在我们的生活中扮演着如此关键的角色,它们是恶意行为者有吸引力的目标——其中83%的所有网络钓鱼网站专门针对移动设备。 因此,我们更新了Android安全白皮书,详细介绍了我们最新设计的旨在帮助保护您设备的安全措施。 我们坚定致力于帮助您应对现代数字环境的复杂性。通过结合零信任原则、增强的隐私功能以及先进的安全能力,Android持续树立着安全且用户友好的移动平台标准。 继续阅读以了解更多。 About Android 在Android开发过程中,消费级操作系统安全领域的最新技术是由内存管理系统提供的。Windows和Unix工作站都具备受保护内存功能,这些功能用于在设备用户之间提供强大的安全性:多个用户可以拥有各自独立的登录方式,他们的所有应用程序和数据都能得到完全隔离,仿佛它们分别运行在不同的设备上。 然而,在单个用户的登录会话中,安全性则更为有限。受保护的内存用于防止应用程序获得对内核的高度特权访问或意外损坏彼此,但在应用程序之间却几乎没有安全措施。单个用户可以在其设备上安装应用程序,这些应用程序可以独立于其他用户运行,同时仍能获得对设备功能的实质性访问权限。 在这些操作系统中,安装一个应用程序基本上赋予了它与用户相同的权限。这带来了安全风险,因为用户必须隐式信任他们安装的每个应用程序。网络通过将网页视为本质上不受信任来解决这个问题,限制了他们的能力。 比较使用基于网络的电子邮件服务与安装电子邮件应用程序。您可以放心地尝试基于网络的电子邮件,因为它对您的设备访问有限,除非您明确授予其更多权限。然而,安装电子邮件应用程序则需要仔细考虑。本质上,您是在将设备完全访问权托付给应用程序开发者。即使在卸载应用程序后,在某些情况下,您的设备可能无法像卸载前那样正常运行。 在传统桌面应用中的安全缺陷已开始将用户拒之门外。对于日益成为人们生活中核心部分的移动设备而言,这个问题更为关键。用户越来越不愿意信任能够完全访问其个人数据的App。 出现了几种方法来应对移动平台日益增长的Security concerns: 利用网络技术 此选项利用了网络强大的安全模型。然而,它需要对移动应用程序功能进行重大修改并增强安全性。它还缺乏原生代码支持,为像游戏这样计算密集型应用程序带来了挑战。此外,网络技术最初是为桌面设计的,在当时对移动硬件来说过于资源密集。 采用虚拟环境 像Java这样的技术更适合移动应用开发。然而,它们与基于网络的开发方法共享一个关键局限性:应用必须用特定语言编写,且不支持原生代码。 实施安全网关控制 这涉及代码签名、应用源限制或其他方法,以确保用户只能安装安全的应用。应用仍可像桌面应用一样以广泛的设备访问权限运行,并可以利用本地代码。关键区别在于“守门人”会在安装前对所有应用进行审查。这种方法在运营商商店和其他分发渠道中正逐渐获得认可。 因此,安卓基于Linux内核实施了一项安全解决方案,利用了受保护的内存和独特的进程隔离机制。 Android旨在成为一个开放且安全的平台,不仅适用于移动设备,还适用于各种设备。这意味着它不仅仅要开源;Android还希望模仿传统桌面操作系统开放性。用户应该能够自由安装应用程序,而不必担心恶意活动。Android的愿景很明确:如果移动是计算的未来,那么控制应用程序安装、危及安全性和隐私就不应该掌握在少数几个强大的实体手中。 操作系统领域另一个发展中方向是基于能力的系统,其中进程最初没有任何访问权限(例如文件或硬件)。它们随后根据其预期功能被授予特定的能力。然而,在那个时代,这些实现主要局限于研究项目或为嵌入式系统定制,而非通用操作系统。 一个开放安卓平台的目标排除了限制应用来源以保障安全的选项。相反,安卓自身需要一个更强的安全模型,防止已安装的应用获得对设备的过度控制。为了创建一个开放且安全的安卓平台,我们需要允许应用中使用本地代码。仅依赖虚拟化语言是不可行的,因为它限制了游戏、媒体及其他高要求应用所需的性能。此外,这些虚拟化语言由于其管理多个安全域的复杂性,往往存在安全漏洞。 多年来在数百万个安全敏感环境中广泛使用,Linux已成为许多企业和安全专业人员信赖的稳定且安全的内核。这得益于数千名开发者的持续研究、攻击和修复。现代Android设备必须使用最新的长期支持(LTS)内核,该内核定期接收安全更新和错误修复。 Linux中用户、应用程序和系统服务之间的传统关系如图所示: 与其将应用程序视为完全功能的用户,Android 为每个应用程序分配一个 UID。这确保了应用程序在内核级别保持相互隔离。Android 还限制了以 root 权限(UID 0)运行的代码量。例如,一个名为 installd 的专用服务负责基本文件系统管理,大多数系统组件都在其各自的隔离 UID 环境中运行。 UID之间的任何交互都必须由Android明确允许,这与基于能力的系统类似。 为定义应用程序的沙盒,必须存在该应用程序的安全身份概念。一种成熟的方法是使用签名证书,其中应用程序提供标识其来源的公钥,以及用于签名代码的私钥。操作系统随后使用公钥来验证该应用程序是否来自其声称的作者,通过将其与签名证书进行比对。在传统的代码签名实现中,公钥会链接到一个根证书。这个根证书只能来自有限的一组证书颁发机构,这些机构负责控制分配给它们的公钥,因此其身份可以被信任。 在Android诞生之前的移动平台发展中,证书颁发机构往往就是平台所有者、设备制造商、运营商或这三者的某种组合。对于每款待安装的应用,平台会验证该应用是否由这些证书颁发机构中的一位所签发,从而实际上使它们成为用户允许安装哪些应用的决定者。 应用程序通常设计为在Android运行时环境中运行,并通过一个定义系统服务、平台API和消息格式的框架与操作系统交互。开发者可以使用多种编程语言,例如Java、Kotlin、C/C++和Rust,所有这些语言都在同一个应用程序沙盒中运行。重要的是,Android的安全模型不受所选择语言的影响。应用程序中的原生代码和虚拟机代码共享同一个沙盒,并具有相同的权限限制。 Android故意避免内置的守门人。相反,它依赖于一个强大的系统来安全地识别应用程序。虽然应用程序仍然使用加密证书,但没有中央权威机构来验证它们。每个应用程序的证书都是自包含的,仅确认两个应用程序是否由同一作者发布,而不是确认作者是谁。这使得Android能够在不影响应用程序发布者的外部限制的情况下,确保关键的安全措施,例如“此应用程序更新来自原始开发者”。 Android软件栈的整体层次结构可以如下可视化;尽管实际的安全沙盒层要细得多。 Apps 警铃、浏览器、计算器、日历、相机、时钟、联系人、即时通讯拨号器、电子邮件、主页、媒体播放器、照片相册、短信/MMS、语音拨号 框架 内容提供者、活动管理器、位置管理器、视图系统、包管理器、通知管理器、资源管理器、电话管理器、窗口管理器 运行时核心库,安卓运行时(ART) 本地库 音频管理器、LIBC、SSL、Freetype、媒体、OpenGL/ES、SQLite、WebKit、表面管理器 HAL 音频、蓝牙、相机、数字版权管理、外部存储、图形、输入、媒体、传感器、电视 Linux内核 安全元件可信执行环境 驱动器(音频 - 绑定器(IPC)、蓝牙摄像头显示器、键盘共享内存USB Wi-fi)、电源管理 Android是一个为各种设备和形态设计的开源软件栈。它包含了行业领先的安防功能,并且安卓团队与开发者及设备制造商合作,以维护一个安全的应用平台及生态系统。一个强大的安防模型对于培育基于安卓及其周边构建的应用、设备和云服务繁荣生态系统至关重要。 因此,安卓通过在其整个开发生命周期中持续进行严格的安全测试而不断发展。 在安卓系统上运行的应用程序被签名并隔离在与其签名链接的应用沙盒之中。应用沙盒定义了每个应用程序可用的权限。 Android 15 的新功能 赋能现代移动工作空间 随着现代工作场所向分布式和边缘工作模式转变,企业已全面拥抱这些工作安排所带来的灵活性和生产力。在这个现代工作场所中,保障和管理移动业务设备比以往任何时候都更加重要。 AICore在选定安卓设备上提供设备端生成式AI功能,并符合Private Compute Core标准——这是一个专用的沙盒,用于在设备端私密处理数据,并提供无需调用访问底层数据的应用的功能。此外,您可以通过我们的安全博客了解更多关于AI隐私的信息。 Android 15 通过增强设备保护和为公司拥有的设备提供更多管理选项,解决了分布式和边缘工作场景的需求。Android 15 引入多项新功能,以保护设备免遭盗窃和未经授权的访问。Android 盗窃保护利用机器学习技术,在怀疑发生盗窃时锁定设备屏幕。此外,谷歌的机器学习和人工智能功能附带了控制选项,允许用户按照自己的意愿管理它们,包括关闭它们。 对于公司拥有的设备,Android 15为IT管理员提供了更多对个人资料的控制,同时仍保护用户隐私。这包括选择在公司拥有的设备上个人资料中可用的应用程序的能力,以及管理和部署eSIMs的能力。 Android 15 优先考虑员工及其设备的安全和隐私。主要功能包括: Android防盗保护 一套防盗保护功能,旨在防盗前、中、后保护用户,可通过安卓15和谷歌服务更新组合使用。该套功能包括如防盗检测锁定(Theft Detection Lock)等特性,该功能利用机器学习在检测到盗窃动作时自动锁定设备,以及离线设备锁定(Offline Device Lock),当设备离网时间过长时自动激活。远程锁定(Remote Lock)允许用户从任何设备通过输入手机号至android.com/lock锁定设备屏幕。1 私人空间 为用户提供更多控制权,让他们能通过私密空间组织并隐藏敏感应用——这是一个需要密码或生物识别才能解锁的单独文件夹。2 NIAP审计日志要求 确保符合行业标准,并通过改进的审计日志促进安全审查。 Android 15为公司自有设备引入了增强的管理功能。简化IT运营并提升控制力。主要功能包括: 简化eSIM管理 Security restrictions for apps outside the公司自有设备工作概况 赋予IT管理员对eSIM的精细控制权。使他们能够通过编程方式添加、删除和配置eSIM,从而简化大规模部署,实现设备设置和管理的流程优化。 在保护隐私的前提下,对Work Profi