Спам атака на сайт на базе livestreet

Всем привет!

Очень нужна помощь сообщества. Практически на регулярной основе происходит спам атака на сайт на базе livestreet. Как бороться — не знаю, могу только после «драки» помахать руками и поудалять посты. Увеличение времени постинга между постами, удаление пользователей ни к чему хорошему не приводит.

Спам — пользователи продолжают безнаказанно лить сотнями лить посты. Маленькая тонкость — в логах post запросов нет.

Кто сталкивался и ка с этим бороться?

UPD:
  • Спам идет сразу с нескольких ip адресов, при бане одного ip(deny from xx.xx.xx.xx) тут же идет авторизация из под другого и продолжение атаки.
  • Время между топиками($config['acl']['create']['topic']['limit_time']) стоит нормальное, но спамят из под нескольких пользователей и в «личные» блоги, поэтому — не спасает
  • В связи с тем, что «поймал» момент непосредственного спама пока добавил правило:
    Redirect seeother /topic/add http://ru.wikipedia.org/wiki/%D1%EF%E0%EC
    , но безусловно это не выход. Просто проще заблокировать на время, чем потом удалять сотни топиков.
  • За время атаки было создано 1948 топиков

126 комментариев

avatar
У себя на нескольких сайтах наблюдаю тоже самое (проблема, на сколько помню, поднималась уже, но решения не нашли), у себя просто понижаю рейтинг спамерам чтоб постить не могли, да подчищаю регулярно посты — немного сдерживает, но не отстают, как понимаю постят программой, а не ручками.
avatar
пока купил плагин «модерация топиков», но пока движек на 1.0 не переведу — воспользоваться не могу
avatar
Только когда вы сможете теоретически представить некие правила для блокировки спамеров — тогда их можно будет реализовать программно.
В конфиге есть мин. рейтинг, интервалы между публикациями.

Можно, например, сделать простой плагин чтобы вырезались все ссылки с новых топиков у пользователей, дата регистрации которых меньше х дней и рейтинг ниже у.
avatar
да, плагин был бы замечательный, или создавать писать топик до достижения определенного рейтинга, чтобы пользователь сначала набирал его сначала на комментах, а уже потом «дорастал» до полноценного топика.
avatar
я почему то думал что это делается в конфиге… сейчас сам столкнулся с такой проблемой. там нет такой настройки… именно где настроить порог рейтинга на создание топиков
avatar
да вы правы в 051 нет такой настройки :) я сам в шоке…

