﻿ai-bolit.php
------------
https://revisium.com/ai/
audit@revisium.com

Изменения в версии 20170612
- Добавлен параметр --smart в командной строке для включения "умного" сканирования
- Обновлена база вирусных сигнатур и файлов исключений

Изменения в версии 20170605
- новые вирусные базы
- в json отчете добавлены уязвимости

Изменения в версии 20170529
- добавлено детектирование уязвимого файла bx_1c_import.php

Изменения в версии 20170527
- новые сигнатуры
- исправлено текстовое сообщение в отчете
- последний параметр в командной строке --eng переключает интерфейс на английский
- пополнен список доверенных скриптов

Изменения в версии 20170519
- исправлена кодировка в отчете

Изменения в версии 20170504
- новые вирусные сигнатуры
- внешние php-обработчики (плагины для сканера): начало работы, завершение сканирования, прогресс, ошибки
- более удобный формат отображения данных в текстовой версии отчета
- отслеживание процесса сканирования через внешний json-файл 
- отчет сканера в json-формате

Изменения в версии 20170326
- новые вирусные сигнатуры

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

Изменения в версии 20170217
- добавлен детект версии PHPMailer в Joomla
- исправлена проверка версии в vBulletin (фикс от kerk)
- ускорение за счет "умного сканирования" кэш-файлов
- уменьшено число ложных срабатываний
- новые сигнатуры и база whitelist

Изменения в версии 20170110
- обновлена база данных вредоносных скрипт и список исключений
- детектируется уязвимый скрипт PHPMailer

Изменения в версии 20161225
- обновлена база данных вредоносных скрипт и список исключений
- добавлена оптимизация процесса сканирования в "smart" режиме: повышение скорости и минимизация ложных срабатываний
- изменен механизм исключения файлов из списка .adirignore (теперь можн исключать не только каталоги, но и файлы)

Изменения в версии 20161127
- обновлена база данных вредоносных скрипт и список исключений

Изменения в версии 20161119
- обновлена база данных вредоносных скрипт и список исключений
- исправлены сниппеты в результатах сканирования
- пропущенные php файлы больше 600Кб отображаются в "красной секции" отчета

Изменения в версии 20161110
- обновлена база данных вредоносных скрипт и список исключений
- исправлена ошибка в vps_docroot.php скрипте

Изменения в версии 20161104
- обновлена база данных вредоносных скрипт и список исключений

Изменения в версии 20161024
- обновлена база данных вредоносных скрипт и список исключений

Изменения в версии 20160817
- обновлена база данных вредоносных скрипт и список исключений
- удалены из отчета списки двойных расширений

Изменения в версии 20160720
- добавлены новые сигнатуры вредоносного кода и файлы "белого списка" 

Изменения в версии 20160701
- добавлены новые сигнатуры вредоносного кода и файлы "белого списка" 

Изменения в версии 20160515
- добавлены новые сигнатуры вредоносного кода и файлы "белого списка" 
- добавлены файлы с расширением .php7 и .pht в список обязательных для сканирования

Изменения в версии 20160324
- добавлены новые сигнатуры вредоносного кода и файлы "белого списка" 

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

Изменения в версии 20160305
- добавлен параметр --scan для проверки только определенного списка расширений
- пополнена база данных "белого списка" скриптов
- добавлены новые сигнатуры вредоносных скриптов
- исправлена ошибка обработки "белого списка" для фишинговых страниц

Изменения в версии 20160227
- пополнена база данных "белого списка" скриптов
- добавлены новые сигнатуры вредоносных скриптов

Изменения в версии 20160219
- выявлена ошибка работы со списком файлов-исключений (AI-WHITELIST.db), необходимо установить short_open_tag=on (php -d short_open_tag=on ai-bolit.php ...)
- добавлены новые сигнатуры вредоносных скриптов
- добавлены новые CMS в "белый список"

Изменения в версии 20160202
- новый механизм исключений (белый список файлов CMS): AIBOLIT-WHITELIST.db со стойкими хэшами и новыми CMS
- новые сигнатуры вирусов, фишинговых страниц, хакерских шеллов
- исправлена ошибка конвертации из UTF-16 кодировок
- вывод статуса при ошибке обработки файла (слева от имени файла)
- определение уязвимости в rsform
- исправлены пути при замене префиксов addprefix/noprefix
- изменены параметры memory_limit и уровня вложенности pcre

