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

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

Upload: owasp-russia

Post on 22-Mar-2017

2.527 views

Category:

Internet


2 download

TRANSCRIPT

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