Защита сайта от брутфорс и ддос атак

Чтобы понять, как защитить веб-систему от брутфорс или ддос атак, необходимо разобраться, что они из себя представляют.

Подробно о брутфорсах было раскатано ранее.

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

Так же «ддосить» эффективнее всего страницы, которые потребляют больше всего ресурсов вашего сервиса, а брутфорсят форму авторизации/восстановления пароля или же аналогичные АПИ для авторизации или восстановления пароля. При этом, злоумышленникам выгоднее, если ваш сайт, все таки доступен, так что они, скорее всего позаботятся, чтобы нагрузка была равномерная.

Итак, общие методы защиты и от брутфорса и от ддоса будут следующие:

  • Выставление лимитов на количество запросов в секунду/минут на уровне веб-сервера
  • Использование инструментов, которые автоматизируют блокировки айпи-адресов или user-agent клиентов, если количество запросов или ошибок блокировки превышает пороговое значение (например, fail2ban)
  • Косвенным инструментом, так же, являются панели мониторинга, настроенные на количество запросов или ошибок, которые позволят оперативно реагировать на параметры, отличные от нормальной ситуации
Пример одного из даш-бордов из Grafana со статусами ответов и ошибок
  • Настроенные уведомления, при изменении поведения вашей системы, т.е. потенциальных атаках
  • Так же важны обновления операционной системы и настройки веб-сервера на соответствующие нагрузки

Что еще можно добавить по бтурфорсам, отдельно

  • Собственные лимиты на формы и АПИ авторизации, восстановления паролей, которые могут быть строже, чем на «любую» страницу
  • На веб-формы можно повесить капчи (google recaptcha) и CSRF-защиту
  • Дву-факторная авторизация (например, с помощью СМС-шлюза или же Google Authenticator)
  • Уведомления пользователям, в случае, если произошла авторизация из неизвестного устройства или локации

Из косвенных методов зашиты:

  • Дополнительные слои анализа и защиты в местах, где выводятся вашим реальным пользователем выводятся деньги или другие ценности, чтобы сделать сложнее жизнь злоумышленнику, даже, если ему удасться взломать пару-тройку аккаунтов
  • Возможность временной блокировки скомпрометированных аккаунтов пользователей