кстати мой сайт на ls тож сегодня атакавали 100 спам топиками
avatar
Есть! В настройках доступа есть ограничение на создание ВСЕХ топиков по рейтингу.
avatar
где?? у меня 0.5.1 я не нашёл у себя, может плохо искал конечно
avatar
Оу, вы про 0.5… Прошу прощения за дезинформацию… Такая опция есть в 1.x
avatar
Заголовок вводит в заблуждение…
avatar
спасибо, подправил
avatar
avatar
круто! спасибо, до этого был только под 1.0, но сайт еще на старом движке, спасибо за помощь и плагин :)
avatar
Я писал об ошибке для версии 0.5.1, но вы так ине исправили
avatar
в одно время собирал с блеклистов различных айпи-адреса и фигачил всё в ipset. Достаточно успешно помогало.
avatar
Обратите внимание на плагин MagicRule.
avatar
комментарий был удален
avatar
У меня было что то подобное, пока не решил проблему с закрытием этой уязвимости но думаю нужно думать о вставки captcha при добавлении топиков и блогов.
За время атаки было создано 1948 топиков
А с этим разобрался очень просто у меня 2 пользователя за неделю добавили около 800 топиков, удалив пользователей через DB (базу данных) при этом почистились и топики и другие данные связанные с этими пользователями.
Но помните чистка всех связанных данных произойдёт если у Вас тип таблицы InnoDB
avatar
нужно думать о вставки captcha при добавлении топиков и блогов.
Кстати, интересная мысль…
avatar
Да, мне она кажется в этой ситуации самой правильной, так как ограничения топиков по времени, или другие изменения в логике добавления постов так же ущемляют права пользователей сайта а это будет влиять и на посещаемость и на развитие проекта в целом.
avatar
Да, капча это хорошо. Может на выходных сделаю плагин, если время позволит.
avatar
Собственно, я смотрю вы тоже плагины делаете — так, что если есть желание — сделайте вы :)
avatar
Ок, уже сделал..:) www.devls.ru/blog/dev_my_plugins/2.html
avatar
А… эээ… где сам плагин? :)
avatar
Там одна ошибка возникла, при редактировании тоже выводится capcha, в принципе не критично но думаю нужно подправить..:)
avatar
Я бы сделал капчу при редактировании настраеваемой в конфиге.
avatar
Спасибо Вам. Хоть это и подло по отношению к юзверям, но лучше так, чем закрытая регистрация.
avatar
В чём подлость..?
avatar
Заставлять вводить каждый раз каптчу при создании топика? Это как авторизация на хабре с каптчей… Но тут она хотя бы читабельна.
Юзерам должно быть максимально удобно, на мой взгляд… Но это лучше, чем ничего!
avatar
Я пошёл по меньшей из проблем, вчера пробовал переделать что бы работало только при добавлении топика, пришлось вставлять много костылей и решил отказаться от этой идеи. Решил оставить пока так, но в дальнейшем возможно что нибудь придумаю.
Добавил топик для обсуждения livestreet.ru/blog/15415.html
avatar
А если вместо капчи сделать фигурки (ромб, куб, квадрат) и вопрос типа «выберите квадрат», а под ними радиокнопу и при публикации нужно поставить чек на нужной фигурке.
avatar
Капчу можно будет в дальнейшем изменить, буду думать как и на какую (вариантов много). Но пока нужно протестировать как будет плагин себя показывать и будет ли защита от спама.
avatar
Но помните чистка всех связанных данных произойдёт если у Вас тип таблицы InnoDB
… И эти связи есть. Если с БД был импорт/экспорт то скорее всего связи утеряны и этот трюк не сработает.
avatar
Да, на это тоже нужно обратить внимание, но в основном ключи всё равно остаются при экспорте из DB.
avatar
В свое время тоже было на двух сайтах.
Делал:
1. Юзера в бан
2. Топики в «топку»
3. Персональные блоки отключить.
Больше попыток не было. Пока…
avatar
У меня огромный вопрос. Была хакерская атака.
Удалила несколько сотен топиков от нескольких юзеров через админ-панель.
А тэги ненужные остались! Как удалить тэги пустые? Посоветуйте…
avatar
Наверное только через БД.
Попробуйте такой запрос.
SELECT topic_tag_id, ls_topic_tag.topic_id, topic_tag_text FROM prefix_topic_tag LEFT JOIN prefix_topic ON (prefix_topic.topic_id=prefix_topic_tag.topic_id) WHERE prefix_topic.topic_id IS NULL

По идеи должен выдать список тегов отсутствующих в топиках.
avatar
Кстати, а кэш почистили после удаления?!
avatar
Оказывается, проблема действительно в кэше была. Тэги ушли. Поняла не сразу))
avatar
Плагин «Extended Registration»» с включенным произвольным вопросом установлен?
avatar
Судя по моим логам — регался реальный человек… А спамил уже бот. Так что это не поможет.
avatar
Именно.
avatar
Я пока закрыла регистрацию. Про плагины не могу сказать)
вот с тэгами вопрос открыт. Если удалять каждый топик, то проблем нет:
удаляешь топик — удаляются тэги. А если банишь пользователя и удаляешь его топики,
то пустые тэги висят и настроение портят)
avatar
Сегодня ночью началось тоже самое… Среагировал быстро — закрыл регистрацию и восстановил БД за вчерашнее утро.
Будем искать решение.
avatar
У меня сегодня ночью тоже была атака. У меня на сайте стоит ограничение по рейтингу для возможности публикации, так они регистрировались с положительным рейтингом, скажите, как такое возможно, или они вручную своим ботам потом подняли рейтинг?
Спас положение только плагин модерации топиков от Germis . Он промодерировал более 100 топиков, которые я потом удалил. Ладно хоть никто их так и не увидел.

Я заметил что и на этом сайте в пятницу бушевали спамеры
avatar
Черти что твориться, а разработчики новый каталог пилят, уж простите…
avatar
Я добавил такое правило в плагин Magic Rule:
'create_topic' => array(
		'msg' => 'Вы еще не достаточно окрепли! Должен пройти хотя бы один день после регистрации и Вы должны написать хотя бы один комментарий.',
		'groups' => array(
			/**
			 * Создавать топики могут юзеры старше 1 дня после регистрации, рейтинг больше 1, написал хотя бы 1 коммент,
			 * суммарный рейтинг топиков за последние 14 дней больше -1
			 */
			array(
				'registration_time' => 60*60*24*1,
				'rating' => -1,
				'count_comment' => 1,
				'rating_sum_topic' => array(-5,60*60*24*7),
			),
		),
	),

И теперь меня очень интересует правило, которое позволит создавать только один топик за определенный промежуток времени. Есть такое?
avatar
Что-то Я тупанул — в конфигах ведь есть такое.
avatar
Тоже самое. Но у меня проблема с Magic Rule.
avatar
Очень очень много спама, буквально сотнями постов.
avatar
Судя по всему, атака произошла только на сайты под управлением Livestreet, значит злоумышленники где-то взяли базу всех сайтов на LS…
А где это можно сделать?
— собрать все УРЛы с этого сайта
— стырить базу данных разработчиков (так как по умолчанию движок отправляет аналитику разработчикам).
Никого не хочу обвинить, просто хотелось бы намекнуть на вопрос безопасности. Не было ли взлома базы сайтов с LS?
avatar
Верно… Я отправляю статистику сайтов разработчикам. По обоим сайтам. И оба атаковали сегодня ночью…
Но это уже не важно, где взяли базу и т.п. Гораздо важнее эффективно защититься от этого.
avatar
На Wordpress сделат такую защиту от спама: prodengiblog.ru/archives/2692
Смысл в дополнительном скрытом поле, которое реальный человек не видит, и потому не заполняет.
Следовательно, если поле заполнено ботом, то публикация не проходит.
Добавить бы такое поле с условием в публикацию топика и коммента, беды бы не знали.
Причем, замануха заключается в том, что обманное поле имеет имя стандартной переменной, а реальное поле ввода меняется на любое другое.
Смысл спама пропадает, если к каждому сайту будут подбирать свое имя поля для публикации, как-то так.
Жаль, что я не разраб…
avatar
лейтенант Коломбо намекает, что сайты могли найти через гугл по словам «Powered by LiveStreet CMS»
avatar
Думая самое эффективное, это поиск через google по некоторых стандартным запросах, встроенные в движок.
Через аналитику это нереально, так как нужно взломать ga.
avatar
Логично, спасибо, Кэп…
Я, возможно зря намекал на безопасность, но береженного Бог бережет, убедиться в безопасности базы не мешало бы ;)
avatar
… Значит, как убрать пустые тэги, никто не знает…
Насчет восстановить базы данных (сделать откат) я поняла.
По возможности будет сделано.
avatar
Вот ещё интересное решение
avatar
Докладываю: Сегодня в 7:36 было зарегистрировано 6 юзеров, IP регистрации все разные (Лондон, Канары, Москва), маску в общем не подберёшь. После чего идёт авторизация с IP:109.195.3.186 (Липецк), и публикация 88 топиков на моём сайте. Благо стоит плагин премодерация топиков, видимо поэтому автор абосрался не стал постить +100500 топиков.
Мои действия:
1. Бан IP:109.195.3.186
2. Изменил интервал публикации топиков, поставил 10 минут, всё равно чаще нормальный человек постить не будет.

