Категория OWASP: MASVS-ПЛАТФОРМА: Взаимодействие платформы
Обзор
Атака StrandHogg/уязвимость Task Affinity была включена/вызвана ошибкой дизайна в способе обработки нескольких задач Android, в частности, в функции, называемой переоформлением задач. Переопределение задач приложения — это функция, которая позволяет приложению перемещать действие из одной задачи в другую.
Атака StrandHogg использует отсутствие ясности в том, как проверять входящие действия стека задач приложения, и позволяет вредоносному приложению:
- переместить вредоносную активность в стек жертвы или из него
- установить вредоносную активность в качестве стека возврата после завершения активности жертвы
Эта уязвимость используется путем манипуляции настройкамиallowTaskReparenting и allowTaskReparenting
taskAffinity
Влияние
Вредоносное приложение может установить параметр TaskAffinity одного из своих действий в соответствии с именем пакета целевого приложения. Затем это можно совместить с перехватом намерений, чтобы при следующем запуске пользователем целевого приложения вредоносное приложение также запускалось и отображалось поверх целевого приложения.
Уязвимость Task Affinity может затем использоваться для перехвата законных действий пользователя.
Пользователя можно обманом заставить предоставить учетные данные вредоносному приложению. По умолчанию, как только действие запускается и связывается с задачей, эта связь сохраняется на протяжении всего жизненного цикла действия. Однако установка для параметраallowTaskReparenting значения true нарушает это ограничение, позволяя переподчинить существующее действие вновь созданной «собственной» задаче.
Например, приложение A может быть нацелено на приложение B, перенаправляя действия приложения A в стек действий приложения B после возврата из завершенного действия приложения A. Этот переход из одного приложения в другое скрыт от пользователя и создает серьезную угрозу фишинга.
Смягчения
Обновите android:minSdkVersion="30"
.
Уязвимость атаки StrandHogg / сходства задач была первоначально исправлена в марте 2019 года, а более новый и более полный вариант исправлен в сентябре 2020 года. Android SDK версий 30 и новее (Android 11) содержит соответствующие исправления ОС, позволяющие избежать этой уязвимости. Хотя можно частично смягчить атаку StrandHogg версии 1 с помощью индивидуальной настройки приложения, атаку версии 2 можно предотвратить только с помощью этого исправления версии SDK.
Ресурсы
- Оригинальная научная статья с описанием уязвимости Usenix 15 {.external}
- Расширение исходной уязвимости {.external} группой Promon Security
- Документация разработчика Android для android:allowTaskReparenting
- Документация разработчика Android для android:taskAffinity
- Документация разработчика Android для элемента приложения android:allowTaskReparenting