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, ни уж тем более десктопные антивирусы не находят:

Фрагмент шелла 1
Фрагмент шелла 1
Фрагмент шелла 2
Фрагмент шелла 2
Фрагмент шелла 3
Фрагмент шелла 3

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

 

Интерфейс 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, поэтому любой желающий может внести свой вклад в развитие данного проекта. Ваши предложения и пожелания присылайте мне на ai@revisium.com.

Теги:

2 комментария

  1. 27.09.2014 at 11:09

    О да, отличная и удобная вещь, чтобы прочитать сорцы чужие на сайте. Или найти уже залитый туда шелл, очень удобно.
    Еще позволяет насканить по оценке crc32 другие исходники.

  2. strannik

    28.01.2017 at 18:06

    Я ещё пользуюсь антивирусом для сатов Санти, тоже фришный. помоему santivi.com

Оставить мнение

Check Also

FPGA. Разбираемся, как устроены программируемые логические схемы и чем они хороши

Представь, что процессор вместо того, чтобы выполнять набор инструкций, будет перестраиват…