Slide 1

Slide 1 text

Android Task hijacking Евгений Блашко Шабалин Юрий Отдел Тестирования Информационной Безопасности приложений «Сбербанк Технологии»

Slide 2

Slide 2 text

whoami • Евгений Блашко ВТБ24, 2A-Софт - Разработка мобильных приложений - Анализ мобильных приложений • Юрий Шабалин Positive Technologies, Альфа-банк – Внедрение процесса SDLC, анализ кода – Анализ мобильных приложений – разработка ПО

Slide 3

Slide 3 text

Предыстория • USENIX Security Symposium 2015, Towards Discovering and Understanding Task Hijacking in Android В ходе исследования и выявились дополнительные возможности…

Slide 4

Slide 4 text

Многозадачность не как у всех Как у всех: • Процессная многозадачность • Поточная многозадачность Свои особенности: • Задача – это коллекция Activity • Одна Activity в разных задачах • В одной задаче Activity из разных приложений Why? • Переключение между сценариями использования • Сохранение состояния • Создание иллюзии работы в одном приложении

Slide 5

Slide 5 text

«Монетизируем» многозадачность

Slide 6

Slide 6 text

Немного теории..

Slide 7

Slide 7 text

Немного теории..

Slide 8

Slide 8 text

Стандартное поведение

Slide 9

Slide 9 text

Стандартное поведение

Slide 10

Slide 10 text

Что такое taskAffinity

Slide 11

Slide 11 text

Как работает taskAffinity

Slide 12

Slide 12 text

Magic

Slide 13

Slide 13 text

Task hijacking

Slide 14

Slide 14 text

Hijacking state transition #1 Развитие Activity Hijacking

Slide 15

Slide 15 text

Пример

Slide 16

Slide 16 text

Hijacking state transition #2 Возврат к “исходному” приложению

Slide 17

Slide 17 text

Пример из демо Press Intro Press Back

Slide 18

Slide 18 text

Hijacking state transition #3 Заменяем любое приложение малварью

Slide 19

Slide 19 text

Пример из демо Press Фото

Slide 20

Slide 20 text

Hijacking state transition #4 Редкий случай

Slide 21

Slide 21 text

Hijacking state transition #5 Весьма вероятный случай

Slide 22

Slide 22 text

Пример из демо Press Фото

Slide 23

Slide 23 text

- Моё приложение уязвимо? - Да. 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

Slide 24

Slide 24 text

Что следует учитывать • 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

Slide 25

Slide 25 text

А ты установил «калькулятор для бухгалтера»?

Slide 26

Slide 26 text

Questions?

Slide 27

Slide 27 text

Telegram: @R1p4eg Mail: [email protected] Mail: [email protected] Telegram: @jd7drw