Paranoid911 - плагин к вордпрессу для параноиков
Таких как я.
После недавних событий, когда некие дядьки разместили на фтп моего блога дор (а я это обнаружил лишь случайно спустя некоторое время), я решил написать плагин который бы оповещал о такого (и другого) рода проникновениях быстрей. И написал.
Как оно работает?
Запускается по крону (через функции вордпресса - wp-cron, т.е. на сервере настраивать ничего не нужно, просто установить плагин) через некоторые промежутки времени и сканирует файловую систему (папку с вордпрессом со всем подпапками) и таблицы базы данных (кроме тех, что часто меняются и особой опасности нести не могут). Плагин просканировал очередную порцию, если нашел изменения - отправил вам письмо, вроде этого:

Или этого:

Настройка плагина, проще некуда:

Email куда будут приходить уведомления - адрес администратора из “Параметры\Общее”. Сразу после установки в течении первого прогона будут приходить ложные напоминания - результаты первого сканирования, при котором плагин будет находить новые записи. Потом будут приходить уведомления только об измененных или добавленных файлах или записях в базе данных.
По поводу выпуска этого плагина я дал интервью себе, в нем попытавшись ответить на некоторые вопросы которые могут заинтересовать вас.
Что, часто вордпресс хачат?
Не то, чтоб очень, но скрытых iframe’ов - дофига. Кроме того, часто просто подгружают бэкдор, чтобы при необходимости им воспользоваться.
Пользователь заметит тормоза, когда он попадет на сканирование?
Нет, сканирование идет в бэкграунде.
Один цикл работы крона - это количество часов в параметре “запускать раз в”?
На быстром сервере - да, если крон не будет успевать выполнять часть задания за лимит времени - остаток задачи будет переноситься на следующий запуск и цикл затянется.
Почему md5_file надежней?
Кто-то может отредактировать файл и изменить время модификации его на старое. Крайне параноидально? Да.
У меня стоит некий плагин и приходит много варнингов не по теме.
В файле paranoid911.php прописаны правила для сканирования, вы можете отредактировать исключения к ним. В следующих версиях я постараюсь добавить ui редактор, а пока - попробуйте отредактировать сами (пользуясь примером дефолтных правил). Если варнинги приходят из-за работы какого-то популярного плагина - сообщите плиз мне, я добавлю в апкамин релиз.
На каком он языке?
Интерфейс? Русский, английский.
Твой плагин защитит меня! да? Защитит?
Не-а. Он только сообщит тебе, если кто-то что-то загрузит на твой фтп или отредактирует базу. И ты сможешь это быстро исправить. Может даже быстрей, чем какой-нибудь посетитель подхватит вирус через скрытый айфрейм на твоем блоге или быстрей, чем гугл лишит тебя пейджранка.
У меня есть еще вопрос!
А у меня есть формочка для комментариев под этим постом!
Ы-ы-ы! Как я могу тебя отблагодарить!
Напиши о нем в своем блоге
————————–
Да и, чуть не забыл, едва-едва. Конкурс с моим участием определяет победителей. Помогите определить, пожалуйста. А то я там последний


