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
- Security Decisions Via Untrusted Inputs (OWASP Mobile Top 10)
- Service (Android Developer Documentation)
- CWE-280: Improper Handling of Insufficient Permissions or Privileges
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