コンテンツにスキップ

Broadcast receiver dynamic registration

ブロードキャスト・レシーバーの動的登録

説明

アプリケーションの1つ以上のブロードキャストレシーバーがコード内で動的に登録されており、AndroidManifest.xmlファイル内の署名パーミッションによって保護されていません。動的に登録されたレシーバーはすべてエクスポートされます。マルウェアアプリケーションを使用することで、攻撃者は任意のデータをエクスポートされたレシーバーにブロードキャストでき、アプリケーションのさまざまなコンポーネントの呼び出しやコードの実行につながる可能性があります。たとえば、多くのブロードキャストレシーバーはSMSメッセージやGCMメッセージを受信するようにプログラムされています。正しく機能させるために、これらのレシーバーは、SMSアプリやGCMフレームワークなどの他のアプリケーションからデータを受信できるように常にエクスポートされる必要があります。このようなレシーバーを保護するには、registerReceiverメソッドの呼び出し中に常に適切なパーミッションを宣言する必要があります。ブロードキャストレシーバーは、サービスの開始によく使用される悪用される可能性が高いコンポーネントであるため、渡されるすべての外部データを確認することを強くお勧めします。最も制限が厳しく、したがって安全なポリシーを有効にするには、署名パーミッションを使用して、エクスポートされるインテントの数を最小限に抑える必要があります。

推奨事項

サードパーティのアプリケーションによって開始される機能が本当に必要なブロードキャストレシーバーのみをエクスポートしていることを確認してください。または、AndroidManifest.xmlファイルにandroid:protectionLevel="signature"のパーミッションを作成し、ご自身のアプリケーションからのみ開始されるすべてのブロードキャストレシーバーにそれを使用し、サードパーティのアプリケーションによって開始されるべきではないすべてのブロードキャストレシーバーについてはexported="false"を設定してください。

リンク