Android 8.0深入:Oreo不那么明显的安全增强

当你读到像谷歌刚出炉的新软件更新一样引人注目的消息时发布后,您通常听到的大多是字幕功能——最你可能会注意到在您自己的设备上。

这是可以理解的,因为这些是我们最直接、最直接看到的东西。然而,在表面之下,奥利奥在安全领域发生了一些非常重要的事情——这些事情尚未被广泛覆盖,但与理解其他任何事情一样重要。

其中一些信息相当技术性,如果您不经常参加针对开发人员的讲座和论坛,您可能永远不会遇到其中的大部分信息。但所有这些都会影响你的手机保护你免受理论威胁的能力——所有这些都值得你注意。

以下是要点,从繁琐的内容翻译成实用的、通俗易懂的英语术语。

每当您安装新应用程序时,您都会授予其访问某些类型的数据并在您的设备上执行某些类型的功能的权限。 (你知道,当你第一次运行一个应用程序时,它会向你显示一堆信息——所有这些提示你在没有密切注意的情况下就点击了“确定”?是的,就是这样。)在 Oreo 中,Android 正在重新考虑其中的一些权限,并缩减允许应用程序执行的操作。

首先是生成系统警报窗口的权限。它表面上是用于显示系统警报,但随着时间的推移,它已被用于各种其他面向覆盖的目的。例如,一些应用程序使用它来提供漂浮在其他应用程序之上的类似画中画的元素,而密码管理实用程序传统上使用它来生成弹出框以在整个操作系统中填写表单。

这一切都很好,但谷歌意识到相同的系统警报窗口权限实际上增加了滥用的可能性。勒索软件应用程序本质上可以利用它来接管您的屏幕,并诱骗您提供敏感信息或点击可疑链接来逃脱。

[ 要评论这个故事,请访问计算机世界的 Facebook 页面。 ]

Oreo 通过引入一些新的系统警报窗口限制来解决这个问题。具体来说,此类窗口的内容不再覆盖屏幕的关键区域,例如状态栏或锁定屏幕,并且现在只要存在覆盖层就会出现新的持久通知,因此您始终可以通过内置方式将其关闭并继续。

另一项长期存在的 Android 权限“设备管理”也从 Oreo 开始受到限制,以便应用程序无法再使用它来防止自身被卸载或更改系统密码——同样,目的是减少任何恶意应用程序滥用的可能性。

那么为什么更广泛的权限版本会存在这么长时间呢?这也是我想知道的。我有机会询问了谷歌Android平台安全产品经理Xiaowen Xin。 Xin 表示,在某些情况下,谷歌认识到开发人员想要使用权限的合法方式,并希望确保这些用例得到覆盖——通过实施和,对于 Oreo 和系统警报窗口 - 在引入任何限制之前。

“Android 的立场是更加开放,我们正在努力提供在某些情况下面向高级用户的 API,”Xin 解释道。 “这对我们来说是一个持续的挑战,这对 Android 来说是独一无二的,需要平衡如何保护用户和[但仍提供高级]功能。”

Android 8.0 安全点 #2:Oreo 以一些疯狂的新方式检查自身。

Android 自 2013 年起就拥有了验证启动系统,当时的名字叫 KitKat。从一开始,系统就会在每次设备启动时检查您手机的软件,以确保一切都处于正常工作状态。

使用 Oreo,系统正在扩展:除了执行标准启动检查之外,Android 的验证启动功能现在将阻止您的设备在回滚到较旧且安全性较低的操作系统版本时启动。

为什么?很简单:这种保护可以防止任何人控制您的设备并手动将您降级到以前的 Android 版本,以利用在更新版本中修补的旧错误。

“一旦你重新启动,你实际上会再次干净 - 因此任何漏洞将不再在你的手机上运行,​​”Xin 说。

Oreo 还支持设备的安全硬件区域生成声明的功能,以保证系统已通过验证启动检查有一个相当新的 Android 安全补丁。银行等机构可以利用这一点,以确保设备在授予客户访问权限之前没有受到损害,甚至可以被企业利用,以几乎确定地确认其员工的手机是安全的。

Android 8.0 安全点#3:Oreo 可以使用类似信用卡的芯片来保护您的登录信息。

