Собственный хостинг: Антивирус для сайта (10часть)
Антивирус для web сайтов, вот с такого казалось бы нескромного высказывания хотелось бы начать статью. Сразу хочу оговориться, их нет и вряд ли

Но нет, они просто удаляют пораженные файлы, и уж тем более ни один из антивирусов кроме avz4 не удаляет их последствия. Да и то, последнее — больше утилита для админов, чем антивирус в полной степени. И если у нас дома это чревато потерей нашей любимой игрушки и пары фоток, то тут все не так просто. В нашем случае удаление php или js файла может привести к полному краху сайта. А если еще и отсутствует бэкап сайта, так и вовсе потерять весь сайт.
Если же вирус удалять из тела php или js то тут нужно учесть все возможные нюансы. Помножим это на сотни вирусов, движков, варианты хостингов, получим что рано или поздно антивирус напортачит, стоит это сделать хоть 1 раз и ваш сайт стоимостью в 10 000 долларов пропал. Кто после этого окажется виноват? Правильно поэтому лечить ваш сайт должен специалист ручками. Поскольку мы будем делать антивирус на основе утилиты
Для начала об утилите пару слов, полностью о ней вы смежите прочитать у ребят создавших ее. В двух словах мы будем использовать базу данных вирусов, которая любезно пополняется фанатами. Мы исключим все веб отчеты, поскольку они нужны лишь при лечение сайта, а не при мониторинге. Исключим все возможные ложные срабатывания, оставим только на 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 # Конец скрипта ###################################
Оставить комментарий