SamsungCamera应用程序的相机和视频意图暴露给第三方应用程序

导读 与iOS相比,安卓为应用程序提供了许多交互方式,让开发者可以构建一些我们期待和喜欢的更常见的安卓功能。得益于安卓的意图系统,这个系统

与iOS相比,安卓为应用程序提供了许多交互方式,让开发者可以构建一些我们期待和喜欢的更常见的安卓功能。得益于安卓的意图系统,这个系统允许任何应用发送任何它想要的意图,并允许接收应用创造性地处理这些意图。然而,事实证明,正如Checkmarx的安全研究人员所证明的那样,谷歌相机(Google Camera)和三星相机(Samsung Camera)应用程序的相机和视频意图暴露给第三方应用程序,这为绕过关键权限打开了大门,并可能被滥用。

Android上的Intent被描述为“一个促进应用程序组件之间通信的消息对象”,这仅仅意味着Intent允许应用程序相互发送数据。例如,当您试图将文件从文件管理器共享给像WhatsApp这样的应用程序时,您正在将意图作为文件发送给WhatsApp。任何应用程序都可以发送它想要的任何意图,并且接收应用程序可以通过在其清单文件中定义它们来确定侦听的意图。接收应用程序还决定如何对这些意图做出反应。此外,接收应用程序还可以确保仅当意图是从特定白名单应用程序(明确意图)或具有特定权限的应用程序(受保护意图)发送时,才执行操作。事实证明,坏演员可以利用上述相机应用程序中不受保护的意图。

Checkmarx发现Google Camera应用程序和Samsung Camera应用程序有未受保护的意图来触发拍照和录制视频等操作。在这种情况下,未受保护的意图意味着收件人的应用程序不会检查发送意图的应用程序是否拥有执行操作本身所需的权限-在这种情况下,android.permission.CAMERA摄像机活动com.google.android.googlecamera/com.android.camera.camera活动也是一个导出的活动,这意味着其他应用程序也可以请求它。因此,未受保护的意图和导出的活动会导致绕过该漏洞的权限。

因此,我们可以构建一个恶意的应用程序,它没有camera的许可,但仍然可以通过这些camera应用程序路由一些camera功能,并使用其未受保护的意图和导出的活动来操作一些CAMERA功能。

作为概念证明,Checkmarx在没有CAMERA许可的情况下创建了一个虚拟天气应用程序,但是它确实有STORAGE许可,但是天气应用程序没有混淆。没有相机的许可,天气应用程序可以触发谷歌相机和三星相机拍照和录制视频。当访问此权限以及保存在/DCIM中的所有其他照片和视频时,将使用STORAGE权限-单击照片和录制视频不需要此权限。

在最坏的情况下,该漏洞可被用于以下操作:在通话过程中录制用户的视频;如果在相机应用中启用了位置标记,则可以从照片的GPS元数据中捕捉位置信息(并有效获取手机的当前位置)等等。

当然,UI确实表示正在访问摄像头,但也可以使用接近传感器来测量手机显示屏何时关闭,从而避免了用户的注意力,解决了这个问题。恶意应用程序还可能使手机音量静音,并在拍照或录制视频时有效地使设备静音。

Checkmarx声称,在其他智能手机厂商的摄像头应用中,也存在一个标记为CVE-2019-2234的漏洞。但是研究人员没有指出受影响的制造商和设备,除了谷歌和三星。如果其他相机应用程序已导出活动以开始照片捕获和视频录制,并且有未受保护的意图(这些意图不会检查调用应用程序的可用权限),它们也会受到影响。

因为这不是Android平台或Linux内核中的漏洞,所以不能包含在Android安全公告中并作为其中的一部分发布。此漏洞已通过2019年7月的应用程序更新在Google Camera应用程序中修复,三星Camera应用程序中也修复了此漏洞,尽管没有关于何时发布此更新的具体信息。

在未修补版本的Google camera上,您可以通过运行以下ADB命令来强制通过此漏洞进行视频拍摄:

如果您使用的是谷歌相机或三星相机,请确保它已更新到设备上相机应用程序的最新版本,并通过Play Store或OTA(视情况而定)启动。