Капчу вводить не хочу, т.к. есть к примеру антигейт, который с этим справится на ура. Вопросы при регистрации тоже не помогут. Если спам будет продолжатся, буду думать над усовершенстованием защиты. И сразу отпишусь.
avatar
Судя по отзывам выше, на сайты с ливстритом началась травля. На хабрахабре, в песочнице, 13 мая появился топик-копия одной известной публикации о ливстрите годовой давности который гласит «какой лс весь платный» с небольшими правками. К чему бы это?
avatar
Вы банили через админку наверное, а как можно внести IP в бан, если админки нет?
avatar
В htaccess написать deny from xx.xx.xx.xx
avatar
Спасибо, попробую
avatar
Меня тоже атаковали спамом топиков. Подскажите, есть чёткое понятное решение проблемы?
avatar
Аналогично со вчерашнего вечера сыпется спам. Поставил extended registration, не помогло.
Временно поставил порог кармы для публикации.
Вопрос остается открытым...

PS еще долбили постоянно запросами в ссылку редактирования блока, пришлось блочить айпи через ipTables
avatar
А с активностью ни у кого проблем не появилось?
У меня после сегодняшней атаки «вся» активность стала заканчиваться на голосовании за топик, если перейти на вкладку «я слежу» и в настройке событий отметить «голосование за топик» выводит «лента активности пуста»…
avatar
Хм… Я было решил, что это чисто мой глюк. Всё так же.
avatar
Да и профиль если к человеку, голосовавшему за удаленный топик, его лента активности тоже пуста.
avatar
Откатил базу до вчерашней — все нормуль, но не выход же…
avatar
Нужен своего рода таймер при регистрации, чтобы регистрация менее чем к примеру за 10-15 секунд не происходила, поскольку боты именно в пределах этого времени уже регистрируются, а пользователю для регистрации по любому нужно больше времени.
avatar
такого рода плагины есть для форумов, может кто сможет для LS написать. Накануне тоже заспамили, в раздел премодерации попало более 100 топиков.
avatar
Так регистрироваться может и реальный человек, а спамить — бот.
avatar
Это не поможет — регаются реальные люди. Спамят уже боты.
avatar
Вобщем единственно решение, это написать хак или плагин, которые реализует функционал в 051, который сделает ограничение на создании топиков по рейтингу, как в версии 10*
avatar
Да это тоже не решение, если честно… Особенно для молодых сайтов… У меня, например, разрешено писать топики и при рейтинге в -3, потому что проект такой, что могут заминусовать до смерти…
avatar
нет это тех. решение на самом деле :) а пот у меня например -3 человек уже не может писать даже комментария, так что это наиболее менее вариант, а все остальное социологический строй.

попрбую внедрить часть кода с лс 103 в 051 для решение проблемы.
avatar
У меня на сайте на LS 0.5.1 со вчерашнего дня висят два спамера. Пытаются топики безуспешно добавить топики.
avatar
Да не парьтесь Вы. Сделайте как я, неудобные условия для постинга (интрервал 10-15 мин), и автор бота посмотрит, что с таким интервалом, он опубликует 6 спамных топиков за час, не станет страдать хернёй.
avatar
Поправлю, неудобные условия для скоростного-спамного постинга, обычные юзеры не должны пострадать!
avatar
у меня они вообще в итоге лишаются возможности публикаций, но все равно долбят по сайту, последите за своей статистикой
avatar
То, что кто-то долбит автоматом по регистрации топика мне как то паралельно. Это не DDos, Новые топики не появляются и ладно!
avatar
Хоть и не DDOS, а мою впску такими запросами загружали до 40%, неприятно
avatar
Блин, мне на один из сайтов оказывается с 5 мая около 7000 постов накидали, только сейчас заметил))
avatar
Проблемы как таковой в этом нет. Обычно постят 3-5 юзеров. Просто удаляешь юзеров с админки, и удаляется автоматически всё. В вашем случае 7000 топиков. Ну и ставьте премодерацию топиков!
Кстати посмотрите во что превратили сайт на LS seominds.ru/
avatar
На мои сайты регаются пользователи с IP 109.195.3.186
avatar
Это один и тот-же поганец: livestreet.ru/blog/sollutions/15399.html#comment248694
avatar
Да, обратил внимание. Добавил его IP в бан.
avatar
Я думаю, что это кто-то из обиженных постояльцев данного ресурса, обиженный на пофигительское отношение со стороны администрации сайта (я про каталог и отсутствие плагинов больше месяца). Зная тонкости LS, насрал на всех сайтах системы LS.
avatar
Это чья-то прокся…
avatar
Да, тот же IP.
avatar
У меня упырь с таким IP 193.106.31.11 тоже задолбал один сайт на LS 0.5.1
avatar
Вдруг кому пригодится, если знаем с какого айпи идут постоянные запросы, то в консоли блокируем его:
iptables -A INPUT -s IPADDRESS -j DROP
где IPADDRESS заменяем на айпишник негодяя

