SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.04.2012 20:37:22

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Англоязычный спам на форуме SQLinfo и система Бревно

В последнюю неделю форум был атакован несколькими иностранными пользователями, которые писали огромное количество (до 100) спам-сообщений. Нарушитель был выявлен и забанен с помощью системы Бревно, которая установлена на SQLinfo: http://webew.ru/articles/748.webew

Задача определить кто и что делал на форуме достаточно сложная, если в качестве исходной информации брать лог apache, так как обращений происходит достаточно много и нетривиально их разделить на те, которые связаны со спам-активностью. Бревно записывает лог действий в базу данных, причем разделяет обращения на сессии (привязанные к куки) и позволяет отличать обращения GET от обращений POST. Удобной особенностью бревна является то, что в лог записывается id авторизованного пользователя, что позволяет быстро посмотреть действия данного пользователя (или узнать кто совершил заданное действие). Бревно в базовой настройке используется только для протоколирования обращений к скриптам, не записывая обращения к рисункам и вспомогательным файлам.

Итак, мы видим, что очередной спам-юзер зарегистрирован с IP 60.169.78.52. Смотрим юзеров с этим ip:

mysql> select DISTINCT(userid) from brevno_access WHERE ipnum=INET_ATON('60.169.78.52') AND userid>1;
 
+--------+
| userid |
+--------+
|   5234 |
|   5241 |
|   5242 |
|   5248 |
|   5251 |
|   5254 |
|   5255 |
|   5264 |
+--------+


select username from f_users WHERE id IN (5234,5241,5242,5248,5251,5254,5255,5264);

Empty set (0.00 sec)

Видим, что они все уже удалены (кстати, punbb не хранит ip для уже удаленных пользователей, поэтому иначе такую информацию уже не найдешь). Теперь смотрим на характер обращений последнего пользователя:
SELECT a.sessionid,a.date,p.uri,p.method,INET_NTOA(ipnum) ip,userid FROM brevno_access a JOIN brevno_pages p ON a.pageid=p.id WHERE userid=5264;

+-----------+---------------------+------------------------------------+--------+--------------+--------+
| sessionid | date                | uri                                | method | ip           | userid |
+-----------+---------------------+------------------------------------+--------+--------------+--------+
|    824723 | 2012-04-09 17:03:36 | /forum/                            | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:03:38 | /forum/profile.php?id=5264         | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:03 | /forum/                            | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:07 | /forum/                            | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:09 | /forum/                            | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:19 | /forum/search.php                  | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:22 | /forum/search.php                  | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:24 | /forum/search.php                  | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:25 | /forum/viewforum.php?id=1          | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:27 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:32 | /forum/viewforum.php?id=2          | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:36 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:37 | /forum/viewforum.php?id=3          | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:39 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:42 | /forum/viewforum.php?id=4          | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:45 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:46 | /forum/viewforum.php?id=5          | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:47 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:49 | /forum/viewforum.php?id=6          | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:50 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:04:52 | /forum/viewforum.php?id=7          | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:00 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:01 | /forum/viewtopic.php?id=679        | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:05 | /forum/viewtopic.php?pid=28623&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:12 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:18 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:20 | /forum/viewtopic.php?pid=28633&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:21 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:23 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:24 | /forum/viewtopic.php?pid=31052&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:31 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:35 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:40 | /forum/viewtopic.php?pid=31613&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:52 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:54 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:57 | /forum/viewtopic.php?pid=31773&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:05:59 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:05 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:13 | /forum/viewtopic.php?pid=31777&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:15 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:18 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:21 | /forum/viewtopic.php?pid=31778&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:23 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:26 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:31 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:38 | /forum/viewtopic.php?pid=31856&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:42 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:49 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:54 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:06:56 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:02 | /forum/post.php                    | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:06 | /forum/viewtopic.php?pid=31857&p=1 | GET    | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:08 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:08 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:09 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:09 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:13 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:13 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
|    824723 | 2012-04-09 17:07:13 | /forum/post.php                    | POST   | 60.169.78.52 |   5264 |
 


SELECT * FROM brevno_sessions WHERE id=824723\G

*************************** 1. row ***************************
       id: 824723
     uuid: 982c2146-d394-102f-9440-0040f47e1aea
     date: 2012-04-09 17:03:33
    ipnum: 1017728564
useragent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
  referer:


Вывод: brevno показывает много информации, которую удобно использовать, чтобы разобраться что произошло. Юзер забанен по IP.

Неактивен

 

#2 11.04.2012 20:40:45

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Англоязычный спам на форуме SQLinfo и система Бревно

После бана, кстати, спам-атак не было (во-всяком случае пока).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 11.04.2012 20:55:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Англоязычный спам на форуме SQLinfo и система Бревно

deadka написал:

После бана, кстати, спам-атак не было (во-всяком случае пока).

Это все был один активный человек из Китая.

Неактивен

 

#4 11.04.2012 23:16:34

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Англоязычный спам на форуме SQLinfo и система Бревно

Спасибо за "Бревно" очень полезная вещь !!!
А вообще от подобного спама, хорошо работает старая техника проверки прошедшего времени между постами и показом капчи в случае превышении лимита.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson