Broadcast receiver dynamic registration
Registro dinámico de Broadcast receiver
Descripción
Uno o más de los receptores de difusión (broadcast receivers) de la aplicación se registran dinámicamente en el código y no están protegidos por permisos de firma en el archivo AndroidManifest.xml. Todos los receptores registrados dinámicamente se exportan. Usando una aplicación maliciosa, un atacante puede difundir datos arbitrarios al receptor exportado, lo que puede llevar a la invocación de diferentes componentes de la aplicación o a la ejecución de código. Por ejemplo, muchos receptores de difusión están programados para recibir mensajes SMS o mensajes GCM. Para funcionar correctamente, estos receptores siempre deben exportarse para recibir datos de otras aplicaciones, como la aplicación de SMS o el framework GCM. Para proteger receptores de este tipo, siempre debe declarar los permisos apropiados durante la llamada al método registerReceiver. Los receptores de difusión representan un componente potencialmente explotable que a menudo se usa para iniciar servicios, por lo que es muy recomendable verificar todos los datos externos que se les pasan. Para habilitar la política más restrictiva y, por lo tanto, segura, debe minimizar la cantidad de intents exportados utilizando los permisos de firma.
Recomendación
Asegúrese de exportar únicamente los receptores de difusión que realmente necesiten la capacidad de ser iniciados por aplicaciones de terceros; o bien, cree un permiso con android:protectionLevel="signature" en el archivo AndroidManifest.xml y utilícelo para todos los receptores de difusión que deban ser iniciados solo por sus aplicaciones, configurando exported="false" para todos los receptores de difusión que no deban ser iniciados por aplicaciones de terceros en absoluto.