Мастер-класс по работе со сканером AI-BOLIT

Сканер вредоносного кода AI-BOLIT обладает богатым функционалом, который в полной мере можно оценить при использовании в режиме командной строки, по SSH или локально на *nix/mac os/cygwin. Если у вас есть VPS сервер и вы регулярно проверяете свои сайты сканером (вы все делаете правильно), рекомендуем ознакомиться с примерами из статьи, возможно, они сэкономят вам время или вы узнаете что-то новое о запуске процессов и скриптов в различных режимах.

секреты работы со сканером AI-BOLIT

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

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

Просканировать все виртуальные хосты на VPS

Список всех виртуальных хостов (запускаем сканер из каталога ai-bolit)

php ../tools/vps_docroot.php

Сканирование всех хостов в 1 поток

php ../tools/vps_docroot.php | xargs -P 1 -I {} php ai-bolit.php --report=`pwd`/REPORT-@PATH@.html --path={}

Сканирование всех хостов параллельно, без ограничение на число потоков (для многоядерных серверов)

php ../tools/vps_docroot.php | xargs -P 0 -I {} php ai-bolit.php --report=`pwd`/REPORT-@PATH@.html --path={}

Просканировать сайты внутри пользовательского каталога

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

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

Отчеты сканирования разместить в текущем каталоге, обычный режим сканирования

find /var/www/user1/data/www -maxdepth 1 -type d -exec php ai-bolit.php --report=`pwd`/REPORT-@PATH@.html --path={} --mode=1 \;

Запустить сканирование в фоновом режиме (запустить и закрыть окно терминала без прерывания сканирования)

Вариант №1 (используя отвязку от терминала)

nohup php -q ai-bolit.php > scanning.log 2>&1 &

Вариант №2 (используя screen)

screen -d -m php ai-bolit.php

Запустить сканирование выборочного списка файлов

Просканируем все php, php5, phtml файлы, у которых изменились параметры за последнюю неделю (новые и измененные)

find /var/www/ -type f -name '*.ph*' -ctime -7 > AI-BOLIT-DOUBLECHECK.php
php ai-bolit.php --with-2check

Просканировать файлы и все подозрительные запаковать в архив .zip с паролем

rm AI-BOLIT-DOUBLECHECK.php
php ai-bolit.php --with-2check --quarantine

Выполнить сканирование только критических файлов сайта

php ai-bolit.php --scan=php,phtml,pht,suspected,pl,cgi,htaccess,tpl,js,htm,html

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

Загрузим по завершении сканирования полученный отчет на сторонний сервер по SFTP

php ai-bolit.php --report=REPORT.html --cmd="scp REPORT.html user@myhost:~"

Запакуем по завершении отчеты с помощью gzip

php ai-bolit.php --report=/tmp/REPORT-@PATH@.html --cmd="gzip /tmp/*.html"

Манипуляции с отчетом

Если сканируем сайт на стороннем сервере, удобно заменять пути к файлам в результирущем отчете

php ai-bolit.php --addprefix=. --noprefix=/home/scan --path=/home/scan/ --report=REPORT.html --mode=2 --quarantine

Сформировать только текстовую версию отчета

php ai-bolit.php --list=REPORT.txt --report=REPORT.html --cmd="rm REPORT.html"

Проверяем код выхода exit code

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

exit code = 0 - вредоносов не обнаружено
exit code = 1 - предупреждения
exit code = 2 - обнаружены вредоносные скрипты

Если нет командной строки?

Что делать пользователям shared-хостингов, которые не могут запустить сканер непосредственно на хостинге? Есть версия сканера для Windows, которая не требует дополнительной установки и настройки: скачал, распаковал, запустил. Кроме того, прогрессивные хостеры уже начали интегрировать сканер AI-BOLIT в свои панели управления или сканировать сайты по запросу пользователей.

Наши услуги ИБ

Акция «3 по цене 1»
Подключите до 3х сайтов к услуге "Сайт под наблюдением" всего за 7500 2500 / мес. Скидка 66% только до конца года.
Акция действует только до 31 декабря 2017 года.
При подключении услуги "Сайт под наблюдением" для одного сайта, второй и третий на том же аккаунте подключаются бесплатно. Последующие сайты на аккаунте — 1500 руб в месяц за каждый сайт.