Aller au contenu

Services declared without permissions

Services déclarés sans autorisations

Description

service est un composant de l'application qui peut prendre en charge des actions à effectuer en arrière-plan, sans interaction de l'utilisateur. Un service peut également être utilisé pour exposer des fonctionnalités à d'autres applications. Cela correspond aux appels à Context.bindService() pour établir une connexion au service et interagir avec lui.

Les services non protégés peuvent être invoqués par d'autres applications et potentiellement accéder à des informations sensibles ou effectuer des actions privilégiées.

Recommandation

Le service peut exposer plusieurs méthodes aux composants externes. Il est possible de définir des autorisations arbitraires pour chaque méthode à l'aide de la méthode checkPermission.

Il est également possible de séparer les services et de restreindre l'accès en appliquant des autorisations dans la balise <service> du manifeste.

<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>

Le service peut appliquer des autorisations sur les appels IPC individuels en appelant la méthode checkCallingPermission avant d'exécuter l'implémentation de cet appel.

Liens

Normes

  • 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