В списке их гораздо больше, есть какие-то идеи?
Сегодня я увидел это в логах одного из наших клиентов, так что это больше, чем совпадение.
ИСПРАВЛЕНИЕ: нет, я думаю, это совпадение. Поиск по запросу ymwears .cn показывает больше жалоб на спам по рефералам, например, эти (более чем годовалые): Relevanssi shows weird search queries on my page | WordPress.org и Block specific referrer or agent to enter url | WordPress.org
В прошлом месяце у меня был клиент, который жаловался на это. Я заблокировал несколько IP-адресов и рассматривал возможность настройки fail2ban для блокировки IP-адресов, которые искали некоторые из этих URL, но так и не предпринял никаких действий. Я изучал возможность блокировки по географическому региону, но оказалось, что для этого нужна база данных стоимостью 20 долларов в месяц.
Спам в реферерах — довольно серьёзная проблема, с которой даже крупные игроки (например, Google Analytics) не справляются на 100%. На данный момент я могу предложить только ручное удаление таких записей.
Поскольку эти сайты, по-видимому, — хотя бы частично — одинаковы на нескольких независимых сайтах Discourse (судя по нашим скриншотам, список практически идентичен), возможно, стоит рассмотреть динамический чёрный список? @codinghorror, у вас есть какие-то предложения?
Мы наблюдали, решали и смягчали эту проблему в крупных масштабах на протяжении многих лет и пришли к выводу, что более надежный способ (за последние несколько лет) блокировки зловредных ботов — это блокировка по строке user agent (UA) (иногда в сочетании с данными GeoIP).
За эти годы мы заблокировали сотни миллионов запросов от китайских ботов и редко находили, что блокировка по IP-адресам работает со временем так же эффективно, как блокировка клиентов по строкам UA.
Вот фрагмент кода, который мы используем на одном из наших сайтов в качестве примера:
$user_agents = explode('|',$string_of_bad_user_agents,-1);
$hide_content_useragent = $_SERVER['HTTP_USER_AGENT'];
$IS_A_BAD_BOT = FALSE;
foreach($user_agents as $hcag) {
trim($hcag);
if (preg_match("/$hcag/i", "$hide_content_useragent")) {
$IS_A_BAD_BOT = TRUE;
break;
}
}
Почти все (но не все) зловредные боты используют строки UA, которые можно относительно легко идентифицировать и заблокировать (в нынешнюю эпоху, не уверен насчет будущего, так как технологии развиваются); поэтому мы несколько лет назад отказались от метода блокировки зловредных ботов по IP-адресам. Причина отказа от блокировки по IP заключается в том, что многие страны, такие как Китай, Россия, Северная Корея и многие другие, теперь размещают свои бот-фермы на серверах в других странах. IP-адреса не являются хорошим индикатором реального происхождения или намерений. Кроме того, при блокировке огромных диапазонов IP-адресов могут быть заблокированы легитимные адреса, что лишает доступа законных пользователей.
Например, Китай размещает огромные бот-фермы в Бразилии и других странах, географически более близких к США, чтобы скрыть свое происхождение и получать данные быстрее (за счет сокращения интернет-пути).
Иногда данные WHOIS указывают на физический адрес в Китае, Северной Корее или России (в качестве примеров), но иногда они указывают на местные адреса в других странах. Мы наблюдали множество зловредных китайских ботов, зарегистрированных на бразильские компании (за последние несколько лет), где мы могли видеть (и подтверждать), что строки UA соответствовали зловредным ботам из Китая. Кроме того, при выполнении поиска в Google по этим строкам UA мы видим, что другие также идентифицировали многие из тех же строк UA как китайские (например).
В заключение, хотя многие люди сразу прибегают к блокировке IP-адресов для борьбы с деятельностью зловредных ботов, большинство продвинутых бот-ферм очень эффективно запускают своих ботов из других стран. Легко настроить VPS в большинстве стран, и, конечно, чем ближе бот к целевой стране, тем больше данных он может собирать. VPS могут появляться и исчезать за считанные минуты, а программное обеспечение для ботов можно развернуть очень быстро практически в любом центре обработки данных VPS по всему миру.
За последние несколько лет блокировка по строке UA оказалась более надежным методом (иногда в сочетании с данными GeoIP, иногда нет); но, конечно, спамеры, владельцы бот-сетей и их агенты также начинают маскировать строки UA, как они это делают со своими IP-адресами (уже много лет).
Надеюсь, это поможет.
Удачи и приятной охоты на ботов!
Да, я полностью согласен, что блокировка по IP неэффективна.
Блокировка по user agent обычно работает неплохо, за исключением случаев, когда спамеры постоянно его меняют.
Именно поэтому я подумал о том, чтобы просто занести в чёрный список конкретный URL, по которому происходит спам рефереров.
Это просто «ощущается правильнее», потому что мы не блокируем что-то на основе предположения (например, «этот user agent присылает плохой реферер, поэтому мы ему не доверяем»), а блокируем именно то, что хотим заблокировать («мы видим, что этот сайт используется для спама рефереров на нескольких сайтах Discourse, давайте не будем добавлять его в нашу базу данных»). По крайней мере, так сложнее обойти защиту.
Хорошая мысль.
Не существует универсального решения для защиты от мошеннических и вредоносных ботов; каждый сайт должен сам определить, какие меры контроля работают для него лучше всего.
Похожая ситуация…
Сайты, которые полагаются в основном на чёрные списки и базы данных спама или вредоносных ботов, также могут сталкиваться с проблемами. Допустим, кто-то не любит сайт www.our-arch-rival.com, потому что это конкурент (или просто разозлил или обидел нас). Тогда некоторые люди могут внести этот сайт в чёрный список или базу данных, и в результате другие сайты начнут фильтровать легитимный ресурс из-за такого рода «негативных последствий» метода использования чёрных списков.
Конечно, сторонники чёрных списков скажут: «Вы можете обратиться на сайты, управляющие чёрными списками, подать отчёт и запросить удаление». Однако для многих занятых, давно работающих сайтов это может стать настоящей потерей времени.
В целом важно проанализировать проблему и разработать стратегию смягчения последствий в зависимости от конкретной ситуации, поскольку каждый «противник» уникален. Это старое правило «Знай своего врага» из книги Сунь-цзы «Искусство войны». Каждая ситуация в реальном мире немного отличается, и, к сожалению, системным администраторам необходимы навыки анализа для создания оптимальных стратегий защиты от вредоносной или нежелательной кибердеятельности.
Это также ещё одна причина запускать Discourse за обратным прокси-сервером, поскольку именно прокси-сервер — отличное место для анализа, классификации и контроля вредоносной активности до того, как этот трафик достигнет приложения Discourse.
В 2020 году борьба с мошенническими ботами и другой вредоносной активностью в киберпространстве может стать работой на полную ставку. Как только администраторы придумают эффективную стратегию обнаружения и смягчения последствий, спамеры и сборщики данных адаптируются и найдут способы обойти её. Я обычно советую людям выделять серверам больше ресурсов, чтобы обеспечить достаточный запас мощности, поскольку подобные проблемы в киберпространстве со временем будут только усугубляться, а не улучшаться.
Готовы, игрок один!
Это ещё одна причина держаться подальше от чёрных списков IP-адресов: спамеры будут знать, что вы принимаете меры.
Я думаю, что Cloudflare может блокировать большинство спамеров, но не уверен, что указать в правилах для User-Agent браузера.
@neounix, что вы имеете в виду под «UA-строками»? И как их можно использовать в правилах брандмауэра Cloudflare?
Но это ведь даже не спам от рефералов, верно? Просто кто-то ищет этот URL, так что на самом деле ничего не происходит, да? Я что, полностью неправильно понимаю этот отчёт? Он ведь доступен только администраторам, правильно?
Думаю, вы правы, @pfaffman: этот отчёт, похоже, касается только поисков, выполненных на форуме. В нём также указан CTR, что было бы бессмысленно, если бы это был отчёт по рефералам.
Нет, технически это не спам по реферерам, но я не уверен, есть ли термин для именно такого вида злоупотребления. Думаю, это очень близко к спаму по реферерам, но только для отчёта по поисковым запросам?
Спам по реферерам никогда ничего не делает, его цель — просто появиться в отчётах.
Вот вам информация…
В протоколе HTTP строка User-Agent часто используется для содержательной согласованности, когда исходный сервер выбирает подходящее содержимое или параметры работы для ответа. Например, строка User-Agent может использоваться веб-сервером для выбора вариантов в зависимости от известных возможностей конкретной версии клиентского программного обеспечения. Концепция адаптации содержимого встроена в стандарт HTTP в RFC 1945 «в целях адаптации ответов для избежания ограничений, связанных с конкретными пользовательскими агентами».
Строка User-Agent является одним из критериев, по которым веб-краулеры могут быть исключены из доступа к определённым частям веб-сайта с использованием стандарта исключения роботов (файл robots.txt).
Как и многие другие заголовки HTTP-запросов, информация в строке «User-Agent» вносит вклад в данные, которые клиент отправляет серверу, поскольку эта строка может значительно различаться от пользователя к пользователю.[5]
Ссылка:
@Yassine_Yousfi. В интернете существует множество источников о строках пользовательского агента (UA) в HTTP и о том, как их использовать различными способами, в том числе в качестве индикатора при обнаружении ботов и другой вредоносной кибердеятельности.
Удачной охоты на ботов!
Примечания:
- Вы можете увидеть представление Discourse пользовательских агентов ботов здесь (некоторые строки UA обрезаны):
https://discourse.your-great-domain.com/admin/reports/web_crawlers
-
Ни один алгоритм обнаружения не может с 100% точностью выявлять всех ботов.
-
Вы также можете получить строки UA из файлов журналов вашего веб-сервера и другими способами.
См. также:

