«Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО...

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

Transcript of «Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО...

Page 1: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Android Task hijacking

Евгений Блашко Шабалин Юрий

Отдел Тестирования Информационной Безопасности приложений

«Сбербанк Технологии»

Page 2: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

whoami • Евгений Блашко

ВТБ24, 2A-Софт - Разработка мобильных приложений - Анализ мобильных приложений

• Юрий Шабалин Positive Technologies, Альфа-банк

– Внедрение процесса SDLC, анализ кода – Анализ мобильных приложений – разработка ПО

Page 3: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Предыстория

• USENIX Security Symposium 2015, Towards Discovering and Understanding Task Hijacking in Android

В ходе исследования и выявились дополнительные возможности…

Page 4: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 5: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 6: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 7: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 8: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 9: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 10: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Что такое taskAffinity

Page 11: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 12: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Magic

Page 13: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Task hijacking

Page 14: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 15: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Пример

Page 16: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 17: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Пример из демо

Press Intro Press Back

Page 18: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 19: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Пример из демо

Press Фото

Page 20: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 21: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 22: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Пример из демо

Press Фото

Page 23: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

- Моё приложение уязвимо? - Да.

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

Page 24: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 25: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

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

Page 26: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Questions?

Page 27: «Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Технологии»)

Telegram: @R1p4eg

Mail: [email protected]

Mail: [email protected]

Telegram: @jd7drw