Здравствуйте, уважаемые читатели!
Картинка, кратко и аллегорично передающая смысл описанного в посте скрипта:
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/553/620/0ec/5536200ecbfa9c9b7146d062e43a2b80.jpg)
У меня есть несколько сайтов, на которых в какой-то момент начал появляться вредоносный код, выглядящий как отдельные php-файлы либо дополнительные строки с длинными eval() в существующих файлах.
После смены всех паролей, обновления CMS до последних версий и других мероприятий по повышению устойчивости сайтов от злоумышленников такие случаи стали редкими, но не прекратились.
Тогда я задумался, как бы мне так оперативно узнавать, куда в очередной раз будет внедрен код, чтобы можно было его тут же прибить?
Я слыхал, что есть готовые серьезные решения для этого, но хотелось:
В результате за несколько часов в течение ~недели я написал проверяльщик, который не долго думая назвал Simple File Integrity Checker (SFIC).
Он:
Его можно запускать по CRON (у меня запускается каждые 15 минут на каждом сайте) или открывать в браузере.
Если обнаружены изменения, то отдельно приводятся списки добавленных, удаленных и измененных файлов. У измененных файлов указано, как изменились дата и размер файла.
Этого вполне достаточно, чтобы навскидку понять, что примерно произошло.
Выложил проект на гитхабе.
Код оформлен так себе. В будущем постараюсь оформить его более дружелюбно.
Однако поскольку он уже год как стабильно работает, я решил перестать пользоваться им в одно лицо и поделиться с общественностью.
Спасибо за внимание!
Дополнение: тема актуальна не только для меня, т.к. в комментах нашлось более проработанное решение того же вопроса (но пока недоступное общественности).
Дополнение 2: в комментах навели на веб-антивирус САНТИ, который помимо проверки целостности файлов делает еще много всего.
Картинка, кратко и аллегорично передающая смысл описанного в посте скрипта:
![](https://habrastorage.org/getpro/habr/post_images/553/620/0ec/5536200ecbfa9c9b7146d062e43a2b80.jpg)
У меня есть несколько сайтов, на которых в какой-то момент начал появляться вредоносный код, выглядящий как отдельные php-файлы либо дополнительные строки с длинными eval() в существующих файлах.
После смены всех паролей, обновления CMS до последних версий и других мероприятий по повышению устойчивости сайтов от злоумышленников такие случаи стали редкими, но не прекратились.
Тогда я задумался, как бы мне так оперативно узнавать, куда в очередной раз будет внедрен код, чтобы можно было его тут же прибить?
Я слыхал, что есть готовые серьезные решения для этого, но хотелось:
- Простого и быстрого в настройке и работе.
- Самописного, чтобы немного прокачать мой программистский скилл.
В результате за несколько часов в течение ~недели я написал проверяльщик, который не долго думая назвал Simple File Integrity Checker (SFIC).
Он:
- прост до необходимого минимума;
- работает с файловой системой от указанного пути и глубже;
- проверяет, не изменились ли файлы с момента предыдущего сканирования. Если изменились — отправляет уведомление по почте;
- позволяет задавать исключения (изменение которых не считается вторжением на сайт) в виде имен файлов, расширений файлов и имен каталогов;
- может проверять файлы по размеру и дате изменения либо контенту.
Его можно запускать по CRON (у меня запускается каждые 15 минут на каждом сайте) или открывать в браузере.
Если обнаружены изменения, то отдельно приводятся списки добавленных, удаленных и измененных файлов. У измененных файлов указано, как изменились дата и размер файла.
Этого вполне достаточно, чтобы навскидку понять, что примерно произошло.
Выложил проект на гитхабе.
Код оформлен так себе. В будущем постараюсь оформить его более дружелюбно.
Однако поскольку он уже год как стабильно работает, я решил перестать пользоваться им в одно лицо и поделиться с общественностью.
Спасибо за внимание!
Дополнение: тема актуальна не только для меня, т.к. в комментах нашлось более проработанное решение того же вопроса (но пока недоступное общественности).
Дополнение 2: в комментах навели на веб-антивирус САНТИ, который помимо проверки целостности файлов делает еще много всего.