Изменения в версии 20151227
- новые сигнатуры вирусов, фишинговых страниц, хакерских шеллов
- новый формат текстового отчета
- определение уязвимых скриптов в CMS Joomla
- исправлена ошибка замены префикса адреса 

Изменения в версии 20151206
- новые сигнатуры вирусов, фишинговых страниц, хакерских шеллов
- исправлен ряд ошибок в работе исключений
- добавлено определение уязвимого скрипта Joomla com_adsmanager

Изменения в версии 20151113
- новые сигнатуры вирусов, фишинговых страниц, хакерских шеллов
- изменение базы данных сигнатур, минимизация ложных срабатываний в обычном режиме сканирования
- новые aknown файлы для joomla и wordpress
- исправлены ошибки формирования отчета

Изменения в версии 20151008
- контроль целостности (изменений в файлах)
- новые сигнатуры вирусов
- изменение формата отчета (блок "реклама, ссылки, дорвеи")
- новые aknown файлы для joomla и wordpress

Изменения в версии 20150901
- режим "умного сканирования": ускоренная проверка медиа-файлов и документов
- удаление паролей из конфигурационных файлов при помещении в архив карантина
- регистронезависимый параметр --skip (расширения jpg и JPG - одно и тоже)
- параметр --with-2check для работы с файлом AI-DOUBLECHECK.php
- новые сигнатуры вирусов и хакерских скриптов
- exit code зависит от результатов сканирования
- новые aknown файлы для wordpress и joomla
- замена пути в отчете при сканировании
- запуск нескольких экземпляров сканера из одного каталога

Изменения в версии 20150803

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

Изменения в версии 20150703

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

Изменения в версии 20150701
- новые сигнатуры
- сканирование неограниченного числа файлов
- сканирование в один проход (не формирует список файлов для сканирования и не показывает оставшееся время)
- оптимизация сканирования под ОС Windows
- выполнение команды после завершения сканирования
- исправление ошибки обхода символических ссылок

Изменения в версии 20150615
- новые сигнатуры
- новые aknown файлы для Wordpress, Joomla, MODx
- добавлена опция исключения расширений из списка для сканирования
- оптимизирован процесс проверки файлов
- добавлена проверка на минимальную версию PHP для запуска
- исправлена работа параметров
- увеличено число файлов, определяемых как дорвей

Изменения в версии 20150508
- новые сигнатуры
- исправлена ошибка оптимизированного поиска
- исправлена ошибка сканирования через браузер
- добавлены aknow файлы для wordpress, joomla, magento 

Изменения в версии 20150329
- новые сигнатуры
- изменен процесс сканирования и отчет для блока "предупреждения"  

Изменения в версии 20150319
- добавлены новые опции в скрипт: выбор файла .aknown для сканирования и установка типа сканирования (обычный, эксперт, параноидальный)
- оптимизирована работа с файлами
- исправлены ошибки определения некоторых уязвимых скриптов  

Изменения в версии 20150317 
- новый дизайн отчета
- детектирование уязвимых скриптов (timthumb, uplodify, fckeditor, phpmyadmin и др.)
- переработан и оптимизирован алгоритм сканирования
- появилась возможность быстрой замены дизайна отчета (для партнеров с коммерческой лицензией)
- добавлены новые whitelist файлы для Wordpress, Joomla, Drupal, DLE, Bitrix
- добавлены новые сигнатуры

Изменения в версии 20150104
- большое количество новых сигнатур вирусов, шеллов, дорвеев, фишинговых страниц
- белые списки aknown для Wordpress, Joomla

Изменения в версии 20141013
- большое количество новых сигнатур вирусов, шеллов, дорвеев, фишинговых страниц
- белые списки aknown для Wordpress 4.0, Joomla 2.5.26 и 3.3.6, opencart 1.5.6.4, ocstore 1.5.5.1.2


Изменения в версии 20140901
- пополнена база новых сигнатур вирусов, шеллов, дорвеев
- улучшена производительность сканирования
- добавлены несколько эвристик для поиска бэкдоров

