Detección de seguridad de Android: envío de riesgo de transmisión implícito

En este capítulo, aprenderemos sobre el "Riesgo de transmisión implícita de envío " .

1. Principio de vulnerabilidad

Transmisión implícita significa que no se especifica ningún destinatario (rango de recepción). Durante el proceso de transmisión, todas las aplicaciones pueden recibir la transmisión, por lo que existe el riesgo de que la transmisión sea interceptada. Si la transmisión enviada lleva datos, entonces existe el riesgo de fuga de datos, si hay operaciones confidenciales en la transmisión enviada, existe el riesgo de secuestro malicioso.从Android8.0开始就要显示的指定广播接收方,但是也可以绕过这个限制比如添加FLAG:FLAG_RECEIVER_INCLUDE_BACKGROUND,但不建议这样做,Google既然有这个限制说明确实很影响安全

2. Método de detección

step1:Escanee el código global para ver si hay una transmisión implícita (transmisión sin rango de recepción especificado, transmisión sin permiso), consulte los
step2:resultados del resumen del método de reparación para obtener más detalles.

3. Método de reparación

1. Use Intent.setPackage 、Intent.setComponent、Intent.setClassName、Intent.setClass、new Intent(context,receiver.class)cualquiera de los métodos para especificar claramente el receptor de destino.
2. Se recomienda usar mensajes de envío en proceso LocalBroadcastManagero usar otros medios para enviar mensajes.
3. Use sendBoardcast(Intent, receiverPermission)en lugar de sendBoardcast (Intento) para asegurarse de que otras aplicaciones no puedan recibir la información de la transmisión

4. Información relevante

De Google Docs (Ciencia en línea)

restricción de transmisión

Si una aplicación se registra para recibir transmisiones, los receptores de la aplicación consumen recursos cada vez que se envía una transmisión. Esto puede causar problemas si varias aplicaciones se registran para recibir transmisiones basadas en eventos del sistema: un evento del sistema que desencadena una transmisión puede hacer que todas las aplicaciones consuman recursos en rápida sucesión, degradando la experiencia del usuario. Para paliar este problema, Android 7.0 (nivel de API 24) impone algunas restricciones a la transmisión, como se describe en Optimizaciones en segundo plano. Android 8.0 (API nivel 26) endurece estas restricciones.

  • Las aplicaciones destinadas a Android 8.0 o superior ya no pueden registrar receptores de transmisiones para transmisiones implícitas en su manifiesto. Una transmisión implícita es aquella que no es específica de la aplicación. Por ejemplo, ACTION_PACKAGE_REPLACED es una difusión implícita porque se envía a todos los oyentes registrados para informarles que se han reemplazado algunos paquetes en el dispositivo. Sin embargo, ACTION_MY_PACKAGE_REPLACED no es una transmisión implícita porque solo se enviará a la aplicación cuyo paquete se reemplazó, independientemente de cuántas otras aplicaciones hayan registrado oyentes para la transmisión.
  • Las aplicaciones pueden continuar registrándose para transmisiones explícitas en su manifiesto.
  • Las aplicaciones pueden registrar receptores para cualquier transmisión (ya sea implícita o explícitamente) en tiempo de ejecución usando Context.registerReceiver().
  • Las transmisiones que requieren permisos de firma están exentas de esta restricción porque solo se envían a aplicaciones firmadas con el mismo certificado, no a todas las aplicaciones del dispositivo.

En muchos casos, las aplicaciones que se registraron previamente para transmisiones implícitas pueden obtener una funcionalidad similar utilizando trabajos de JobScheduler. Por ejemplo, es posible que una aplicación de fotografía social deba realizar una limpieza de datos de vez en cuando y tiende a hacerlo mientras el dispositivo está conectado a un cargador. Anteriormente, la aplicación había registrado un receptor para ACTION_POWER_CONNECTED en el manifiesto; cuando la aplicación recibió esta transmisión, verificó si era necesaria una limpieza. Para migrar a Android 8.0 o superior, las aplicaciones eliminan este receptor de su archivo de manifiesto. La aplicación programa trabajos de limpieza para que se ejecuten cuando el dispositivo está inactivo y cargándose.


asjhan for Android reverse

Supongo que te gusta

Origin blog.csdn.net/qq_35993502/article/details/120755754
Recomendado
Clasificación