Модель угроз: вход в мобильный банк
Вопрос
Смоделируйте угрозы для входа в мобильное приложение банка: первый вход по логину и паролю с SMS-кодом, затем вход по PIN или биометрии, refresh-токен на устройстве.
Коротко
Что должно быть в решении
- 1Схема: пользователь, мобильное приложение и хранилище устройства, API аутентификации, сервис SMS, база сессий; границы: устройство, сеть, бэкенд
- 2Spoofing: перехват SMS и перевыпуск SIM, фишинг, подбор PIN; лимиты, привязка устройства, push вместо SMS
- 3Information disclosure: токены в небезопасном хранилище и логах; Keychain и Keystore, без токенов в логах
- 4Tampering: рутованные устройства, модифицированное приложение; проверка целостности как сигнал риска, а не единственная защита
- 5Elevation: кража refresh-токена; ротация с обнаружением повторного использования, привязка к ключу устройства
- 6Repudiation и мошенничество: журнал устройств и входов, уведомления
- 7DoS: массовая отправка SMS за счёт банка; лимиты и защита от ботов
Что спросит интервьюер
- Как PIN проверяется: на устройстве или на сервере?
- Что делать, если пользователь потерял телефон?
Разбор
Эталонный разбор. На первом входе главные угрозы: credential stuffing и обход SMS (перевыпуск SIM, фишинговые страницы, пересылающие код). Меры: лимиты, оценка риска входа, привязка нового устройства с подтверждением, уведомление на старые устройства. После активации устройство получает ключевую пару в аппаратном хранилище, refresh-токен связан с этим ключом, поэтому украденный токен бесполезен без устройства. PIN и биометрия разблокируют локальный ключ, а сервер ограничивает число попыток. Токены не пишутся в логи и бэкапы. Повтор refresh-токена отзывает всю цепочку сессий. Отправка SMS ограничена, чтобы не оплачивать трафик атакующего. Пользователь видит список устройств и может отозвать любое.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.