Мы запускаем поисковую систему и видим огромное количество поддельных поисковых запросов, поступающих в последние дни с тысяч IP-адресов. Не существует реальной закономерности с точки зрения текста запроса или диапазона IP-адресов. Похоже, что существует сеть ботов, пытающихся нас вывести из строя. В настоящее время мы наблюдаем около 30 поддельных запросов в секунду, и их количество растет.
Мы пытались настроить cloudflare, но это не помогло. Мы могли бы попытаться заблокировать плохой трафик с помощью Captchas, но это может снизить удобство использования для наших реальных пользователей.
Кто-нибудь знает, как с этим справиться? Мы работаем на AWS с Route53.
Это сложный вопрос, поскольку они, по сути, используют законную функцию вашего сайта.
У вас есть несколько основных вариантов:
Проделайте дополнительную работу, чтобы попытаться определить атаки и заблокировать их. Первое, что мне нужно было сделать в таком случае, - это создать инструменты, чтобы вы могли видеть, что происходит, и искать закономерности. Мне удалось сделать это довольно легко, просто используя несколько сценариев awk и делая подсчеты в различных полях для поиска общих вещей. У запросов один и тот же пользовательский агент? Может реферер? Может, длина поисковой строки? Все ли IP-адреса поступают из одной страны? Возможно, у них есть несколько странный способ использования URL, например, добавление "?" - все, что вы можете зафиксировать, чтобы идентифицировать трафик. Эта часть обычно представляет собой игру в кошки-мышки и зависит от того, насколько хорошо вы можете или готовы выглядеть со своей стороны и насколько прилежны атакующие.
Вы также можете отключить эту функцию своего сайта, а все остальное оставить. Т.е. может быть наиболее практичным было бы просто заменить вашу поисковую систему статическим сообщением «временно недоступен, мы вносим некоторые изменения», пока атака не прекратится.
Вы также можете оптимизировать поисковую систему, чтобы она лучше работала под нагрузкой. В зависимости от того, какой движок вы используете - некоторые поисковые системы довольно неэффективны (на ум приходит Drupal). Правильно оптимизированный, вы сможете справиться с трафиком. Пока вы не вычислите числа, не стоит недооценивать, сколько ЦП, памяти и т. Д. Теряется из-за неэффективности кода.
Если эта поисковая система является ключевой для вашего бизнеса и кто-то умный действительно ее преследует, то вам придется максимально ее оптимизировать и расширить свою инфраструктуру, чтобы справиться с нагрузкой.
Вы можете вводить Captcha только после того, как конкретный IP-адрес сделал более x запросов за x таймфрейм.
Вам необходимо изменить свою функциональность таким образом, чтобы вы могли фильтровать плохой трафик, это вызовет «гонку вооружений» - но вы всегда находитесь в той позиции, в которой вы меняетесь, и они реагируют - и если вы всегда готовите Следующим шагом заранее вы сможете эффективно нейтрализовать их новую версию, как только она станет доступной.
Если вы продолжите в том же духе, они, вероятно, либо сдадутся, либо скоро изменят векторы атаки.
Например:
Добавьте скрытое поле в форму поиска (просто постоянное значение), отклоните запрос, если это поле отсутствует.
Когда они обновляют своего бота, чтобы включить это поле, измените его значение на конкретное значение IP (только IP-адрес будет в порядке)
Когда они снова обновятся, измените значение на хеш IP-адреса + секретный ключ
Следующее обновление добавит что-то, что требует некоторого тривиального javascript (например, дайте клиенту два числа и потребуйте сумму этих чисел).
Следующее обновление получит параметры javascript из файла cookie.
и т. д., т. д. и т. д.
Дело в том, что каждый раз, когда они обновляют свою атаку, у вас есть готовое решение, и вы заставляете их обновляться снова, в какой-то момент они, надеюсь, просто сдадутся и будут искать более легкую цель.