Уязвимости формы аутентификации

5 1338

Форма аутентификации является клондайком для хакеров, так как её уязвимость может вести за собой серьёзные последствия в виде нарушений разграничения доступа, возможности получить доступ к аккаунтам пользователей и администраторов.

Такие уязвимости находят через перебор пользователей и паролей. И если система возвращает разные сообщения об ошибках при неверном логине и пароле — это позволяет определить, какие логины существуют. Дальше идёт подбор. Через форму восстановления пароля можно отправить десятки писем с подменой адресов и ссылок. Разные ответы сервера также можно найти и в форме восстановления пароля, там в поле в основном вводится почта пользователя, соответственно можно собрать список почт для использования в фишинге.

Форма восстановления пароля может таить в себе ещё и возможность DOS-атак.

Если разработчики не предусмотрели ограничения, злоумышленник может отправлять огромное количество писем на один и тот же адрес, модифицируя его (например, user@mail.com, user+1@mail.com, user+2@mail.com). А если на сайте есть ещё и уязвимость, связанная с обработкой заголовка Host, ситуация становится ещё серьёзнее: атакующий может подменить адрес сайта в письме. Тогда пользователь получит письмо со ссылкой на внешний, подконтрольный злоумышленнику ресурс — и передаст свой код подтверждения не тому, кому нужно.

Как защититься

Чтобы защитить форму аутентификации от уязвимостей, важно реализовать несколько ключевых мер:

Унифицировать ответы сервера при неверных логине и пароле — сообщения об ошибке не должны давать понять, существует ли такой пользователь.

Ввести ограничения на количество попыток входа — использовать rate limiting, капчу или блокировку IP/учётки.

Обеспечить жёсткую политику паролей: минимальную длину, наличие цифр, букв разных регистров и специальных символов.

Защитить форму восстановления пароля от enumeration и флуда — проверять частоту запросов, использовать токены с ограничением по времени и одноразовые ссылки.

Исключить возможность Host header injection — проверять заголовок Host на соответствие допустимому списку доменов при генерации ссылок в письмах.

Ну вот, могут же, когда захотят: Россия задержала эстонский нефтяной танкер
  • pretty
  • Вчера 17:37
  • В топе

КОШКИН18 мая случилось то, чего не случалось уже много лет. Как сообщает издание Narva News, ссылаясь на данные автоматической идентификационной системы (AIS) российские пограничные силы задержали неф...

Euroclear в панике
  • pretty
  • Вчера 18:16
  • В топе

За всем информационным шумом вокруг Стамбула и Украины незамеченными остаются события, которые могут привести к очень серьезным последствиям для Евросоюза, да и вообще для Запада. Дело в...

Пираты чухонских морей
  • pretty
  • Вчера 14:59
  • В топе

ИСТОРИЧЕСКИЕ  НАПЁРСТКИНагоняем уползшие вниз по информационной ленте новости. Тут на прошлой неделе любопытный эпизод случился на Балтике. Героическая Эстония пыталась попиратствовать в междунар...

Обсудить
  • Пожизненое для хакеров решит такие проблемы