Для удобного мониторинга логов apache/nginx могу посоветовать тулзу goaccess
avatar
Можно вопрос: А что такое консоль? И чем deny from xx.xx.xx.xx хуже?
avatar
Консоль — то, что используется для ssh доступа на сервер. На всякий случай уточню, команда для линукс серверов.
В моем случае deny в конфиге nginx-а проблему не решал, не знаю почему. Запросы продолжали сыпаться.
Если знаете как протестить блокировку айпи в конфиге nginx — поделитесь.
avatar
Вроде тут пишет всё что нужно.
avatar
все делал по мануалам и в разных вариациях, эффекта не последовало…
avatar
У вас в конфигах nginx есть кусок кода отвечающий за сайт. Там еще скорее всего есть указание папок, ну или просто в конфиги сайта добавьте:
location / {
allow all;
deny xx.xx.xx.xx;
}
avatar
И такой вариант пробовал, и добавлял во все имеющиеся локейшены. Если повторится ситуация — не буду торопиться и таки заставлю deny работать :)
avatar
Для этого по идеи должно хватать апача со включенным mod_rewrite…
avatar
использую nginx+php-fpm
Не спорю, скорее всего проблема было в прямоте рук, так что жду следующего «внимания» со стороны спамеров)
avatar
Долго ждать не пришлось, опять начали стучать в урл /blog/edit
Попробовал проставить deny — до try_files, после, в отдельный локейшн /, в основной локейшн .php, результатов никаких.
Снова заюзал iptables.

Пойду настрою cloudflare :)
avatar
у меня стучались в /anything/edit по 1000 запросов
заблочил через

location ~ ^/edit/?$ {
   return 404;
}
location ~ ^/(?!ajax)(.+)/edit/?$ {
   return 404;
}

avatar
А с таким конфигом админ сможет редактировать блоги и топики?