准备好了解更多了吗? Oreo 引入了对新的防篡改硬件的支持 - 因此基本上,在现代信用卡中存储敏感信息的同类芯片可以在未来的 Android 手机上存储您的 PIN、图案或密码。该信息已经存储在一个称为“安全元件”的区域中,但将其移动到芯片会使某人更难对您的设备进行物理攻击并绕过您的锁定屏幕。

那么指纹数据呢?这正是我所想知道的。 (今天你和我意见一致,不是吗?我们真的应该更频繁地出去玩。) 结果是你的爪印等生物识别安全信息不是包含在新的基于芯片的系统中——因为系统增加的安全性的代价是速度降低。换句话说,它比常规的身份验证方法慢,并且 Google 不希望您必须等待几秒钟才能识别您的指针。

但对于防弹安全胜过其他一切的企业场景,很容易看出此功能的好处。

Android 8.0 安全点#4:Oreo(甚至更加)认真对待沙箱。

这不是操场上的沙盒乐趣(不过,如果您在沙盒中阅读本文,先生和/或女士,我向您表示敬意)。 Android 长期以来一直利用沙箱将操作系统的不同部分保留在各自的隔离区域中,这样,如果某些东西确实成功感染了软件的一个部分,它将无法到达另一个部分。

有了奥利奥,我们的努力就扩展到了几个不同的层面。首先,有 Project Treble——你听说过它,对吧? Treble 将操作系统的设备无关部分与操作系统的设备相关部分隔离开来。到目前为止,大部分焦点都围绕着这种分离如何进行(理论上,)使制造商更容易处理和发送 Android 操作系统更新,但它对安全性的影响也同样重要。记住?沙箱。

“如果你在一个[区域]有漏洞,那么现在就很难影响操作系统的不同部分,”Xin 说。

Android 8.0 还使用 seccomp 过滤器(gesundheit!)更紧密地对应用程序进行沙箱处理。对于我们当中的非工程师来说,简短的说法是,通过限制应用程序直接与其交互的方式,这使得顽皮的应用程序更难对内核(用最简单的术语来说,操作系统的大脑或命令中心)做任何危险的事情。 (如果想要完整的技术版本,可以找这里。天佑。)

最后但并非最不重要的一点是,Android 的 WebView 功能(允许开发人员在其应用程序中向您显示基于 Web 的内容)从 Oreo 开始转移到自己的单独进程。这意味着,如果您在应用程序中查看网站时遇到某种基于网络的错误,它不应该能够到达或影响操作系统的任何其他区域。沙箱。再次。

明白了吗?好的。让我们继续吧。

Android 8.0 安全点#5:Oreo 增强了企业的加密功能。

这一点相对较小,但如果您在企业环境中使用 Android,则意义重大:从 Android 8.0 开始,所有设备都使用不同的密钥来加密个人配置文件和工作配置文件。除此之外,设备管理员还可以远程激活工作配置文件密钥,并确保工作数据随时随地得到充分保护。

哦,还有一个诱人的玩笑:谷歌正在为 2018 年 Android P 版本的加密进行“更多”工作,Xin 说。所以请继续关注。

Android 8.0 安全点#6:Oreo 本身支持双因素身份验证密钥。

最后但并非最不重要的一点:如果您使用双因素身份验证来保护您的帐户(并且您— 来吧!),奥利奥允许您使用物理安全密钥作为您的第二种身份验证形式。只需通过蓝牙、NFC 或 USB 将您的密钥连接到您的 Android 设备,您在登录安全帐户时无需查找并输入通常的双因素代码。

星号表示它可以通过新的 API 获得——因此这意味着将由各个应用程序来支持它作为一项功能,而且您还找不到很多可以使用它的地方。但从长远来看,对于有安全意识的用户来说,它可能是一个相关的补充,他们不介意为了方便而携带额外的装置。

还有一个好处:此更新实际上是通过 Google Play 服务提供的,因此它将适用于运行 Android 5.0 (Lollipop) 或更高版本软件的设备。谷歌告诉我,它最终也会在系统级别得到支持,以便将受两因素保护的谷歌帐户添加到您的设备上。

当然,从更大的角度来看,是一个有很多活动碎片的拼图。我们在这里讨论的所有内容都与— 几乎在每一款相当新的 Android 设备上都存在并可运行 — 并且每月都会提供安全补丁来补充,以填补操作系统版本之间的空白。

就安全性和移动软件而言,进化永无止境。

[]