November 10th, 2008 at 9:51 pm
Как он запускается с периодичностью? Мне лениво в коде копатся и смотреть.
November 10th, 2008 at 9:55 pm
http://codex.wordpress.org/Category:WP-Cron_Functions
November 10th, 2008 at 10:16 pm
В общем, пока есть недочёты, однако репорты на мыло шлёт. Вопрос в том, что репорты он шлёт шальные, к примеру глаголит, что изменены картинки или PDF’ы - что крайне маловероятно, тем более в таких объёмах
November 10th, 2008 at 10:24 pm
Это первый скан
Он пришлет тебе о всех файлах и записях письма. После этого будут только апдейты.
November 10th, 2008 at 10:56 pm
Ага - потестю тогда завтра днём - пусть всё доделает, подумает о жизни ..
Оформи это первое письмо тогда приличней что ли - ато вы выглядит как бага.
November 10th, 2008 at 11:01 pm
Угу, ты прав. Вообще наверное, сделаю проверку на первый вызов, чтоб не заебывало этими мессагами. Просто сначала думал, что если хранить параметр “is_first_scan” в базе - то его атакующий изменит и письма не дойдут, блаблабла. Все равно ведь, если кто-то серьезно с базой захочет пошутить, он и admin_email заменит. Так что еще доработаю следующий билд в этом направлении.
И маску файлов наверное нужно.
November 10th, 2008 at 11:32 pm
не ну если чуваки залезли на фтп…они могут этот плагин убить и тогда на мыло ничего не придет??? а так мегаахуе…блин что то я у тебя матом ругаюсь часто в комментах…наверно шкурка влияет =)))
November 10th, 2008 at 11:51 pm
Да, могут. Но это если им будет очень хотеться. Чаще просто фигню какую-нибудь по быстрому вставляют.
November 10th, 2008 at 11:52 pm
Ругайся, я бы сам тут матерился, если бы не был такой стеснительный
November 11th, 2008 at 12:04 am
=))) марку держишь =)))) ок =))))
да, ну кшна крута…надо чтоли провести анализ уязвимостей…
November 11th, 2008 at 12:19 am
надо
November 12th, 2008 at 1:26 am
Да, Киселёв, ты кроссафчег!
– Oh tonight, you killed me with your smile.
– So beautiful and wild, so beautiful..
Чтоп у тя завтра не было похмелья!
November 12th, 2008 at 2:11 pm
Пасиб, Димончег, вроде не сильно
November 12th, 2008 at 5:36 pm
hi. Thanks for plugin
perfect.
Regards
November 12th, 2008 at 6:04 pm
Блин, зачем мой комент потер? Нормальный же комент был.
Сделай пожалуйста, чтобы плагин не ругался на обновление кеша. wp_stat_cache и wp_stat вообще, а то по 10 раз за день не меньше шлет мне письма.
November 12th, 2008 at 6:30 pm
Я не потер, charnad, он в другом топике был
http://www.jeka911.com/articles/internet/used/#comment-4356
обновлю, постараюсь сегодня.
November 12th, 2008 at 6:31 pm
baron, glad that you like it
November 12th, 2008 at 7:37 pm
Ой, звиняйте) Сформулировал я криво проблему.
Измененное:Таблица:wp_options; Запись со значением первичного ключа =stats_cache
Вот это шлется чаще всего.
Измененное:Таблица:wp_options; Запись со значением первичного ключа =category_children
Измененное:Таблица:wp_options; Запись со значением первичного ключа =sm_status
Вот это пореже, но тоже несколько раз за день.
Измененное:Файл:/sitemap.xml
Измененное:Файл:/sitemap.xml.gz
Ну это понятно, но тоже имхо стоит добавить в исключения.
November 12th, 2008 at 8:36 pm
Угу, пасиб, добавлю.
November 13th, 2008 at 9:54 pm
По-моему, надо сделать в настройках еще какое-нибудь поле (или конфиг-файл, так надежнее, но менее юзерфрендли), куда записывать пути-исключения, а то все случаи исключений жестко не закодируешь.
November 13th, 2008 at 10:14 pm
Thanks for the plug-in… by the way great theme here!
November 13th, 2008 at 10:30 pm
Alek, да, я интерфейс в админке планирую добавить. Но пока не начинал. Это, можно сказать, первый пункт в todo-листе, но займет много времени.
С другой стороны, не слишком гибко, но в самом файле можно подредактировать default_stages.
November 13th, 2008 at 10:30 pm
Andy, np
Yep, I still like it too
Designed by Nikita (http://www.seleckis.lv/)
November 25th, 2008 at 9:41 am
Зачетный пост =) Кстати, а ведь это тебя я нашла в Контакте http://vkontakte.ru/profile.php?id1623602176 ?
December 22nd, 2008 at 11:53 pm
[...] Подробнее об этой истории и самом плагине можно почитать тут! [...]