Собственный хостинг: Антивирус для сайта (10часть)

Антивирус для web сайтов, вот с такого казалось бы нескромного высказывания хотелось бы начать статью. Сразу хочу оговориться, их нет и вряд ли когда-то в обозримом будущем появится полноценный антивирус для сайтов. Тут целый ряд причин: начиная с узкой специализации рынка, специфичности товара, уникальность каждого движка сайтов, особенности хостингов и т. д. и заканчивая ответственностью. Ведь по мнению 90% пользователей антивирусы должны «лечить» злобные вирусы.

Анитивирус для сайта

Но нет, они просто удаляют пораженные файлы, и уж тем более ни один из антивирусов кроме avz4 не удаляет их последствия. Да и то, последнее — больше утилита для админов, чем антивирус в полной степени. И если у нас дома это чревато потерей нашей любимой игрушки и пары фоток, то тут все не так просто. В нашем случае удаление php или js файла может привести к полному краху сайта. А если еще и отсутствует бэкап сайта, так и вовсе потерять весь сайт.

Если же вирус удалять из тела php или js то тут нужно учесть все возможные нюансы. Помножим это на сотни вирусов, движков, варианты хостингов, получим что рано или поздно антивирус напортачит, стоит это сделать хоть 1 раз и ваш сайт стоимостью в 10 000 долларов пропал. Кто после этого окажется виноват? Правильно поэтому лечить ваш сайт должен специалист ручками. Поскольку мы будем делать антивирус на основе утилиты ai-bolit.php то и советовать специалистов по удалению вирусов буду естественно себя их и себя.

Для начала об утилите пару слов, полностью о ней вы смежите прочитать у ребят создавших ее. В двух словах мы будем использовать базу данных вирусов, которая любезно пополняется фанатами. Мы исключим все веб отчеты, поскольку они нужны лишь при лечение сайта, а не при мониторинге. Исключим все возможные ложные срабатывания, оставим только на 100% срабатывающие сигнатурам случаи, когда нам придется обратить внимание на сайт. Естественно, такой подход не гарантирует полноценной защиты. Но позволяет автоматизировать большую часть работы. А это не так уж и плохо.

  • Удаляем остатки от прошлого обновления
  • Качаем свежие базы.
  • Создаем список всех ваших сайтов
  • Сканируем каждый по отдельности
  • Создаем каждому сайту свой отчет
  • Собираем отчеты в кучку ищем в них нужные строки с ответом больше найденные вирусы более «0»
  • Отправляем все это счастье на почту админу раз в неделю в виде отчета.

touch /bin/ai-bolit 
chmod 700 /bin/ai-bolit 
vim 
#!/bin/sh
# Пть к  каталогу с сайтами
DATA_DIR=/var/www

# почта на которую будут уходить отчеты
MY_EMAIL=ВАШ@ЕМАИЛ.ru
############################################


cd /tmp
#переходим  в место сборки
echo  Удаляем старые базы антивируса и логи

rm -f virustest.log
rm -f index.php\?*
rm -rf ai-bolit

echo Скачиваем страничку сайта в ней ищем ссылку на файл загрузки, передаем его в weget  и качаем. -q скрывает вывод
wget -q -O -  http://www.revisium.com/ai/ | grep -o http://www.revisium.com/ai/index.php?q=[0-9]* | wget -q -i -

echo Распаковываем архив
unzip index.php\?q* -d /tmp/ai-bolit  >> /dev/null
echo Начинаем сканирование


cd $DATA_DIR

LIST=`ls  -d *.*`
#!/bin/sh


DATA_DIR=/var/www
MY_EMAIL=ВАШ@ЕМАИЛ.ru

cd $DATA_DIR

LIST=`ls  -d *.*`


for ELEMENT in $LIST

     do



        test ! -d $DATA_DIR/$ELEMENT/log && { mkdir -p $DATA_DIR/$ELEMENT/log  ; } # проверяем есть ли папка лог если нет создаем

                php -q /tmp/ai-bolit/ai-bolit/ai-bolit.php $DATA_DIR/$ELEMENT/web/ | grep "Building list of" | grep -v 0 > $DATA_DIR/$ELEMENT/log/ai-bolit.log
echo "____________________________________________"
echo "Поиск вирусов на сайте"  " http://$ELEMENT"
cat $DATA_DIR/$ELEMENT/log/ai-bolit.log | grep "Building list of shells" | grep -v 0
echo

echo "____________________________________________"  >> /tmp/virustest.log
echo " http://$ELEMENT"  >> /tmp/virustest.log
cat $DATA_DIR/$ELEMENT/log/ai-bolit.log | grep "Building list of shells" | grep -v 0 >> /tmp/virustest.log
echo
# udalayem report
rm  $DATA_DIR/$ELEMENT/web/AI-BOLIT-REPORT*.html
 done
                         exit 0

(echo "Subject:Проверка на вирусы"; cat /tmp/virustest.log;) | sendmail viktor@7877796.ru

echo ""
echo "Проверка закончена, отчет отправлен на"$MY_EMAIL 

# Конец скрипта ###################################

Оставить комментарий