与iOS相比,Android为应用程序提供了许多相互交互的方式,从而使开发人员能够构建一些我们期望和喜爱的更常见的Android功能。这要归功于Android的Intent系统,该系统允许任何应用发送其想要的任何意图,并允许接收方应用以创造性的方式处理这些意图。但事实证明,正如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.CameraActivity也是导出的活动,这意味着其他应用程序也可以要求它。因此,不受保护的意图和导出的活动会导致权限绕过漏洞。
因此,可以构建一个不具有CAMERA许可但仍可以通过将某些摄像头功能通过这些摄像头应用程序路由并利用其不受保护的意图和导出的活动来操作某些摄像头功能的恶意应用程序。
作为概念验证,Checkmarx创建了一个不具有CAMERA权限的虚拟天气应用程序,但它确实具有一个STORAGE权限,但对于天气应用程序并没有出现混乱。未经相机许可,天气应用程序可以触发Google Camera和Samsung Camera拍照并录制视频。在访问此权限以及/ DCIM中保存的所有其他照片和视频时,将使用STORAGE权限-单击照片和录制视频的操作不需要此权限。
在最坏的情况下,可以利用此漏洞进行以下操作:在通话过程中记录用户的视频;如果在相机应用中启用了位置标记,则可以从照片的GPS元数据中抓取位置信息(并有效地获取手机的当前位置) ), 和更多。
当然,UI确实表明正在访问摄像头,但是也可以通过使用接近传感器来测量何时关闭了手机的显示屏,从而避免了用户的注意,从而可以解决此问题。恶意应用程序还可能使手机的音量静音,并在拍照或录制视频时有效地使设备静音。
Checkmarx声称其他智能手机供应商的相机应用程序中也存在标记为CVE-2019-2234的漏洞。但是研究人员没有指出受影响的厂商和设备,除了谷歌和三星。如果其他“相机”应用程序已导出活动以开始照片捕获和视频记录,并且具有不受保护的意图(这些意图没有检查呼叫应用程序的可用权限),则它们也会受到影响。
由于这不是Android平台或Linux内核中的漏洞,因此无法将其包含在Android安全公告中并作为其一部分发布。该漏洞已通过2019年7月的应用程序更新在Google Camera应用程序中修复,并且在Samsung Camera应用程序中也已修复此漏洞,尽管没有有关何时发布此更新的具体信息。
在未修补的Google相机版本上,您可以通过运行以下ADB命令来强制通过此漏洞拍摄视频:
如果您使用Google相机或三星相机,请确保已更新到设备上最新的相机应用版本,并通过Play商店或OTA(视情况而定)推出。