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

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

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

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

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

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

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

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

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

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

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

Атака на наш веб-сайт — брутфорс — как и зачем

Один из самых распространённых типов атак на веб-сайт — это брутфорс (brute force).

Брут форс — это атака на веб систему, с целью взломать аккаунты. Чаще всего атакуются или форма авторизации или апи авторизации.

Так как же взламывают?

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

Так же хакеру нужна база емэйл адресов и паролей для перебора. И тут есть различные подходы:

  • первый подход: набор емэйл адресов (часто, это адреса, которые были «хакнуты» ранее или же слиты/проданы не-добропорядочными организациями) и перебор паролей, которые чаще всего используются большинством людей, например qweqwe, 123123 и иже с ними
  • второй, более прогрессивный подход опишем далее. Многие люди используют один и тот же емэйл и пароль для регистрации на различных веб-сайтах. Это происходит, потому что так проще запомнить пароль. А теперь, представим, что на одном из таких сайтов была слабая защита и его взломали и «забрали» базу емэйлов-паролей, а пароли еще и не были защищены шифрованием… Теперь можно использовать эти «беспроигрышные» комбинации и на других сервисах. Самое неприятное здесь, что для защиты не помогает сложный пароль, каким бы сложным он не был. Что уж таить, взламывают и крупные сервисы, такие как соц сети и получают огромную базу, готовую к брутфорсу

Прежде чем углубляться в вопрос «Как», давайте осветим «Зачем» брутфорсят Ваш сайт.

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

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

Закрытые группы в фейсбуке, где продают учетные данные с сайтов или конфигурации для автоматизации взломов

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

Вернемся к вопросу «как» поподробнее.

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

Пример конфигураций из закрытых групп в соц сетях

Так же, хакеры используют базу прокси-адресов (выделенных IP адресов) для того, чтобы их было сложнее заблокировать. Один IP адрес просто заблокировать средствами операционной системы или веб-сервера, а вот меняющиеся адреса — сложнее. Какое то количество IP адресов на относительно короткое время можно получить бесплатно (далее, по моим прикидкам один IP адрес будет стоить примерно 0.1 доллара в месяц). Регистрируются они на специализированных сайтах, которые их (прокси) продают легальным образом для безобидных целей. Но, как видите, часто используются для целей злоумышленников. Это базы прокси-адресов подключаются к программе брутфорса (той же SilverBullet). Так же туда подключаются другие параметры атаки, упомянутые ранее.

И атака запускается.