И как нагрузка, сильно уменьшилась?
Я просто не уверен, какую 404ю показывает nginx в таком случае, LS-овскую?
avatar
может
topic/edit/1149/
там id вставляется еще
avatar
нагрузка уменьшилась вполовину точно
avatar
nginx отдает свою дефолтовую 404.
До апача не доходит.
Без этого на каждый запрос форкался апач, и проц съедался очень быстро.
Так LA вернулось в норму
avatar
Отлично, спасибо! Обязательно попробую
avatar
Но вообще на уровне фаерволла блокировать — более правильно.
avatar
Тем, что deny from xx.xx.xx.xx блокирует только доступ по 80 порту к сайту, а вариант выше вообще блокирует какой либо доступ в серверу на уровне фаерволла. Это надежнее в любом случае, но подойдет для VPS и т.п.
avatar
sterlik.net/index/newall/ за день 300 постов, беда :(
avatar
Всем доброго времени!
Таже история,25 новых спам-пользователей,1400 топиков.IP 109.195.3.186 забанил, но беда в том, что топики могу вычищать только в ручную, удаление новоявленых «пользователей» невозможно почему то, откат до 21.05 не помог, по тому что спам поыпался с 19.05
Не подскажите как удалить этих «пользователей»?
avatar
Через базу удалите.
avatar
Спасибо большое daglex, только это и помогло!
avatar
да, но не злоупотребляйте этим или будьте очень внимательны.
avatar
Мой сайт спамеры тоже не обошли стороной — за ночь 19 марта наспамили около сотни топиков.

В логах метрики и аналитики нет ни одного захода на страницу регистрации, тем более добавления постов. А в логах на сервере есть. Значит, топики постились напрямик по УРЛ для отправки постов. Наводит на мысль, что бот — это не управляемый браузер, не понимает скриптов, стилей. Это скорее хорошо, т.к. он еще достаточно «глуп» и заточен исключительно под LS. Никто не пробовал менять название поля заголовка топика или добавлять скрытые поля на форму? У себя проверить не могу, пока что, пропал негодяй куда-то…
avatar
Тоже была такая проблема. Не сильно много спамили. Но было.
Перевел DNS на cloudflare (бесплатная услуга) и количество спама уменьшилось в разы.
Они обрезают спамеров исходя из своей базы. Плюс свои правила можно настроить.
И не надо никакие модули пилить и регистрации отключать. Рекомендую.
avatar
cloudflare
Примерно так это выглядит в админке.
avatar
Подключил себе, попробуем.

А не поделитесь статистикой, как повлияло подключение клаудфлары на скорость загрузки сайта? Если используете их cdn и минимизацию.
avatar
Если использовать их CDN то скорость ощутимо замедляется. Специально не трейсил — но предполагаю что далеко в Европе, а то и еще дальше. Поскольку использование CDN опциональная услуга — на данный момент отключил.
avatar
Учитывая мою впску в лондоне — скорость осталась примерно такой же по замерам, а субъективно по восприятию — выросла :)
avatar
А как же аналитика? Меня пока это и отпугивает… А еще поисковики…
avatar
Аналитика не пострадает если не задействовать их CDN.
Но даже при использовании CDN помимо ip самого cloudflare передаются и ip клиентов.
Предполагаю что можно настроить отдачу лога в виде понятном для анализаторов.
avatar
Что вы имеете ввиду? какие проблемы могу возникнуть с аналитикой и поисковиками?
avatar
Пятые сутки идет вялотекущая атака с 188.190.120.122.
Бот пытается добавить пост http://****.ru/topic/add/
Запрос на добавление поста идет каждые пять секунд.
Включил форбидден по ip.

188.190.120.122 - - [14/Jul/2013:12:08:48 +0400] "POST /login HTTP/1.1" 403 564 "http://r4in.ru/topic/add/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"
188.190.120.122 - - [14/Jul/2013:12:08:55 +0400] "POST /login HTTP/1.1" 403 564 "http://r4in.ru/topic/add/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"
188.190.120.122 - - [14/Jul/2013:12:09:01 +0400] "POST /login HTTP/1.1" 403 564 "http://r4in.ru/topic/add/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"
188.190.120.122 - - [14/Jul/2013:12:09:06 +0400] "POST /login HTTP/1.1" 403 564 "http://r4in.ru/topic/add/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"
188.190.120.122 - - [14/Jul/2013:12:09:13 +0400] "POST /login HTTP/1.1" 403 564 "http://r4in.ru/topic/add/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"
188.190.120.122 - - [14/Jul/2013:12:09:20 +0400] "POST /login HTTP/1.1" 403 564 "http://r4in.ru/topic/add/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"
188.190.120.122 - - [14/Jul/2013:12:09:25 +0400] "POST /login HTTP/1.1" 403 564 "http://r4in.ru/topic/add/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"
avatar
Сделал редирект на спамхаус.
Часов через пять все прекратилось.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.