Спам-бот на Друпал-сайте

Главные вкладки

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 10 января 2012 в 14:27

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

Схема одна и та же — в районе 11 утра или полудня регистрируется бот, который оставляет 30-40 одинаковых комментариев в последних топиках трекера. Если бот не забанен, спустя часа два он повторяет атаку. В принципе, у меня на сайте действует хороший инструмент, который я когда-то рекомендовал для drupal.ru — система фолов, которая даёт всем пользователям возможность отмечать флагом «фол» комментарий, нарушающий правила. Как только количество отметок флагов достигнет определённой отметки (зависит от посещаемости сайта), комментарий снимается с публикации. Такая защита вполне работает, но есть один минус — если бот оставил 60 сообщений, надо, чтобы, как минимум, 4 (если порог для действия флага составляет 4 отметки им) пользователя увидели эти 60 спамерских сообщений и пометили их флагов, что, согласитесь, не всегда реально. Оперативно делать это не получится.

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

Довольно хорошим инструментом являются правила для блокировки регистрации пользователей с определённых IP, с определёнными именами или адресами почты. Для того, чтобы успешно применять этот метод, необходимо уже иметь некоторую статистику атак и здраво мыслить. Например, хотя многие атаки осуществляются ботам с адресами на mail.ru или gmail.com, понятно, что блокировать возможность указывать такие адреса нельзя, чтобы не лишиться большей части потенциальных пользователей. Зато совершенно спокойно можно запретить регистрацию с почтовыми адресами в доменах dns123.org и qq.com — лично ко мне оттуда регистрировались только спамеры. Если вы умеете и имеете возможность проверить однозначно спамерский аккаунт на предмет того, каким ip он пользовался и есть ли ещё пользователи с таким же ip, вы можете отсечь заодно и ботов, которые идут к вам с определённого ip или из целой подсети. Это очень удобно, хотя, опять же, действовать надо аккуратно, чтобы не запретить доступ к сайту нормальным пользователям.

Наконец, вернёмся к атакам, с которым моему сайту пришлось столкнуться в последние дни. Каждый раз, когда происходила атака, я обнаруживал в статистике посещений переходы с поисковика в количестве чуть превышающем число спам-комментариев по ключевой фразе: «войдите или зарегистрируйтесь чтобы получить возможность отправлять комментарии site:http://example.net/» Вместо example.net, естественно, был адрес моего сайта. Вывод простой — спамеры просто находят drupal-сайты по ключевой фразе из перевода, и потом «обстукивают» его ноды, где они могли бы оставить свои комментарии после регистрации. Чтобы помешать это делать автоматическим спамерам, я бы рекомендовал изменить фразу в переводе на то, что вам больше по душе, чтобы смысл сохранился, но при этом чтобы бот через поисковик её уже не находил.

PS Я не специалист по безопасности, но думаю, что новичкам мои советы могут пригодиться.

Комментарии

Аватар пользователя Valeratal Valeratal 10 января 2012 в 14:56

Такая же проблема. Причем камменты даже осмысленные. Началось на новогодних. Стоит мат-капча. Но походу это люди.

Подскажите, можно ли настроить рулез, чтобы снимали каммент содержащий гиперссылку. Чтобы затем как то проверить и опубликовать (если это не спам)

Пытался кстати найти фильтр во вьюхах, чтобы фильтровать такие камменты (для удобного просмотра их разом) - В смысле которые содержать http, но не нашел увы.

Аватар пользователя orb orb 10 января 2012 в 15:01

"Valeratal" wrote:
Подскажите, можно ли настроить рулез

модуль пиши Smile
1. создай группу "cool user" в которую помещай классных чуваков
2. при публикации комента если найден УРЛ, комент снимается с публикации
3. Вьюха которая показывает не опубликованный коменты

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 10 января 2012 в 15:08

"Valeratal" wrote:

Подскажите, можно ли настроить рулез, чтобы снимали каммент содержащий гиперссылку. Чтобы затем как то проверить и опубликовать (если это не спам)


Валера, жди, на неделе выложу своё решение для модерации

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 10 января 2012 в 16:11

"RxB" wrote:
Признаком друпал-сайта может быть и inurl:node

Может. БОлее того — это более надёжный способ. Просто, как я понимаю, боты пользуются запросом, указанным в моём посте, чтобы найти конкретные страницы, где можно оставить комментарии.
"Valeratal" wrote:
Подскажите, можно ли настроить рулез, чтобы снимали каммент содержащий гиперссылку. Чтобы затем как то проверить и опубликовать (если это не спам)

У меня стоит патченный elf, который пропускает все ссылки наружу через внутренний запрос вида example.net/goto/ + ссылки все закрыты noindex и rel=nofollow, но ссылки всё равно постят.
"RxB" wrote:
Валера, жди, на неделе выложу своё решение для модерации

Для всех? Было бы интересно посмотреть.

Аватар пользователя Айдар Айдар 10 января 2012 в 16:39

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
у меня успешно применяется рекапча для формы регистрации

