Services declared without permissions
権限なしで宣言されたサービス
説明
serviceは、ユーザーの対話なしでバックグラウンドで実行されるアクションを処理できるアプリケーションコンポーネントです。serviceは、他のアプリケーションに機能を公開するためにも使用できます。これは、サービスへの接続を確立して対話するためのContext.bindService()への呼び出しに対応します。
保護されていないサービスは、他のアプリケーションから呼び出される可能性があり、機密情報にアクセスしたり、特権的なアクションを実行したりする可能性があります。
推奨事項
serviceは、外部コンポーネントにいくつかのメソッドを公開できます。checkPermissionメソッドを使用して、各メソッドに任意の権限を定義することが可能です。
また、マニフェストの<service>タグで権限を適用することにより、サービスを分離してアクセスを制限することも可能です。
<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>
サービスは、その呼び出しの実装を実行する前にcheckCallingPermissionメソッドを呼び出すことで、個々のIPC呼び出しに権限を適用できます。
リンク
- Security Decisions Via Untrusted Inputs (OWASP Mobile Top 10)
- Service (Android Developer Documentation)
- CWE-280: Improper Handling of Insufficient Permissions or Privileges
標準
- 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