Изменения в версии 20140810
- большое количество новых сигнатур вирусов, шеллов, дорвеев, фишинговых страниц
- отдельная секция с обнаруженными фишинговыми страницами
- отображение номера строки, в котором обнаружен вредонсоный код (в начале сниппета)
- генерация отчета по списку критических замечаний в тестовом формате (при установленной опции --list или -l)
- поддержка кодировки utf8 и utf16 при сканировании
- небольшая оптимизация производительности
- исправлены ошибки в детектировании hex/oct последовательностей
- белые списки aknown для Wordpress 3.9.2, Joomla 2.5.24/3.3.3, Drupal 7.31, InstantCMS 1.10.4 / 2.1.1, 
- информационные блоки про список подозрительных файлов и пустых ссылок отключены по-умолчанию

Изменения в версии 20140612
- Переработана база сигнатур, минимизировано число ложных срабатываний
- Три режима работы "обычный" (AI_EXPERT = 0), "эксперт" (AI_EXPERT = 1), "параноидальный" (AI_EXPERT = 2)
- Добавлены .aknown файлы для wordpress 3.9.1, joomla 3.3.1 / 2.5.21, dle 10.2
- Традиционно новые сигнатуры вирусов и хакерских скриптов
- Исправлено несколько ошибок, оптимизирована работа скрипта

Изменения в версии 20140417
- Удобный интерфейс для работы с отчетом (для данной возможности нужно иметь подключение к интернету во время просмотра отчета):
  * доступны фильтр/поиск по подстроке
  * доступны сортировка по типам сигнатур, по дате и времени, по размеру, по контрольной сумме
  * доступно скрытие строк (файлов) с одинаковыми сигнатурами 
- Точное определение версий 13 типов cms (см. в конце отчета)
- Добавлены .aknow файлы для wordpress 3.9, drupal 6.28, 6.31, 7.27, 7.4, 7.5, 7.6, 7.7, 8.0.alpha, 9.x.dev
- Добавлен файл tools/aknow_producer.php, позволяющий генерировать свои .aknown файлы.
- По-умолчанию сделан режим "Эксперт". Кого пугает много "красного цвета", можно перевести скрипт в режим "экспресс-сканирование" согласно инструкции
- Традиционно новые сигнатуры вирусов и хакерских скриптов

Изменения в версии 20140303
- Изменено форматирование отчета, добавлены счетчики найденных вредоносов
- Добавлены .aknown файлы для Wordpress 3.8.1, DLE 10.1, Bitrix 14, Joomla 2.5.18 и Joomla 3.2.2
- Новые сигнатуры
- Уменьшено кол-во ложных срабатываний для некоторых сигнатур

Изменения в версии 20140125
- Новые сигнатуры
- Уменьшено кол-во ложных срабатываний для некоторых сигнатур

Изменения в версии 20140103
- Новые сигнатуры
- работа с UTF8 файлами
- исправлена ошибка в декодировщике 
- режим работы: "обычный" и "эксперт"
- добавлены .aknown файлы для wordpress 3.7.1 / 3.8, modx 2.2.8, joomla 2.5.17 / 3.2.1

Изменения в версии 20131025
- Новые сигнатуры шеллов и вирусов
- Уменьшено кол-во ложных срабатываний
- Новые .aknown файлы
- Небольшое изменение в отчете относительно отображения двойных расширений

Изменения в версии 20130910
- Исправлена ошибка ложных срабатываний

Изменения в версии 20130909
- Добавлены новые сигнатуры вирусов и шеллов
- Добавлены .aknown файлы для Joomla 2.5.14 / 3.1.5, Wordpress 3.6
- Добавлены новые сигнатуры в .aignore файл

Изменения в версии 20130723
- Добавлены новые сигнатуры вирусов и шеллов
- Добавлены .aknown файлы для Bitrix, Joomla, Wordpress, DLE

Изменения в версии 20130609
- Добавлены новые сигнатуры вирусов и шеллов (все свежие из массовых взломов Joomla, DLE)
- Добавлен параметр -q, позволяющий выполнять сканирование без вывода в консоль лога. Выводит "1", если найдено что-то нехорошее. Сделано для автоматического тестирования на хостинге. 
- Добавлен механизм перепроверки файлов с вредоносным кодом. При первом сканировании создается файл AI-BOLIT-DOUBLECHECK.php со списком файлов с вредоносным кодом, при втором запуске проверяются файлы только из этого списка. Также можно эту фичу использовать для проверки только определенного списка файлов.

