Компьютерные вирусы научились поражать в том числе и сайты. В этой статье мы рассмотрим, как удалить вирус с сайта и как не допустить его заражение.
Прежде, чем мы расскажем о том, как удалить полностью вирус с сайта, вы должны понять, как они туда попадают. Инфицирование виртуального ресурса говорит только об одном - наличие какой-либо уязвимости. Другими словами, ваша задача - не только найти и удалить вирусы с сайта, но и устранить уязвимость, благодаря которой он попал на веб-страницы. О поиске уязвимостей мы еще поговорим, а теперь приступим к удалению вируса.
Резервные копии на платформе xelent.cloud делаются с глубиной 7, 14, 21 и 28 дней (то есть будут храниться копии за последние 7, 14, 21 и 28 дней соответственно). Если вам повезло, вы быстро заметили работу вредоносного кода, то вам не придется думать о том, как удалить вирус с сайта. Вы можете восстановиться из резервной копии, где еще нет вредоносного кода. Например, если вчера было все хорошо, а сегодня ресурс был инфицирован (вы это увидели, например, по всплывающему окну на веб-страницах или по перенаправлению на другие ресурсы, или же вообще обнаружили изменение главной страницы), то самое простое, что можно сделать - восстановиться из резервной копии.
Рис. 1. Конфигурация резервного копирования: резервное копирование с глубиной в 7 дней для сервера с диском на 20 Гб обходится всего в 60 рублей в месяц.
Понятно, что чем выше глубина резервного копирования, тем больше шансов на восстановление. Конечно, все материалы, которые были внесены с момента создания выбранной резервной копии, будут потеряны. Но это меньшее из зол. Материалы, как правило, есть на компьютере, так что их можно быстро восстановить при необходимости.
Для восстановления из резервной копии перейдите в панель управления, выберите сервер, перейдите в раздел Backup, перейдите на вкладку Восстановить из копии и выберите интересующую вас резервную копию (рис. 2). Включите флажок и нажмите кнопку Восстановить для начала процесса восстановления.
Рис. 2. Выбор резервной копии для восстановления
Если восстановленная резервная копия оказалась "чистой" (то есть в ней нет вируса), вам повезло. Однако "исцеление" веб-ресурса - это только половина пути. Нужно еще найти уязвимость и закрыть ее.
А вот если резервное копирование было выключено или же вирусное приложение на ресурс попало давно, то при восстановлении из резервной копии восстановится и вредоносный код. В этом случае перед тем, как целиком удалить вирус сайта, придется искать его вручную.
Опять-таки, можно запустить какой-либо антивирусный сканер. В Windows можно запустить предпочитаемый вами антивирус (например, тот же CureIt). Если у вас Linux, то перейдите в каталог с документами веб-сервера (htdocs) и запустите его командой:
clamscan -r -i
Если антивирус clamav не установлен, то установите его (команды для Ubuntu):
sudo apt install clamavПервая команда устанавливает антивирус, вторая - обновляет его базы.
На рис. 3 показан отчет антивируса clamav. Найден файл с вирусным ПО. Таких файлов может быть много. Не спешите удалять вирусы с сайта: их нужно проанализировать. Если есть возможность (если исходный код не зашифрован), изучите исходный код, чтобы понять, как работает вредоносная программа. Если в программировании вы ничего не понимаете или исходники зашифрованы, то просто переместите эти файлы в другой каталог файловой системы для их дальнейшего анализа специалистами. Также определите, какие файлы относятся к веб-страничкам (которые были в комплекте вашей CMS), а какие - новые.
Рис. 3. Отчет антивируса ClamSV
Если файлы относятся к CMS, то придется повозиться перед тем, как удалить вирус с сайта, т.к. их ликвидация нарушит нормальную работу ресурса. Нужно проверить их на наличие стороннего кода, а сделать это можно путем их сравнения с оригинальными файлами из дистрибутива CMS, и удалить этот код. В Windows для этого можно использовать программу WinDiff, в Linux - использовать команду diff.
Нужно понимать, что само по себе наличие файлов с вредоносным ПО (как изображено на рис. 3) еще ничего не означает. Удалить вирусы с сайта, просто ликвидировав его, не получится. Нужно понять, какой код вызывает эти файлы. Возможно, он скрыт в базе данных или в других файлах вашего проекта. Чтобы полностью удалить вирус с сайта, нужно понимание принципов работы используемой CMS.
Понять, как работает вредоносная программа и как она заражает ресурсы, можно, прочитав ее описание в Интернете. Название вирусного софта сообщит вам антивирус. Какие-либо рекомендации об удалении вируса с сайта привести сложно, поскольку они индивидуальны и зависят от используемой CMS и от самой вредоносной программы, конечно же.
Поможет также и исследование исходного кода после инфицирования в браузере. Зайдите на ресурс и откройте его исходный код. Если вы хоть что-то в этом понимаете, вы обязательно заметите лишний код, которого не должно быть. Ликвидировав его, удалить вирусы с сайта не получится. Затем ваша задача - определить, что генерирует этот код. Возможно, это какой-то PHP-сценарий, а может код содержится в базе данных. Многие веб-ресурсы хранят в базе данных контент, который отправляется в браузер. Вредоносные программы могут добавить к этому контенту JavaScript-код, который и будет производить всякие неприятные действия вроде отображения какой-то заставки. Если своими силами удалить полностью вирус с сайта не получается, вы всегда сможете обратиться к специалистам xelent.cloud, которые за дополнительную плату помогут вам исправить ситуацию.
Некоторые рекомендации, позволяющие избежать появления вирусов на сайте:
Рис. 4. Найдена уязвимость: не применен один из патчей безопасности
С четырьмя пунктами все относительно понятно. Ограничить доступ к панели управления веб-ресурсом можно, добавив в файл .htaccess следующие строки:
<Files wp-login.php>Здесь мы предполагаем, что используется CMS WordPress и мы закрываем доступ к wp-login.php всем пользователям, кроме тех, кто пришел с указанного IP-адреса. Если у вас динамический IP-адрес, то указывайте его не полностью, например, 192.168.1. Если нужно указать несколько IP-адресов, укажите их через пробел.
Какие права доступа считаются правильными? Во-первых, нужно, чтобы все файлы и каталоги принадлежали пользователю, от имени которого работает ваш веб-сервер. В Linux веб-сервер Apache часто настраивается так, что работает от имени пользователя www-data, поэтому перейдите в каталог документов веб-сервера (htdocs) и введите команду:
chown -R www-data:www-data .Данная команда рекурсивно меняет владельца всех файлов и каталогов сайта на www-data.
Во-вторых, нужно использовать рекомендации конкретной CMS относительно установки прав доступа. Как правило, на все каталоги, в которые не предусмотрена запись, нужно установить права 500, а на все файлы, изменение которых не планируется - 400:
find . -type f -exec chmod 400 {} \;Для файлов и каталогов, которым необходим доступ "чтение запись" (600 и 700 соответственно) для обеспечения нормального функционирования виртуального ресурса (каталоги, в которые загружаются служебные данные, изображения и т.д.), нужно изменить права так:
find var/ -type f -exec chmod 600 {} \;Данные команды приведены в качестве примеров рекурсивного применения тех или иных прав доступа к файлам (-type f) и каталогам (-type d). Не нужно вводить их на своем сервере! Следуйте только рекомендациям разработчиков CMS (как правило, такие есть для каждой CMS, но пользователи начинают их соблюдать, когда случается что-то плохое) и устанавливайте права доступа так, как сказано в этих рекомендациях.
Надеемся, что данная статья поможет вам не только удалить вирус с сайта, но и не допустить его появления.
Возможно, вас также заинтересует: