...

среда, 26 февраля 2014 г.

Обнаружение изменений в файлах на веб-сервере

Здравствуйте, уважаемые читатели!

Картинка, кратко и аллегорично передающая смысл поста:


У меня есть несколько сайтов, на которых в какой-то момент начал появляться вредоносный код, выглядящий как отдельные php-файлы либо дополнительные строки с длинными eval() в существующих файлах.


После смены всех паролей, обновления CMS до последних версий и других мероприятий по повышению устойчивости сайтов от злоумышленников такие случаи стали редкими, но не прекратились.


Тогда я задумался, как бы мне так оперативно узнавать, куда в очередной мне внедрят код, чтобы можно было его тут же прибить?



Я слыхал, что есть готовые серьезные решения для этого, но хотелось:



  1. Простого и быстрого в настройке и работе.

  2. Самописного, чтобы немного прокачать мой программистский скилл.


В результате за несколько часов в течение ~недели я написал проверяльщик, который не долго думая назвал Simple File Integrity Checker (SFIC).


Он:



  • прост до необходимого минимума;

  • работает с файловой системой от указанного пути и глубже;

  • проверяет, не изменились ли файлы с момента предыдущего сканирования. Если изменились — отправляет уведомление по почте;

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

  • может проверять файлы по размеру и дате изменения либо контенту.


Его можно запускать по CRON (у меня запускается каждые 15 минут на каждом сайте) или открывать в браузере.


Если обнаружены изменения, то отдельно приводятся списки добавленных, удаленных и измененных файлов. У измененных файлов указано, как изменились дата и размер файла.

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


Выложил проект на гитхабе.

Код оформлен так себе. Возможно, в будущем оформлю его более дружелюбно или с благодарностью приму чью-нибудь помощь в этом.

Однако поскольку он уже год как стабильно работает, я решил перестать пользоваться им в одно лицо и поделиться с общественностью.


Спасибо за внимание!


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий