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

Post on 22-Mar-2017

2.527 Views

Category:

Internet

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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?

Telegram: @R1p4eg

Mail: Yury.shabalin@gmail.com

Mail: 30russian@gmail.com

Telegram: @jd7drw

top related