🛡 Защищаем свои ресурсы. Часть 2: Аутентификация

Всем привет. Продолжаем образовательную рубрику и сегодня поговорим о неправильной аутентификации.

Если совсем просто - это ситуации, когда форму входа можно обойти, даже не зная пароль.

Что такое аутентификация ?

Аутентификация - это момент, когда сервис решает: пускать вас внутрь или нет.

Обычно это логин, пароль, код из SMS, приложение-аутентификатор, «запомнить меня» и т.д.

Проблема начинается тогда, когда проверка сделана логически неправильно. И тогда злоумышленнику не нужно взламывать пароль — достаточно обойти саму проверку.

Где чаще всего совершают ошибки

1️⃣ По ответам сервера можно понять, существует ли пользователь

Иногда сервис сам подсказывает, есть ли такой пользователь в системе.

Как это выглядит на практике:

для одного логина сайт отвечает чуть дольше

для другого - сразу

или тексты ошибок немного отличаются

Для обычного пользователя это незаметно. Для злоумышленника - это способ составить список реальных аккаунтов.

2️⃣ Защита от перебора есть, но она формальная

Частый кейс:

есть ограничение на количество попыток входа

но после успешного входа в любой аккаунт счётчик сбрасывается

В итоге можно бесконечно подбирать пароли, просто чередуя попытки.

Иногда защита вообще завязана только на IP-адрес, который легко подменяется.

3️⃣ 2FA есть, но его можно обойти

Многие думают:

«У нас есть двухфакторка - значит всё безопасно»

На практике:

второй шаг проверки может быть привязан к параметру в запросе

если его подменить, проверка просто пропускается

Выглядит как 2FA, работает - как ее отсутствие.

4️⃣ Небезопасные cookies

Иногда сервисы хранят в cookies:

имя пользователя

зашифрованный или предсказуемый пароль

Если такую cookie украли - аккаунт фактически скомпрометирован.

5️⃣ Сброс пароля как слабое место

Функция «Забыли пароль?» - одна из самых атакуемых.

Опасные признаки:

разные сообщения об ошибках

подсказки, какой именно шаг неверный

возможность угадывать текущий пароль по реакции системы

Это позволяет атаковать аккаунт, даже не заходя в него. Что в итоге может получить злоумышленник

• вход в чужие аккаунты • доступ к персональным данным • захват сессий • повышение прав • полный контроль над функциями сервиса

Как от этого защищаются

• сервис не должен показывать, существует ли пользователь

• ответы сервера должны быть одинаковыми по тексту и времени

• ограничения на количество попыток + CAPTCHA

• корректная реализация двухфакторной защиты

• никаких чувствительных данных в cookies

• аккуратный и «немой» сброс пароля без подсказок

Вывод

Проблемы с аутентификацией - это про ошибки в логике и доверие к клиенту.

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

Продолжение следует 👉 Часть 3: Path Traversal

🛡 Защищаем свои ресурсы. Часть 2: Аутентификация
Всем привет.
Продолжаем образовательную рубрику и сегодня поговорим о неправильной аутентификации | Сетка — социальная сеть от hh.ru