具有 GooglePlay 权限的 BroadcastReceiver 的安全威胁
Security threat by a BroadcastReceiver with GooglePlay's permissions
以下情况是否会造成安全威胁?
想象一下情况。
- 您的设备没有安装 GooglePlay 服务。
- 您使用
android:permission="com.google.android.c2dm.permission.SEND"
权限创建广播接收器(此权限由 GooglePlay 服务持有)并在设备上安装此应用程序。
- 该应用不会检查设备上是否提供 GooglePlay 服务。
恶意软件是否可能利用此开发人员错误?
这不太可能导致问题。这个问题很小,因为:
此权限由Google为GCM(已被FCM取代)定义。用于确保只有持有此权限的发件人才能发送Intent
到注册的接收者。不过,在宏伟的计划中,这只是一小部分安全措施。
即使不同的应用程序/服务定义了相同的权限以在不存在 GMS 的设备上伪造它,Intent
的正常有效负载也可能具有某种类型里面有额外的数据,所以 Google 的接收者(在你的清单中指定的)可以在对它做任何事情之前验证它的内容。
从 Android 4.4.3 开始,检查已添加到系统中,以便系统捆绑 apps/services(例如 GMS)权限定义优先于第 3 方应用程序。这可以防止 3rd 方应用程序重新定义权限以尝试后门系统应用程序权限。与您描述的情况不完全相同,但仍然很重要。
以下情况是否会造成安全威胁?
想象一下情况。
- 您的设备没有安装 GooglePlay 服务。
- 您使用
android:permission="com.google.android.c2dm.permission.SEND"
权限创建广播接收器(此权限由 GooglePlay 服务持有)并在设备上安装此应用程序。 - 该应用不会检查设备上是否提供 GooglePlay 服务。
恶意软件是否可能利用此开发人员错误?
这不太可能导致问题。这个问题很小,因为:
此权限由Google为GCM(已被FCM取代)定义。用于确保只有持有此权限的发件人才能发送
Intent
到注册的接收者。不过,在宏伟的计划中,这只是一小部分安全措施。即使不同的应用程序/服务定义了相同的权限以在不存在 GMS 的设备上伪造它,
Intent
的正常有效负载也可能具有某种类型里面有额外的数据,所以 Google 的接收者(在你的清单中指定的)可以在对它做任何事情之前验证它的内容。从 Android 4.4.3 开始,检查已添加到系统中,以便系统捆绑 apps/services(例如 GMS)权限定义优先于第 3 方应用程序。这可以防止 3rd 方应用程序重新定义权限以尝试后门系统应用程序权限。与您描述的情况不完全相同,但仍然很重要。