В последнюю неделю форум был атакован несколькими иностранными пользователями, которые писали огромное количество (до 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.