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

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

OWASP Russia Meetup #6

47a3212bc9721c62f1135ead56569f17?s=128

OWASP Moscow

December 04, 2017
Tweet

Transcript

  1. Android Task hijacking Евгений Блашко Шабалин Юрий Отдел Тестирования Информационной

    Безопасности приложений «Сбербанк Технологии»
  2. whoami • Евгений Блашко ВТБ24, 2A-Софт - Разработка мобильных приложений

    - Анализ мобильных приложений • Юрий Шабалин Positive Technologies, Альфа-банк – Внедрение процесса SDLC, анализ кода – Анализ мобильных приложений – разработка ПО
  3. Предыстория • USENIX Security Symposium 2015, Towards Discovering and Understanding

    Task Hijacking in Android В ходе исследования и выявились дополнительные возможности…
  4. Многозадачность не как у всех Как у всех: • Процессная

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

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

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

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

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

  10. Что такое taskAffinity

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

  12. Magic

  13. Task hijacking

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

  15. Пример

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

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

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

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

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

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

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

  23. - Моё приложение уязвимо? - Да. 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
  24. Что следует учитывать • 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
  25. А ты установил «калькулятор для бухгалтера»?

  26. Questions?

  27. Telegram: @R1p4eg Mail: Yury.shabalin@gmail.com Mail: 30russian@gmail.com Telegram: @jd7drw