Android Task hijacking Евгений Блашко Шабалин Юрий Отдел Тестирования Информационной Безопасности приложений «Сбербанк Технологии»
Android Task hijacking
Евгений Блашко Шабалин Юрий
Отдел Тестирования Информационной Безопасности приложений
«Сбербанк Технологии»
whoami • Евгений Блашко
ВТБ24, 2A-Софт - Разработка мобильных приложений - Анализ мобильных приложений
• Юрий Шабалин Positive Technologies, Альфа-банк
– Внедрение процесса SDLC, анализ кода – Анализ мобильных приложений – разработка ПО
Предыстория
• USENIX Security Symposium 2015, Towards Discovering and Understanding Task Hijacking in Android
В ходе исследования и выявились дополнительные возможности…
Многозадачность не как у всех Как у всех: • Процессная многозадачность • Поточная многозадачность Свои особенности: • Задача – это коллекция Activity • Одна Activity в разных задачах • В одной задаче Activity из разных приложений Why? • Переключение между сценариями использования • Сохранение состояния • Создание иллюзии работы в одном приложении
«Монетизируем» многозадачность
Немного теории..
Немного теории..
Стандартное поведение
Стандартное поведение
Что такое taskAffinity
Как работает taskAffinity
Magic
Task hijacking
Hijacking state transition #1 Развитие Activity Hijacking
Пример
Hijacking state transition #2 Возврат к “исходному” приложению
Пример из демо
Press Intro Press Back
Hijacking state transition #3 Заменяем любое приложение малварью
Пример из демо
Press Фото
Hijacking state transition #4 Редкий случай
Hijacking state transition #5 Весьма вероятный случай
Пример из демо
Press Фото
- Моё приложение уязвимо? - Да.
Vulnerability % of apps
Send implicit intent for exported activities 93,9
Send implicit intent for exported activities and use intent FLAG_ACTIVITY_NEW_TASK
65,5
Contains public exported activity and launchMode=“singleTask”
14,2
Contains public exported activity and allowTaskReparenting=“true”
1,4
Что следует учитывать • Don’t specify taskAffinity • Don’t specify launchMode • Don’t specify allowReparenting • Don’t set FLAG_ACTIVITY_NEW_TASK • Use explicit Intents if the destination Activity is
predetermined • Verify the destination Activity if linking with another
application • Internal activities must be private
А ты установил «калькулятор для бухгалтера»?
Questions?