За последние 24 часа нас посетили 20645 программистов и 1827 роботов. Сейчас ищут 1017 программистов ...

Сканер шелов на сайте

Тема в разделе "Прочее", создана пользователем Александр Аблизин, 11 апр 2017.

?

Это вообще кому нибудь нужно?

  1. Да нужно.

    0 голосов
    0,0%
  2. Нет не нужно.

    0 голосов
    0,0%
  1. Александр Аблизин

    С нами с:
    11 апр 2017
    Сообщения:
    2
    Симпатии:
    3
    Добрый день форумчане. Я создал скрипт для поиска вредоносного кода на сайте и мне хочется поделится им со всеми, может кому-то пригодится. Работает он правда на php версии выше 5.6 что он делает:
    • Рекурсивно сканирует все файлы сайта
    • Проверяет каждый файл на соответствие регулярному выражению
    • Выводит список подозрительных файлов
    • Позволяет просматривать содержимое подозрительных файлов
    • Позволяет редактировать или удалять подозрительные файлы
    • Позволяет сохранить отчёт о проделанной работе в файл (что-бы знать какие файлы были удалены/изменены на всякий случай)
    [​IMG]

    Скрипт защещён паролем, который генерируется при скачивании, его можно посмотреть прямо в коде скрипта. По сути это простой рекурсивный сканер. Того набора регулярок, который есть на данный момент вполне хватает, ибо он образовался в боевых условиях после чистки 300+ сайтов от заражений. Конечно он не выявит искусно интегрированный код, но среагирует на обфускацию, сокрытие кода по средствам запутывания массивами и на опасные функции.

    Буду рад услышать отзывы и предложения, если у кого-то возникнут ошибки, то напишите какие. Ну и вообще, как вы думаете, стоит развивать эту тему или нет особого смысла?
    P.S. Ото я сделаль а никто не знает, а вдруг кому-то надо.
     
    Fell-x27 и denis01 нравится это.
  2. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    @Александр Аблизин, ну если у тебя всё честно, чё бы и нет. Код открытый? Дорабатывать можно? Может на гитхаб залить?
    Не пойми неправильно, ты человек новый, незнакомый. Да даже если бы был и знакомый, я бы всё равно бездумно без просмотра исходников код не стал бы запускать у себя. Мало ли чё)
    А так, если всё неплохо, может и составил бы конкуренцию ai-bolit'у.
     
    Fell-x27 и denis01 нравится это.
  3. Александр Аблизин

    С нами с:
    11 апр 2017
    Сообщения:
    2
    Симпатии:
    3
    Ну у меня искодники не на гитхабе а на битбакете, а репа пока закрытая потому что там много паролей, там самописная система беспрерывной интеграции и сборки :) И если что, я конечно выложу на гит и оформлю там как надо. А поповоду открытых исходников, да это-ж php))) Он не обфусцирован и написан максимально просто!) Всё же видно там и прозрачно. А про ai-bolit скажу что сам им пользовался долго, но он меня постоянно жутко огорчал, он во первых тормозной, во вторых автор не реагирует на ошибки, во втретьих не решает главной проблемы, а именно редактирование и удаление на лету. Потому как даже узнав пути к подозрительным файлам, и даже увидев кусок зловреда, его ещё нужно открыть и отредактировать. А когда их штук 50 это реально напряжно.
     
    denis01 нравится это.
  4. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    @Александр Аблизин, окей. Делай готовый пакет, чтобы я просто скачал, залил, запустил (ну или как у тебя там предполагается, инструкцию какую), делай открытый репозиторий. В общем готовь всё к продакшену. У меня на поддержке много сайтов. Потестим.
     
    denis01 нравится это.
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Звучит неплохо. Главное, чтобы не было false-positive, с последующей очисткой...
     
  6. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    у айболита как раз есть. В параноидальном режиме. И в то же время без параноидального видит не всё.
    В общем надо смотреть, сравнивать.
     
  7. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Код (Text):
    1. /\$.*=\$.*\[.*\].*\..*\$.*=\$.*\[.*\]/
    Такое количество конструкций .* очень быстро исчерпает backtrack_limit.
    Тут бы добавить модификатор /U для переключения на не жадные квантификаторы.
    Так больше шансов, что совпадение будет найдено, прежде чем поиск завершится с ошибкой PREG_BACKTRACK_LIMIT_ERROR.