Upgrade to Pro — share decks privately, control downloads, hide ads and more …

"Безопасность банковских мобильных приложений", Тимур Юнусов

"Безопасность банковских мобильных приложений", Тимур Юнусов

OWASP Russia Meetup #4

OWASP Moscow

March 17, 2016
Tweet

More Decks by OWASP Moscow

Other Decks in Programming

Transcript

  1. What this talk is about? • Статистика и проблематика •

    СМС – удобно или безопасно? • Уязвимости и MVC • Небезопасность безопасной криптографии • Уязвимости клиентских приложений • Еще одна ложечка дегтя • Границы скоупа
  2. Почему ―Потери от мошенничества в банках растут ежегодно (26% в

    2015г) • Атаки на пользователей • Атаки на банки
  3. Почему ―Потери от мошенничества в банках растут ежегодно (26% в

    2015г) • Атаки на пользователей • Атаки на банки • Атаки на пользователей через проблемы банков • Атакуют всегда самое слабое звено
  4. Двухфакторная аутентификация Знаю (пароль), обладаю (устройство): ―Одноразовые пароли (СМС, генераторы

    OTP, чеки) ―Криптоподпись операций (токены, клиентские сертификаты) ―Остальное (голосовая аутентификация, кодовое слово и т.д.)
  5. ДА в банковских продуктах для физлиц ―Одноразовые пароли в СМС

    • Вход в систему • Критичные операции • Финансовые операции
  6. Бизнес-логика ―Пример 4 POST /activate/ HTTP/1.1 Host: mobilehost otp_code=27291&transaction_id=******** POST

    /activate/ HTTP/1.1 Host: mobilehost otp_code=27291&transaction_id=******** POST /activate/ HTTP/1.1 Host: mobilehost otp_code=27291&transaction_id=******** POST /activate/ HTTP/1.1 Host: mobilehost otp_code=27291&transaction_id=********
  7. Бизнес-логика ―Пример 5 POST /activate/ HTTP/1.1 Host: mobilehost transaction_id=******** POST

    /activate/ HTTP/1.1 Host: mobilehost transaction_id=******** POST /activate/ HTTP/1.1 Host: mobilehost transaction_id=******** POST /activate/ HTTP/1.1 Host: mobilehost transaction_id=******** POST /activate/ HTTP/1.1 Host: mobilehost otp_code=27291
  8. Бизнес-логика ―Пример 6 POST /activate/ HTTP/1.1 Cookie: {EMPTY} Host: otherhost.bankhost

    otp_code=27291 HTTP/1.0 301 Moved Permanently Location: https://bankhost/auth/?login=ivanov
  9. Бизнес-логика ―Пример 7 • 3 попытки на пароль • Временное

    блокирование • Постоянное блокирование 12345; 12346; 12347
  10. Аутентификация и авторизация. MVC • Доступ по абсолютным id -

    зло! • Ограничения завязаны на сессию, а не на учетную запись. • Никто не мешает менять идентификаторы в запросах, даже если все защищенно от SSL Pinning => атаки на бизнес-логику
  11. Атаки на криптографию • Padding Oracle • Signature bypass (sigwrapping,

    hash extension, etc) • SSL pinning • Импорт сертификата • Перехват вызовов функций
  12. Проблемы на устройстве ―Банковская мобильная малварь • Q3/2015 = 4

    * Q2/2015 ―Jailbreak detection ―Недостатки мобильных приложений
  13. Проблемы на устройстве ―Банковская мобильная малварь • Q3/2015 = 4

    * Q2/2015 ―Jailbreak detection ―Недостатки мобильных приложений
  14. Еще??? Хватит уже… • RCE и доступ без авторизации через

    javascript внутри java • Авторизация под чужим логином
  15. Решения ―Взаимодействие с операторами • IMSI ―Корректная реализация алгоритма на

    сервере и мобильном клиенте ―Защита периметра ―Обучение клиентов и сотрудников ―Антифрод
  16. Статистика 2015 ―27% проектов не содержали уязвимостей ―36% содержали XSS,

    которые помогали злоумышленникам в фишинговых атаках и обходе механизмов ДА ―54% проектов некорректно реализовывали механизмы ДА, что позволяло их обходить тем или иным способом.
  17. «Проверьте мне мобильный банк» (с) Заказчик • На одном хосте

    находится несколько приложений • А чем мне опасно хищение денег? • Тестовый контур VS Промышленная среда