Заполнение учетных данных - это атака методом перебора учетных записей пользователей служб. Не один конкретный аккаунт, а много. Обычно с использованием учетных данных, которые были обнаружены при других взломах. Как пользователь, вы можете видеть на сайте haveibeenpawned.com, была ли взломана одна из ваших учетных записей. Скорее всего, так и было. Давайте узнаем, на что вы способны!

Почему тебе следует заботиться

Как работает атака с заполнением учетных данных?

  1. Злоумышленник получает список действительных учетных данных, например (логин, пароль) для миллионов людей. Есть много утечек.
  2. Злоумышленник пробует их на крупных сервисах (Gmail, Facebook, Twitter, Banks, Reddit и т. Д.)

Вот и все. Это действительно тривиально. Заполнение учетных данных нацелено не на вас лично, а на множество людей одновременно. Но это же не поможет, когда ваш банковский счет пуст в конце дня, не так ли?

Как я могу защититься от атаки с заполнением учетных данных?

У пользователя есть две идеальные меры защиты:

  1. Надежные пароли. Хорошие пароли могут выглядеть иначе, чем вы думаете. Но легко создавать запоминающиеся надежные пароли.
  2. Уникальные пароли. Не передавайте пароли другим службам. Никогда.

Чтобы выполнить обе задачи удобным образом, вам следует использовать менеджер паролей. Третий момент, который помогает, - это использование многофакторной аутентификации (MFA). Наличие хотя бы второго фактора (2FA) имеет большое значение. Однако злоумышленник, скорее всего, узнает, какие пароли верны, и сможет взломать второй фактор, например заменой SIM-карты.

Как поставщик услуг, защита не идеальна и сложна:

  • Ограничение скорости: если один IP-адрес делает слишком много попыток ввода неверного пароля, замедлите этот IP-адрес. Например, попросите их сначала решить CAPTCHA. Или скажите им, что им не разрешено входить в систему в течение следующих 30 секунд. Просто имейте в виду, что это также может заблокировать действительных пользователей, например в школах или других более крупных открытых сетях.
  • Брандмауэры веб-приложений (WAF): здесь полный отказ от ответственности: у меня нет практического опыта здесь. Я слышал о «Проактивной защите от ботов», которая может быть интересна и для других сценариев атак. Тем не менее, у него, безусловно, есть проблемы с обнаружением всех атак (ложно-отрицательные) и блокировкой только атак (ложно-положительные).
  • Двухфакторная аутентификация (2FA): принуждение пользователя к использованию второго фактора снижает вероятность того, что заполнение учетных данных работает, даже если пользователь поделился паролями с уязвимой службой и даже если пароль слабый.
  • Единый вход (SSO): предоставление возможности другой службе заниматься аутентификацией позволяет избежать всех этих проблем. Один из широко известных вариантов - это «социальный вход». Это просто SSO для крупных социальных сетей, таких как Facebook, Twitter, Github или LinkedIn.
  • Проверять пароли пользователей на предмет взлома: haveibeenpawned позволяет проверить, не взломаны ли комбинации учетных данных.

Есть также некоторые особенности, которые усложняют жизнь разработчикам-ботам, например: требовать JavaScript, блокировать безголовые браузеры или блокировать трафик от AWS. Джаррод Оверсон написал об этом очень хорошую статью:



Что дальше?

В этой серии статей о безопасности приложений (AppSec) мы уже объяснили некоторые приемы злоумышленников 😈, а также приемы защитников 😇:

И вот-вот это:

  • CSRF 😈
  • DOS 😈
  • ReDoS 😈
  • Криптоджекинг 😈
  • Единый вход 😇
  • Двухфакторная аутентификация 😇
  • Резервные копии 😇

Дайте мне знать, если вас интересуют другие статьи о AppSec / InfoSec!