Saltar a contenido

Servicios declarados sin permisos

Descripción

Un service es un componente de la aplicación que puede encargarse de acciones a realizar en segundo plano, sin la interacción del usuario. Un service también se puede utilizar para exponer funcionalidades a otras aplicaciones. Esto corresponde a las llamadas a Context.bindService() para establecer una conexión con el servicio e interactuar con él.

Los servicios no protegidos pueden ser invocados por otras aplicaciones y potencialmente acceder a información confidencial o realizar acciones privilegiadas.

Recomendación

Un service puede exponer varios métodos a componentes externos. Es posible definir permisos arbitrarios para cada método utilizando el método checkPermission.

También es posible separar los servicios y restringir el acceso aplicando permisos en la etiqueta <service> del manifiesto.

<permission android:name="co.ostorlab.custom_permission" android:label="custom_permission"
            android:protectionLevel="dangerous"></permission>

<service android:name="co.ostorlab.custom_service" android:permission="co.ostorlab.custom_permission">
<intent-filter>
    <action android:name="co.ostorlab.ACTION"/>
</intent-filter>
</service>

El servicio puede aplicar permisos en llamadas IPC individuales llamando al método checkCallingPermission antes de ejecutar la implementación de esa llamada.

Detecte este problema con Ostorlab

Ostorlab busca este problema en aplicaciones Android e iOS.

Analice su app gratis

Enlaces

Estándares

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_7_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_AUTH_1
  • HIPAA_CONTROLS:
    • SECURITY221
    • SECURITY212
    • SECURITY213
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_6_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • OWASP_MOBILE_TOP_10:
    • M8_2024