THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

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 получено авторское свидетельство в РосПатенте. А еще сканер активно освещается на сторонних сайтах, в профильных журналах, на конференциях и вебинарах.

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

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

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

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

Скачивать будем файлзиллой. Скачивать я буду сразу на установленный локальный сервер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: две статьи как чистить уже найденные вирусы:

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

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

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

У данного скрипта есть 3 варианта релизов:

  • AI Bolit под Windows — позволяет провести анализ сайт локально, предварительно скачав его на компьютер.
  • Классический вариант для проверки хостинга на вирусы (подойдет также для Unix и Mac OS X).
  • Новый веб-сканер (ReScan.pro) — проводит проверку страниц сайта онлайн.

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

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

Принцип работы и особенности AI Bolit

Чтобы использовать AI Bolit вам нужно выполнить следующие действия:

  • Скачать скрипт с сайта программы .
  • Распаковать и залить его на хостинг.
  • Запустить AI Bolit как указано в документации.
  • После выполнения проверки получаете результат анализа сайта.
  • Дальше вы можете самостоятельно исправить проблемы или обратиться за помощью к специалистам.

Последний пункт объясняет почему столь классный и мощный php скрипт AI Bolit распространяется бесплатно. Думаю, после нахождения проблем и вирусов на хостинге многие пользователи обращаются к разрабочтикам за последующими услугами. Вполне логичный подход. Решение, кстати, запатентовано и обладает уникальным алгоритмом, а популярніе ру-хостинги рекомендуют/используют его в работе. Помнится, когда-то обращался за помощью в тех.поддержку хостера по поводу проблем с одним сайтом, так они запускали проверку хостинга на вирусы именно с помощью AI Bolit. После того случая я и узнал о существовании данного решения:)

Основные плюсы и фишки AI Bolit:

  • поиск разных типов вредоносных кодов: вирусы, шеллы, бэкдоры, публичные уязвимости в скриптах;
  • бесплатное распространение;
  • использование специального запатентованного эвристический анализа;
  • относительно не сложная установка и настройка;
  • актуальная база вирусов и вредоносных скриптов;
  • проверка хостинга на вирусы для любых сайтов и CMS;
  • работа с разными ОС: Windows, Unix, MacOS;
  • рекомендации от ведущих хостинг-компаний.

Как пользоваться AI Bolit

1. Скрипт AI Bolit скачать можно пройдя по данной ссылке на сайте с его описанием. Там рекомендуется выбирать именно универсальную версию(!) для проверки хостинга на вирусы. После этого начнется автоматическое скачивание файла ai-bolit.zip.

2. Следующий шаг — распаковка и загрузка на хостинг. Для работы с FTP я использую бесплатную программу FileZilla (отличный ФТП клиент). После разархивации ai-bolit.zip найдете внутри документацию по установке в файле readme.txt. Если хотите, можете с ней ознакомиться.

define ("PASS" , "????????????????????" ) ;

define("PASS", "????????????????????");

И вписываете вместо символов??? свое значение. Файл сохраняете.

4. Затем копируете все содержимое папки /ai-bolit/ на свой хостинг в корневую директорию (например, для WP это там, где находится wp-config).

5. После загрузки скрипта на сервер нужно запустить AI Bolit по ссылке в адресной строке вашего браузера:

https://адрес_вашего_сайта/ai-bolit.php?p=ваш_пароль

Через некоторое время получите отчет поиска вирусов на хостинге.

В данном примере видимо, что проверка обнаружила подозрительный редирект для мобильных устройств, находящийся в haccess, но я добавлял его самостоятельно. Также были найдены сторонние коды в некоторых файлах шаблона (на скриншоте их нет, т.к. уже все почистил).

6. После того как сканер AI Bolit завершил свою работу вам нужно обязательно удалить все его файлы с FTP (которые вы загружали на 4-том шаге) вместе с отчетом.

Напоследок хочется заметить, что в скрипте имеется 2 режима проверки: экспресс и «параноидальный» . В первом случае проверяются только js, php, html файлы и htaccess, а второй позволяет запустить AI Bolit на полную. Для этого в файле настроек ai-bolit.php поставьте значение переменной ‘scan_all_files’ => 1 либо используйте для запуска скрипта ссылку с дополнительным параметром:

https://адрес_вашего_сайта/ai-bolit.php?p=ваш_пароль&full

В документации сказано, что перед повторным запуском надо удалить AI-BOLIT-DOUBLECHECK.php, хотя лично у меня на ФТП такого файла не было. В readme.txt также найдете информацию как проверить на вирусы сайт на хостинге через SSH. Алгоритм действий похожий, но после копирования всех файлов скрипта на FTP запускаете его командой:

php ai-bolit.php

php ai-bolit.php

В итоге автоматически будет создан файл AI-BOLIT-REPORT-<дата>-<время>.html с результати проверки. В принципе, ничего сложного нет, но дополнительные ответы на вопросы можете глянуть в FAQ.

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

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

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] .

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама