NeoPI — статистический сканер файлов на PHP

Всем привет, дорогие друзья. В этой публикации речь пойдет об одном очень полезном инструменте для определения файлов с отличающимся «стилем программирования», относительно «общего стиля» сканируемых файлов. Это может пригодится для определения шеллов и других зараженных скриптов. Скрипт называется NeoPI, однако до недавнего времени он был только на Python, теперь есть и на PHP.

Что такое NeoPI

Целевое назначение NeoPI является помощь в обнаружении скрытого кода в различных проектах. NeoPI рекурсивно просматривает файловую систему от базовой директории и ранжирует рейтинги файлов, которые генерируется в семи различных тестах. Он также предоставляет «общую» оценку, полученную из рейтинга файлов во всех отдельных тестах.

Репозиторий

Требования

  • PHP 5
  • Пользователь, запускающий скрипт, должен иметь доступ на чтение всех файлов, которые должны быть проверены.

Как использовать

Скрипт можно запускать как из консоли, так и через браузер. Для запуска через браузер просто скопируйте скрипт в нужную директорию и запустите, скачать можно по ссылке, в репозитории. Для запуска через консоль сначала скопируйте репозиторий на сервер командой:

Теперь запустите скрипт с флагом   -h  или  --help  чтобы увидеть доступные опции:

Теперь о каждой по порядку:

Показывает это сообщение

Путь к папке для рекурсивного сканирования. По умолчанию — папка, в которой находится файл.

Расширения файлов, которые подлежат сканированию, разделенные точкой с запятой «;». По умолчанию — php, asp, aspx, sh, bash, zsh, csh, tsch, pl, py, txt, cgi, cfm.

Запуск всех тестов.

Добавить флаг для выполнения теста индекса совпадений (Index of Coincidence)

Добавить флаг для выполнения теста энтропии файла

Добавить флаг на выполнение теста на самое большое слово

Добавить флаг на выполнение проверки файлов на известные сигнатуры

Добавить флаг на выполнение проверки файлов на наличие eval.

Добавить флаг на выполнение проверки файлов на степень сжатия.

Лимит файлов в отчете.

Сохранить результат в CSV файл. Результат выполнения скрипта будет записан в новый файл и сохранен в той же директории, что и скрипт.

По умолчанию, если запускать без аргументов, NeoPI проводит все тесты. Результаты сканирования выглядят следующим образом:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *