Saltar a contenido

Services declared without permissions

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.

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