Изменения в версии 20130519
- Добавлены новые сигнатуры вирусов и шеллов
- Детектирование двойных расширений .php.<что-то>
- Добавлен аргумент -j (--file) для сканирования конкретного файла
- Добавлены .aknown файлы для Joomla 2.5.10, 2.5.11, 3.0.3, DLE 9.8

Изменения в версии 20130401
- Исправления ошибок (Спасибо Александру Кихаеву и Роману Петренко за вклад)
- Добавлен эвристический анализ обфусцированных скриптов (в тестовом режиме)
- Двухязыковый интерфейс (русский, английский)
- Новые сигнатуры
- Добавлены файлы aknown для Joomla 2.5.9
- Добавлены файлы в .aignore и адреса в .aurlignore
- Много всяких мелких улучшений в алгоритмах определения вредоносного кода

Изменения в версии 20130201
- новые сигнатуры
- файл отчета запрещен к индексированию
- в имени файла отчета добавляется случайное число для защиты от подбора имени
- добавлен .aknown файл для Wordpress 3.5.1

Изменения в версии 20130122 
- новые сигнатуры, добавлено несколько исключений из ложных срабатываний
- новые доверенные файлы от cms: .aknown.* (instantcms, invision power board)
- ограничение на максимальное кол-во пустых ссылок в отчете (сейчас отображается 1000, чтобы сэкономить память)
- исправлена ошибка с подсчетом кол-ва сканируемых файлов
- разделен отчет "подозрительных" файлов: подозрительные .php и подозрительные .js
- отображается список скрытых файлов (начинающихся с "точки")

Изменения в версии 20121221 (теперь больше вариантов опознать вредоносный код и меньше ложных срабатываний)
- полностью переделан механизм поиска вредоносного кода, сигнатуры основаны на "гибких паттернах" (регулярных выражениях)
- добавлен расширенный механизм исключений (доверенные файлы для DLE, WORDPRESS и JOOMLA в файлах .aknown.*; доверенные URL в файле .aurlignore)
- добавлена настройка, позволяющая фильтровать то, что будет в отчете (маски отчета)
- много новых и свежих сигнатур шеллов, вирусов и дорвеев
- исправлена ошибка поиска невидимых ссылок
- отображение в отчете найденных символических ссылок
- отображение в консоли статистики по найденным проблемам

Изменение в версии 20121106
- новые сигнатуры, включая несколько троянов в бесплатных темах wordpress
- автоопределение версии Wordpress, DLE, ShopScript Premium и Bitrix
- поиск "чувствительных" файлов и директорий (раскрывающих версии установленного ПО, временные файлы с экспериментами), которые следовало бы удалить
- исправлен Warning с ereg()

Изменение в версии 20121014
- новые сигнатуры шеллов и вирусов (170 новых сигнатур шеллов и вирусов)
- игнорирование символических ссылок на каталоги и файлы (на случай зацикливания)
- добавился блок показа конфигурации PHP при запуске из браузера
- реализована проверка на тип сборки PHP. Из командной строки работает только когда есть php-cli.
- улучшена обработка внешних include
- новое имя файла отчета: AI-BOLIT-REPORT-<дата>_<время>.html
- улучшенное отображение прогресса сканирования в командной строке
- добавлен режим отладки скрипта DEBUG_MODE

Изменение в версии 20120902
- обновлена база сигнатур
- часть директорий можно исключить из сканирования, добавив их в .adirignore файл (поддерживаются фрагменты и метасимволы регулярных выражений) 
- улучшен алгоритм поиска подозрительных файлов с сигнатурами <?php и <%
- добавлена возможность запуска полного сканирования из браузера через аргумент "&full"
- добавлен поиск исполняемых файлов linux в сканируемых папках

Изменение в версии 20120729
- обновлена база сигнатур
- изменен алгоритм детектирования подключений внешних скриптов

Изменение в версии 20120715
- снипеты у шеллов
- обнаружение вставок вида include 'http://hckerexternal.site.ru/1.txt'
- улучшена проверка наличия кода php в непхп файлах и поиск base64 последовательностей
- новые сигнатуры
- исправление ошибок

Изменение в версии 20120701
- улучшена обработка невидимых ссылок
- новые сигнатуры

