Сканер AI Bolit — поиск вирусов на хостинге (как пользоваться скриптом). Как работать со сканером AI-BOLIT из командной строки Зачем же нужен этот скрипт

Есть проблемная ситация – сайт с вирусами.

Сейчас я покажу как этот вирус найти легко и уничтожить. Первым делом нужно скачать сайт на локаль – ведь так намного проще проверять масив файлов.

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

Скачивать будем файлзиллой. Скачивать я буду сразу на установленный локальный сервер – Open Server – что бы была возможность запустить локально, вдруг понадобится.

Если у вас установлен антивирус, которые проверяет файлы на лету – есть шанс что вы обнаружите в каких-то файлах вирусы ещё при скачивании. Смотрите в логах моего антивируса.

В моем случае мой Microsoft Security ничего не показал – вирус оказался ему неизвестен.

Для поиска я буду использовать специальный антивирус – Айболит. Сайт разработчика http://revisium.com/ai/
Советую зайти, посмотреть семинар. Файлы ещё скачиваются, это надолго. У меня уже есть готовая локальная копия, я вчера игрался с антивирусом этим.

Итак, для работы нам ещё понадобится php для windows. Скачивать тут http://windows.php.net/download/ последнюю версию для виндовс в zip архиве. Распакуйте где-то, где вам было бы удобно.

Окей. Подготовка закончилась. Теперь к работе.

Скачиваем архив с АйБолитом.

Внутри три папки:

  • ai-bolit – собственно само ядро антивируса
  • known_files – версии антивирусных баз файлов для разных движков
  • tools – вспомагательная утилита.

Итак, приступаем к лечению сайта от вирусов

  1. Копируем из папки ai-bolit все файлы в корень сайта
  2. Если мы знаем какой у нас движок – выбираем в папке known_files папку с нашей CMS и закидываем в корень все файлы. В моем случае движок WordPress, потмоу будем лечить от вирусов антивирусными базами для WordPress. Если хотите вобще все проверить – можете антивирусные базы залить от всех движков – авось найдет что-то больше)
  3. Снова забыл – нужно в настройках АйБолита указать экспертный режим работы. Для этого текстовым редактором открываем файл ai-bolit.php и находим там строчку define(‘AI_EXPERT’, 0); меняем “0” на “1” и все – экспертный режим включен.
  4. Теперь – нужно распаковать наш zip архив c php в какую-то папку, где с ним было бы удобно работать. Нам понадобится файлик – php.exe
  5. Теперь нужно запустить исполняемый файл нашего антивируса. Для этого два раза кликнем по ai-bolit.php. У меня уже готов выбор чем выполнять этот скрипт.

Я бы советовал сохранить только папку uploads и папку с вашей темой. Плагины все перекачать, настройки останутся в базе данных – их вирусы не трогают. Тему проверить вручную все файлы – благо их там немного, если верстал сайт не корявый верстальщик. А все остальное в движке залить наново. это самый надежный способ.

И ещё напоминаю – вирусы скоре всего у вас по всему аккаунту на хостинге (очень редко они умудряются прыгать между аккаунтами разных пользователей, только в тмо случае если админ хоостинга криворук.)

Если на сайте по какой-то причине будет удален АйБолит – скачать антивирус для сайта всегда можно у меня

