安全专家说Android 8.0和iPhone X一样安全,这是真的吗?">安全专家说Android 8.0和iPhone X一样安全,这是真的吗?

android 这两年的甜点代号越来越腻味,上个月 Android 8.0,以代号 Oreo(奥利奥)的方式问世了,奥利奥感觉比牛轧糖、棉花糖之类的都要甜。可能许多普通消费用户并不关心 Android 的大版本号迭代,因为“痛点创新”新功能出现的机会不多,或者大部分新特性是针对开发者的。不过实际上就安全方面的更新,这次可是前所未有的。

用卡巴斯基 ThreatPost 博客的话来说, Oreo 安全特性超越所有近期的操作系统更新,极富价值 。Android Oreo(以下简称 O)引入的安全特性包括有 Project Treble、system Alerts 系统警告,设备权限优化和 Verified Boot 验证启动升级等。

Duo Security 高级研究与开发工程师 Kyle Lady 表示:“在 Android O 系统中,谷歌针对 Android 系统框架进行了大规模重构。不少变动未来数年内,都会影响到用户、开发者以及设备制造商。”

不少移动行业专家都表示,这次引入的 Project Treble 对谷歌而言是安全方面的里程碑。 它将供应商的某些具体实施方案(第三方制造商写的设备专用、更低层级的软件)与 Android 系统框架进行了剥离。Project Treble 的一大目标就是让 Android 安全更新流程“流线化”。

原本 Android 打安全补丁的流程就是 Android 安全防护中的一大薄弱环节——谷歌《 Android Security 2016 Year In Review 》中就谈到过超过一半的 Android 设备过去一年未能及时接受安全更新。

Project Treble

如上面提到的,Project Treble 的存在就是为了让 OEM 厂商和配件制造商,以更为简单、快速和低成本的方式发出 Android 更新。这个项目把硬件专用的驱动、固件(比如三星、高通这些企业提供的手机组件固件和驱动)与 Android 系统本身进行了分离。

这样一来,谷歌发布操作系统补丁,就不需要再为了芯片适配之类的问题去等那些供应商了。谷歌表示,Android 的这种模块化构建方式,对于那些很老的硬件设备而言——可能 OEM 合作伙伴都已经不再做支持了——提供更新支持,还是相当有价值的。

有了 Project Treble,谷歌将 Android 系统框架和供应商的实施方案划分成了不同的流程,而且双方采用某种标准供应商介面来实现互通。这种“供应商介面”本身也会进行版本更新,也就是说新版 Android 系统框架对于更老的设备而言,会尽可能做到最小的变更。

Lookout 安全研究人员 Andrew Blaich 表示:Project Treble 是长期战略的组成部分,帮助所有的 Android 系统参与者更好地过渡到最新的系统版本之上。

Android 的进一步切割

将 Android 做进一步切分的策略,能够实现更为高效的组件管理,同时对安全而言也是有价值的。这本身就是 Project Treble 期望达到的目标,也是谷歌减少 Android 攻击面策略的组成部分。

Android 平台安全负责人 Nick Kralevich 在先前的 Black Hat 大会上说:“要减少攻击面,有很多事要做。比如怎么确定一款应用只干了应该干的事情?如何让暴露在外的部分最小化?如何在 Android 系统中控制流程,并遵循最小权限原则?”

过去,谷歌做安全的方式是这样的:专注于 exploit 缓解方案,比如说 fstack-protector 和 ALSR,还有格式化字符串漏洞(format string vulnerabilities)。不过这种方式不够高效,为了进一步减少攻击面,阻止如早年的Stagefright 漏洞再度出现,谷歌才开发了现如今的 Android O。

在更早版本的 Android 系统中,攻击者可以绕过 SElinux,利用漏洞组合,借由 MediaServer 实现远程代码执行。不过到了 Android 7(牛轧糖)情况就不同了,MediaServer 切分成了 7 个组成部分,如 MediaExtractor、MediaDrmServer 等,可以避免格式化字符串漏洞。

在 Project Treble 中,谷歌进一步进行了组件切分,还在媒体框架中为音频、摄像头和 DRM server 引入了新的硬件抽象层(HAL)。有了这些硬件抽象层,Android 框架切分成了更多独立进程和沙盒,且不会访问系统内核,这对攻击者而言要进行漏洞组合,入侵设备来说进一步增加了难度。

内核一级防范

用户空间的攻击面是减少了,所以攻击者有时更倾向于在 Android 内核中找漏洞,很多研究人员也是这么干的。2014 年,谷歌说内核漏洞占到所有上报漏洞的 4%,而现如今这个数字已经提升到了 39%。

