Добрый день форумчане. Я создал скрипт для поиска вредоносного кода на сайте и мне хочется поделится им со всеми, может кому-то пригодится. Работает он правда на php версии выше 5.6 что он делает: Рекурсивно сканирует все файлы сайта Проверяет каждый файл на соответствие регулярному выражению Выводит список подозрительных файлов Позволяет просматривать содержимое подозрительных файлов Позволяет редактировать или удалять подозрительные файлы Позволяет сохранить отчёт о проделанной работе в файл (что-бы знать какие файлы были удалены/изменены на всякий случай) Скрипт защещён паролем, который генерируется при скачивании, его можно посмотреть прямо в коде скрипта. По сути это простой рекурсивный сканер. Того набора регулярок, который есть на данный момент вполне хватает, ибо он образовался в боевых условиях после чистки 300+ сайтов от заражений. Конечно он не выявит искусно интегрированный код, но среагирует на обфускацию, сокрытие кода по средствам запутывания массивами и на опасные функции. Буду рад услышать отзывы и предложения, если у кого-то возникнут ошибки, то напишите какие. Ну и вообще, как вы думаете, стоит развивать эту тему или нет особого смысла? P.S. Ото я сделаль а никто не знает, а вдруг кому-то надо.
@Александр Аблизин, ну если у тебя всё честно, чё бы и нет. Код открытый? Дорабатывать можно? Может на гитхаб залить? Не пойми неправильно, ты человек новый, незнакомый. Да даже если бы был и знакомый, я бы всё равно бездумно без просмотра исходников код не стал бы запускать у себя. Мало ли чё) А так, если всё неплохо, может и составил бы конкуренцию ai-bolit'у.
Ну у меня искодники не на гитхабе а на битбакете, а репа пока закрытая потому что там много паролей, там самописная система беспрерывной интеграции и сборки И если что, я конечно выложу на гит и оформлю там как надо. А поповоду открытых исходников, да это-ж php))) Он не обфусцирован и написан максимально просто!) Всё же видно там и прозрачно. А про ai-bolit скажу что сам им пользовался долго, но он меня постоянно жутко огорчал, он во первых тормозной, во вторых автор не реагирует на ошибки, во втретьих не решает главной проблемы, а именно редактирование и удаление на лету. Потому как даже узнав пути к подозрительным файлам, и даже увидев кусок зловреда, его ещё нужно открыть и отредактировать. А когда их штук 50 это реально напряжно.
@Александр Аблизин, окей. Делай готовый пакет, чтобы я просто скачал, залил, запустил (ну или как у тебя там предполагается, инструкцию какую), делай открытый репозиторий. В общем готовь всё к продакшену. У меня на поддержке много сайтов. Потестим.
у айболита как раз есть. В параноидальном режиме. И в то же время без параноидального видит не всё. В общем надо смотреть, сравнивать.
Код (Text): /\$.*=\$.*\[.*\].*\..*\$.*=\$.*\[.*\]/ Такое количество конструкций .* очень быстро исчерпает backtrack_limit. Тут бы добавить модификатор /U для переключения на не жадные квантификаторы. Так больше шансов, что совпадение будет найдено, прежде чем поиск завершится с ошибкой PREG_BACKTRACK_LIMIT_ERROR.