Ну, рекапчу вроде как уже давно поломали!
Вопрос-ответ - имхо, всегда был лучшей капчей. На моих сайтах, по меньшей мере, спам-атак в последние дни не было.

Аватар пользователя chocho chocho 10 января 2012 в 18:14

Имхо самая надежная защита-использовать продуманные вопросы-ответы.

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

Остается проблема ручного спама, но его количество в сотни раз меньше чем автоматического.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 10 января 2012 в 18:53

"Айдар" wrote:
Ну, рекапчу вроде как уже давно поломали!
Вопрос-ответ - имхо, всегда был лучшей капчей. На моих сайтах, по меньшей мере, спам-атак в последние дни не было.
Возможно, но у меня взламывают сейчас её редко. Есть подозрение, что в случае моего сайта без людей не обходится — не всё автоматом происходит.
"chocho" wrote:
Имхо самая надежная защита-использовать продуманные вопросы-ответы.
Наверное, но рекапча меня, в принципе, устраивает.

Аватар пользователя bsyomov bsyomov 10 января 2012 в 20:00

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
У меня стоит патченный elf, который пропускает все ссылки наружу через внутренний запрос вида example.net/goto/ + ссылки все закрыты noindex и rel=nofollow, но ссылки всё равно постят.

У меня пытаются постить, не смотря на то, что ссылки тупо вырезаются из комментов, и комменты премодерируются. Smile Это боты, им пофиг.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 11 января 2012 в 3:51

"bsyomov" wrote:
У меня пытаются постить, не смотря на то, что ссылки тупо вырезаются из комментов, и комменты премодерируются. Smile Это боты, им пофиг.

Ага. Есть расхожее мнение, что если ссылки закрыты, они, типа, не ломятся, но это миф Smile

Аватар пользователя bsyomov bsyomov 11 января 2012 в 5:40

"Cyber" wrote:
поменяйте разметку формы и айдишники на инпутах ;)

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

Аватар пользователя Cyber Cyber 11 января 2012 в 10:40

"bsyomov" wrote:
На самом деле, они мне не сильно-то мешают, к тому же есть идея потренероваться на них написав антиспам фильтр, так что пусть себе постят - больше постят - больше материала для размышлений... =)

тоже вариант )

Аватар пользователя Айдар Айдар 11 января 2012 в 12:17

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
но это миф :)

+1
"bsyomov" wrote:
больше постят - больше материала для размышлений...

С другой стороны, в комментах будет много неуника.

Аватар пользователя achadidi achadidi 11 января 2012 в 21:54

а я пошла другим путем: разрешены комменты для анонимов с
и осложненная кучей полей и подтверждением мыла и прочим регистрация

а можно ролями поиграть - есть материал - присвоили роль
нет материала - нет ваще никаких прав

Аватар пользователя Айдар Айдар 11 января 2012 в 22:03

"achadidi" wrote:
и осложненная кучей полей и подтверждением мыла и прочим регистрация

У меня для этого Not so Fast юзается. Правда не против спама.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 13 января 2012 в 14:41

У меня комменты только с регистрацией можно оставлять. Я вот всё думаю настроить так, чтобы а) ограничить количество комментариев, которые может создавать новый пользователь за единицу времени (скажем, десять в день в первые десять дней) + переводить в категорию advanced (у меня такая есть для проверенных пользователей, которые точно не боты и не пришлые тролли) автоматически после того, как они набрали x постов и y комментариев, но при этом их материалы были отмечены флагом abuse не более z раз.

Аватар пользователя bsyomov bsyomov 25 января 2012 в 10:46

"Айдар" wrote:
С другой стороны, в комментах будет много неуника.

Они не заапрувлены, соответственно нигде они не показаны. А база собирается. Smile

Аватар пользователя Злодзей Злодзей 25 января 2012 в 22:07

Вопросы собираются ботом в базу. И, если у него нет ответов, то ответ может заноситься человеком.

Сложность вопросов тут ни при чём, нужно, чтобы они были такие, которые нет в базе бота.
Т.е. надо периодически менять тексты вопросов.
Очень удобно, если модификации - небольшие, да ещё, чтобы, при этом, не надо было ответы менять

Аватар пользователя Злодзей Злодзей 25 января 2012 в 22:28

Вы никак не можете определить бот это или человек

Если бот что-то не может - спам-оператор поможет

А боты могут собирать человеческие обсуждения из других форумов и постить их и Вы ещё подключитесь к обсуждению

На то, что обычно говорят спам - совсем и не спам.
Это:

  • хулиганство, вандализм
  • дискредитация, компрометация, гнобление конкурентов
  • попытка расконфигурировать спамзашиту (спамфильтры и чёрные списки спаммеров)
  • введение вебмастеров в заблуждение, которые вужасе взвизгивают "спам-боты прорвались" и начинает второпях переустанавливать, переконфигурировать, сносить антиспам, а то и сайт