Изменения в версии 20120628
- ускорена работа с файлами
- новые сигнатуры

Изменения в версии 20120624
- небольшие исправления
- новые сигнатуры

Изменения в версии 20120623
- добавилось несколько десятков новых сигнатур шеллов
- улучшена обработка невидимых ссылок
- теперь по-умолчанию при запуске из командной строки выполняется сканирование всех файлов на сигнатуры


Изменения в версии 20120622

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


Изменения в версии 20120614 
- добавлены 3 сигнатур шеллов
- добавлена проверка на PHP CGI Exploit в .htaccess


Изменения в версии 20120613 
- добавлены 6 сигнатур шеллов
- добавлены 3 сигнатуры JS вирусов
- добавил вызов set_time_limit(0) в скрипт
- исправлена работа с расширениями для php
- учитывается .phtml при проверке на сигнатуры, добавлено расширение .khtml
- добавлено детектирование auto_append_file/auto_prepend_file в .htaccess
- вывод списка найденных невидимых ссылок
- добавил определение stripos, если ее нет в PHP
- исправлено несколько мелочей
 

Изменения в версии 20120512
- добавлен алгоритм дешифрования ASCII последовательностей перед проверкой сигнатур
- три новых сигнатуры JS вируса
- одна сигнатура шелла
- добавлена проверка .phtml и .shtml по-умолчанию
- исправлена ошибка отображения файлов с невидимыми ссылками

Изменения в версии 20120430
- новые сигнатуры вирусов и шеллов
- исправлена ошибка сканирования списка файлов
- исправлена ошибка подсчета файлов в каталоге для вычисления дорвеев
- корректная работа с русскими сообщениями при работе через веб и при запуске из командной строки
- выставляется принудительно кодировка utf-8
- добавлены сниппеты для javascript вирусов и некоторых видов редиректа в .htaccess
- немного улучшен дизайн отчета
- сообщение о найденных больших файлах выдается только при полном сканировании

Изменения в версии 20120422
- добавлен режим работы из командной строки "php ai-bolit.php --help"
- при запуске из командной строки: сохранение отчета в файл или отправка его по email, прогресс выполнения
- красивый размер файлов
- затраченное время на сканирование
- ограничение на сканирование файлов меньше указанного размера (по-умолчанию, < 10 Mb)

Изменения в версии 20120418
- новые сигнатуры шеллов
- новые сигнатуры javascript вирусов
- добавлена проверка на стартовые сигнатуры PHP в не-php файлах. Например, когда встраивают PHP код в .htaccess.
- в предупреждениях показывается фрагмент кода и маркер найденной подозрительной последовательности

Изменения в версии 20120414
- переработан и оптимизирован алгоритм обхода папок и сканирования
- функция scandir заменена стандартной opedir/readdir

Изменения в версии 20120413
- добавлена сигнатура спам-скрипта
- вместе с файлами отображается дата и время создание файла
- файлы .js добавлены к списку сканируемых обязательно
- добавлена эвристика для анализа троянов в javascript 
- добавлена проверка кол-ва директорий дорвеев
- запуск с паролем из браузера и без пароля из командной строки

Изменения в версии 20120411
- добавлены проверки на Mainlink, SetLinks, Liex
- добавлены 15 новых шелл-сигнатуры
- добавлены проверки на вредоносный код, инжектируемый в Joomla
- сигнатуры закрыты в base64, чтобы не ругались антивирусы
- добавлена проверка на актуальность версии (актуальность = 1 неделя)
- добавлен блок "Donation"

Изменения в версии 20120410
- добавлены сигнатуры шести новых шеллов
- проверка на то, что текущая директория доступна для чтения

Изменения в версии 20120409

- добавлена задержка при сканировании SCAN_DELAY (можно увеличить в скрипте)
- добавлены новые сигнатуры
- закомментированные строки в .htaccess не учитываются при анализе
- добавлены расширения .tpl, .inc в список обязательных для сканирования
- добавлена кодировка windows-1251

Изменения в версии 20120408

- расширена база сигнатур
- анализ кода продажных ссылок на сайте
- предупреждение о большом кол-ве .php или .html файлов в каталоге
- причесал UI
- анализ .htaccess на предмет редиректов
- анализ .htaccess на предмет дорвеев

Более старые изменения

- здесь летопись обрывается...