Android O 在这部分也做了努力,通过引入 seccomp filter(安全计算)来限制内核访问。seccomp 是种安全特性,而 filter 系统会采用一个可配置策略对内核做调用。谷歌表示,关闭未使用的系统调用能够减少内核攻击。

Android 开发团队安全工程师 Paul Lawrence 今年早前就说过:“在 Android 设备支上,内核对于实施 Android 安全模型来说起到举足轻重的作用。安全团队致力于加固 Android 的用户空间,对进程做隔离和降权,所以内核越来越成为攻击的重点。” Seccomp 令未使用的系统调用对应用软件不可访问,这样一来有潜在威胁的 App 也就无法施展恶意行为了。

应用管理和控制更进一步

就 App 权限问题,谷歌这次也做了调整。许多攻击者入侵设备的一个主流方案就是在某个 App 中构建恶意程序。虽然谷歌已经在 Play Store 中设立了不少认证关卡,但其实 FreeBuf 先前也报道过不少 Play Store 中的恶意程序,更何况很多用户还会从第三方下载 App。

一般来说,用户自己从第三方下载 App 安装,需要首先在系统中设置允许未知来源安装。这个权限设定在系统中是全局生效的,要么就是不允许第三方来源来装,要么就是完全允许。

奥利奥系统在这一点上做了改进,用户可以针对单个应用设定这部分权限,也就是说如果攻击者借用路过式下载方案,意图在用户设备上安装恶意程序,用户可以自行决定是否下载以及其权限设定如何。

系统警告(System Alert)

这其实也是 Android O 在应用权限方面的调整,谷歌表示这项特性是针对系统警告窗口功能所做的安全加强。原本开发者利用系统警告特性来开发一款 App,可以实现在所有其它 Android 应用上方显示弹窗。

FreeBuf 先前就曾报道过有开发者利用这一特性进行钓鱼或者勒索,比如欺骗用户输入身份凭证,或者宣称窗口将永远存在,要求受害者支付赎金才让窗口消失。而在新版的 Android O 系统中,系统警告层会加入提醒,点击就能移除弹出窗口。

验证启动系统(Verified Boot)

早在 2013 年,Android 其实就已经有验证启动系统了,这项功能是为了保证设备软件(从硬件信任根直到系统分区)的完整性,启动过程在进入下一个阶段之前,前一个阶段都会先验证下一个阶段的完整性和真实性——所以早前的不少设备如果由用户刷入第三方固件,就会面临警告或者验证不通过,无法启动设备的问题。

在最新的奥利奥系统中,验证启动进行了升级,系统现在会阻止用户启动到更早版本的系统——因为某些攻击者可能采用回滚系统的方式来攻击,毕竟老版本的系统会包含一些已经公开的漏洞。

应用与移动设备管理厂商利用这项特性,也可以在此过程中保护其硬件区域安全了。总的说来,这就能够确保系统通过了验证启动,检查设备已经按照要求打了相应的补丁,此后再授权用户访问引用应用或者企业资源。

更安全的协议

Lookout 安全研究人员 Andrew Blaich 还说,奥利奥系统现如今在网络连接时还会阻止使用更老的、不安全的协议:“HTTPS 连接的 SSLv3 已经不再受到支持,也就能够阻止设备及其应用,使用哪些可能泄露敏感数据的不安全协议。”同时,他还说谷歌还加固了某些网络连接 API,避免更早 TLS 版本可能泄露敏感数据的问题。

安全专家:现在和 iPhone 一样安全

当前,Android Oreo 仅针对某些 Google Pixel 手机开放。谷歌表示,未来 6 个月内,Android O 会推给第三方旗舰设备,包括来自三星、LG 和 HTC 的手机。不过 Android O 要大面积惠及移动设备可能需要花很长时间,毕竟 Android 碎片化问题不是一天两天了。好比 Android 7.0 是去年 8 月份推出的,到现如今一年多,从 Duo Security 的数据来看,仅一半设备用上 7.0。

来自 Duo Security 的 Lady 表示:“Android O 确实是一大步。”他甚至认为 Android O 弥合和 Android 和 iPhone 之间的安全差距。“以前,如果你在乎安全就得花不少钱买台 iPhone,但很快可能只要 50 美元买台运行 Android O 系统的手机,在安全性上就已经能够和 1000 美元的 iPhone X 比肩了。”

* 参考来源: ThreatPost ,欧阳洋葱编译,转载请注明来自 FreeBuf.COM

赞 (0) 评论 分享 ()