Android: экспортировано

Категория OWASP: MASVS-ПЛАТФОРМА: Взаимодействие платформы

Обзор

Атрибут android:exported определяет, может ли компонент (активность, сервис, приемник вещания и т. д.) запускаться компонентами других приложений:

  • Если true , любое приложение может получить доступ к действию и запустить его по точному имени класса.
  • Если false , только компоненты одного и того же приложения, приложения с тем же идентификатором пользователя или привилегированные системные компоненты могут запускать это действие.

Логика значения этого атрибута по умолчанию со временем менялась и различалась в зависимости от типов компонентов и версий Android. Например, на уровне API 16 (Android 4.1.1) или ниже для элементов <provider> по умолчанию установлено значение true . Если этот атрибут не задан явно, существует риск того, что на некоторых устройствах будут разные значения по умолчанию.

Влияние

Ситуация с разными значениями по умолчанию означает, что вы можете случайно раскрыть внутренние компоненты приложения. Несколько примеров последствий могут быть следующими:

Атаки типа «отказ в обслуживании». Другие приложения неправомерно получают доступ к внутренним компонентам для изменения внутренних функций вашего приложения. Утечка конфиденциальных данных. Выполнение кода в контексте уязвимого приложения.

Смягчения

Всегда явно устанавливайте атрибут android:exported . Это не оставит места для интерпретации и четко сигнализирует о вашем намерении относительно видимости компонента.

{% дословно %} {% дословно %} {% дословно %} {% дословно %}