Вирусы это печально(

PS: две статьи как чистить уже найденные вирусы:

  • Попроще – Как самостоятельно бесплатно удалить вирус с сайта
  • Для продвинутых –

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

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

История создания

В настоящий момент рынок антивирусного ПО для персональных компьютеров чрезвычайно развит: на слуху решения от Касперского, Dr.Web, McAfee, Norton, Avast и прочих. Со сканерами вирусов и вредоносного кода для сайтов все не так радужно. Системные администраторы и владельцы сайтов, озабоченные проблемой поиска вредоносного кода на своих серверах, вынуждены использовать самописные скрипты, которые ищут вирусы и шеллы по определенным фрагментам, собранным ранее. Так же поступал и я. С клиентских сайтов собирал шеллы, вирусы, бэкдоры, коды редиректов и постепенно формировал базу сигнатур вредоносного кода. А чтобы ее было удобно использовать, написал небольшой скрипт на PHP.

Постепенно сканер обрастал полезной функциональностью, и наконец стало очевидно, что он может быть полезен не только мне.
В апреле 2012 года я анонсировал скрипт AI-Bolit на нескольких форумах, а спустя полгода он стал основным средством поиска вредоносного кода у веб-мастеров и админов хостингов. Что касается суммарной статистики, то за полтора года скрипт скачали более 64 тысяч раз. А еще на скрипт получено авторское свидетельство в Роспатенте.

Особенности сканера

Основное отличие AI-Bolit от существующих на сегодняшний день сканеров вирусов и вредоносного кода на сервере - это использование паттернов в качестве вирусных сигнатур. Поиск вредоносного кода происходит по базе регулярных выражений, а не хешу или контрольным суммам, что позволяет выявлять даже модифицированные и обфусцированные шеллы, вставленные в шаблоны или скрипты CMS.

Сканер может работать в режиме быстрого сканирования (только по PHP-, HTML, JS-, htaccess-файлам), в режиме «эксперта», исключать директории и файлы по маске. А также имеет большую базу CRC white-листов популярных CMS, что значительно сокращает количество ложных срабатываний.

В настоящий момент в базе сканера более 700 сигнатур вредоносных скриптов. Сигнатуры представляют собой регулярные выражения, что позволяет находить, например, вот такие обфусцированные шеллы и бэкдоры, которые ни LMD с ClamAV, ни уж тем более десктопные антивирусы не находят:

Базу сигнатур регулярно пополняют новыми найденными образцами как специалисты из «Ревизиума», так и пользователи скрипта, что позволяет поддерживать сканер в актуальном состоянии.

Интерфейс AI-Bolit

Интерфейс AI-Bolit очень прост. Это PHP-скрипт, который может работать в режиме командной строки через PHP CLI или открываться в браузере с URL http://сайт/ai-bolit.php?p=пароль.

Результатом работы скрипта является отчет, состоящий из четырех секций:

  1. Статистика и общая информация о скрипте.
  2. Красная секция критических замечаний со списком найденных шеллов, вирусов и другого вредоносного кода (или похожих на вредоносный код фрагментов).
  3. Оранжевая секция предупреждений (подозрительные фрагменты кода, которые часто используются в хакерских инструментах).
  4. Синяя секция рекомендаций (список открытых на запись каталогов, настройки PHP и прочее).

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

Основная проблема, c которой обычно сталкивается разработчик сканера вирусов, - это поиск золотой середины между «параноидальностью» (чувствительностью) сканера и числом ложных срабатываний. Если для поиска вредоносного кода использовать только фиксированные строки, то эффективность сканера становится низкой, так как не будут найдены обфусцированные фрагменты, код с пробелами и табуляциями, хитро отформатированный код. Если же искать по гибким паттернам, то высока вероятность ложных срабатываний, когда гарантированно безопасные скрипты отмечаются как вредоносные.

В AI-Bolit я решаю данную проблему с помощью использования двух режимов работы («обычный»/«экспертный») и white-листов для известных CMS.

Будущее AI-Bolit

В планах по развитию скрипта - большое количество полезных фич и интеграция с другими антивирусными решениями. Один из ключевых моментов - это интеграция AI-Bolit с базами ClamAV и LMD. Так AI-BOLIT сможет искать руткиты и шеллы еще и по контрольным суммам.

Вторая важная вещь в очереди на имплементацию - это удобный интерфейс для анализа табличных отчетов с поиском и гибкими фильтрами. Можно будет отсеивать найденные файлы по расширениям, сортировать по размеру, контрольным суммам и так далее.

Третьим пунктом стоит реализация асинхронного сканирования с помощью AJAX, что позволит решить проблему проверки сайтов, размещенных на слабых хостингах, на которых ограничено потребление CPU или время работы скрипта. В настоящий момент это решается только сканированием копии сайта локально или на другом, более мощном сервере. Ну и конечно, постоянные обновления баз сигнатур вредоносного кода.

В заключение

Код скрипта открыт, размещен на GitHub, поэтому любой желающий может внести свой вклад в развитие данного проекта. Ваши предложения и пожелания присылайте мне на [email protected] .

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

Он ищет вирусы, хакерские скрипты, фишинговые страницы, дорвеи и другие типы вредоносных скриптов, загружаемые хакерами при взломе сайтов.

Если на вашем сайте появились проблемы, например:

  • антивирусы блокируют доступ к страницам сайта,
  • на страницах появились чужие ссылки
  • происходит мобильный редирект при заходе со смартфона или планшета,
  • резко упала посещаемость,
  • посетители жалуются на вирусы,
  • хостинг заблокировал почту за рассылку спама,
  • есть подозрение на взлом сайт
проверьте сайт сканером AI-Bolit. Он поможет найти файлы, в которых размещен хакерский бэкдор или веб-шелл, код по продаже ссылок или спам-рассыльщик.

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

AI-Bolit рекомендуют многие российские хостинг-провайдеры , некоторые из них уже встроили сканер в панель управления виртуальным хостингом, что позволяет выполнить владельцу аккаунта антивирусную проверку в один клик.

Сканер разработан экспертами по информационной безопасности компании «Ревизиум» , специализирующейся на лечении сайтов и защите от взлома.

Ежедневно при лечении и восстановлении сайтов специалисты “Ревизиума” обнаруживают новые вредоносные скрипты и более изощренные способы сокрытия вредоносного кода. Эта информация используется для корректирования алгоритма работы сканера и пополнения базы правил, что делает сканер AI-Bolit более эффективным с каждой новой версией.

В чем уникальность сканера AI-Bolit?

Слабой стороной современных серверных сканеров вредоносного кода является их подход к обнаружению вредоносов и антивирусная база. Серверные антивирусы ищут вирусный и хакерские код по фиксированным параметрам (контрольной сумме файла, хэшу, строковым фрагментам). В то же время разработчики современных вредоносных скриптов научились обманывать сканеры, используя шифрование кода, делая каждую новую копию непохожей на предыдущую: они используют обфускацию переменных, шифрование исполняемого кода, косвенные вызовы и другие подходы. Поэтому старые методы поиска вирусов перестают работать. Если раньше системному администратору достаточно было выполнить команду

Find -type f -name "*.php" -print0 | xargs -0 fgrep -l "base64_decode($_POST" find -type f -name "*.php" -print0 | xargs -0 fgrep -l "if (count($_POST) < 2) { die(PHP_OS.chr(" find -type f -size -1000c -name "*.php" -print0 | xargs -0 grep -il "if(isset(\$_REQUEST\[.*eval(.*)" find -type f -name "*.php" -print0 | xargs -0 fgrep -l "base64_decode($_REQUEST" find -type f -size -1000c -name "*.php" -print0 | xargs -0 fgrep -l "eval(stripslashes($_REQUEST" find ~/domains/ -type f -name "*.php" -print0 | xargs -0 fgrep -l "eval($___($__)" find \(-regex ".*\.php$" -o -regex ".*\.cgi$" \) -print0 | xargs -0 egrep -il "r0nin|m0rtix|r57shell|c99shell|phpshell|void\.ru|phpremoteview|directmail|bash_history|filesman" find -type f -name "*.php" -print0 | xargs -0 fgrep -l "Euc

Для поиска всех хакерских шеллов, то сейчас этого уже не достаточно, так как хакерский веб-шелл выглядит так:

И меняет свою структуру и строковое представление.

Нужен более эффективный механизм поиска вредоносного кода. Поэтому в AI-Bolit применяется несколько иной подход.

При поиске вредоносного кода сканер использует предварительную нормализацию исходного кода, механизм поиска по регулярным выражениям и эвристические правила. Все это в совокупности позволяет обнаружить закодированные модификации веб-шеллов и бэкдоров, а также новые, еще неизвестные вирусы и хакерские скрипты, определяя их по альтернативным параметрам (например, если в исходном коде используются типичные для хакерских скриптов вызовы, файлы имеют случайно-сгенерированные имена, по нестандартным атрибутам файлов и т.п.). Использование продвинутого алгоритма обнаружения вредоносного кода позволяет сканеру AI-Bolit находить зашифрованные фрагменты полиморфной природы. Например, такие:

В результате проведенных экспериментов AI-Bolit показал в разы обнаружение хакерских скриптов, по сравнению с ClamAv и MalDet, которые используются на многих хостингах в качестве бесплатных антивирусных решений.

Как работает сканер AI-Bolit

Для проверки сайта достаточно загрузить сканер в каталог сайта (на хостинге или на локальном компьютере с бэкапом сайта) и запустить. Сканер можно открыть в браузере или запустить в режиме командной строки по SSH. Кроме того, AI-Bolit’ом можно проверить резервную копию сайта локально на своем компьютере.

Результат проверки сайта — это подробный отчет в html или текстовом формате, который он может автоматически отправлять по электронной почте.

На сайте есть подробные видео-инструкции и руководство для новичков.

А вы уверены, что ваш сайт не взломан?

Большинство владельцев сайтов не подозревает, что их сайты взломаны и на них загружены хакерские скрипты. Поэтому рекомендуем проверить ваши сайты сканером AI-Bolit прямо сейчас. Если у вас возникнут вопросы по отчету сканера, пришлите его нам в “Ревизиум” на [email protected] (в виде архива.zip), мы поможем в нем разобраться.

Обновления сканера анонсируются у нас в твиттере

Наибольший функционал доступен при запуске сканера AI-BOLIT в режиме командной строки. Это можно делать как под Windows/Unix/Mac OS X, так и непосредственно на хостинге, если у вас есть доступ по SSH и хостинг не сильно ограничивает потребляемые ресурсы процессора.

Обращаем внимание, что для запуска сканера требуется консольная версия PHP 7.1 и выше. Более ранние версии официально не поддерживаются. Проверьте текущую версию командой php -v

Справка по параметрам командной строки сканера AI-BOLIT

Показать помощь

php ai-bolit.php --help

php ai-bolit.php --skip=jpg,png,gif,jpeg,JPG,PNG,GIF,bmp,xml,zip,rar,css,avi,mov

Просканировать только определенные расширения

php ai-bolit.php --scan=php,php5,pht,phtml,pl,cgi,htaccess,suspected,tpl

Подготовить файл карантина для отправки специалистам по безопасности. Будет создан архив AI-QUARANTINE-XXXX.zip с паролем.

php ai-bolit.php --quarantine

Запустить сканер в режиме "параноидальный" (рекомендуется для получения максимально-детализированного отчета)

php ai-bolit.php --mode=2

php ai-bolit.php --mode=1

Проверить один файл "pms.db" на вредоносный код

php ai-bolit.php -jpms.db

Запустить сканер с размером памяти 512Mb

php ai-bolit.php --memory=512M

Установить максимальный размер проверяемого файла 900Kb

php ai-bolit.php --size=900K

Делать паузу 500ms между файлами при сканировании (для снижения нагрузки)

php ai-bolit.php --delay=500

Отправить отчет о сканировании на email [email protected]

php ai-bolit.php [email protected]

Создать отчет в файле /home/scanned/report_site1.html

php ai-bolit.php --report=/home/scanned/report_site1.html

Просканировать директорию /home/s/site1/public_html/ (отчет по-умолчанию будет создан в ней же, если не задана опция --report=файл_отчета)

php ai-bolit.php --path=/home/s/site1/public_html/

Выполнить команду по завершении сканирования.

php ai-bolit.php --cmd="~/postprocess.sh"

Получить отчет в текстовом виде (plain-text) с именем site1.txt

php ai-bolit.php -lsite1.txt

Можно комбинировать вызовы, например,

php ai-bolit.php --size=300K --path=/home/s/site1/public_html/ --mode=2 --scan=php,phtml,pht,php5,pl,cgi,suspected

Комбинируя вызов сканера AI-BOLIT c другими командами unix, можно выполнять, например, пакетную проверку сайтов. Ниже приведем пример проверки нескольких сайтов, размещенных внутри аккаунта. Например, если сайты размещены внутри директории /var/www/user1/data/www, то команда на запуск сканера будет

find /var/www/user1/data/www -maxdepth 1 -type d -exec php ai-bolit.php --path={} --mode=2 \;

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

php ai-bolit.php список параметров … --eng

Переключить интерфейс отчета на английский. Данный параметр должен идти последним.

Интеграция с другими сервисами и в панель хостинга

php ai-bolit.php --json_report=/path/file.json

Cформировать отчет в формате json

php ai-bolit.php --progress=/path/progress.json

Cохранять статус проверки в файл в формате json. Данный файл будет содержать структурированные данные в формате json: текущий файл проверки, сколько файлов проверено, сколько файлов осталось проверить, процент проверки, время до завершения сканирования. Данный механизм можно использовать, чтобы в панели показывать прогресс-бар и данные о проверяемых файлах. По завершении сканирования файл удаляется автоматически.

php ai-bolit.php --handler=/path/hander.php

Внешний обработчик событий. Вы можете добавить собственные обработчики начала/завершения сканирования/прогресса сканирования/ошибки сканирования. Пример файла можно посмотреть в архиве сканера, в каталоге tools/handler.php. Например, по завершении сканирования можно что-то сделать с файлом отчета (отправить по почте, запаковать в архив и пр).