Ищем и убираем вредоносный код на WordPress. Что такое вредоносный код Как найти вредоносный код в файле

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

Как защитить WordPress от взлома мы рассмотрим в одной из следующих статей, а сейчас я хочу рассказать как проверить сайт WordPress на вирусы и вредоносный код, чтобы убедиться что все в безопасности.

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

Существуют тысячи бесплатных тем для WordPress и различных плагинах и уже здесь может крыться угроза. Одно дело, когда вы скачиваете шаблон с сайта WordPress и совсем другое, когда находите на левом сайте. Недобросовестные разработчики могут встраивать различный вредоносный код в свои продукты. Еще больше риск, если вы скачиваете бесплатно премиум шаблоны, там взломщики уже ничем не рискуя могут добавить какую-нибудь дыру в безопасности, через которую потом смогут проникнуть и сделать то, что им нужно. Вот поэтому так важна проверка wordpress сайта на вирусы.

Проверка wordpress сайта на вирусы

Первое к чему нужно обратиться при проверке сайта не вирусы, это плагины WordPress. Быстро и просто вы можете сканировать свой сайт и найти подозрительные участки кода, на которые стоит обратить внимание, будь они в теме, плагине и самом ядре Wodpress. Рассмотрим несколько самых популярных плагинов:

1. TOC

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

Откройте "Внешний вид" -> "TAC" затем дождитесь пока все темы будут проверены.

2. VIP Scanner

Очень похожий на TOC сканер для тем, но выводит больше подробной информации. Те же самые возможности по обнаружению ссылок, скрытого кода и других вредоносных вставок. Просто откройте пункт VIP Scaner в разделе инструменты и анализируйте результат.

Возможно, достаточно удалить лишние файлы, например, desktop.ini. Или же нужно более подробно посмотреть что происходит в файлах использующих base64.

3. Anti-Malware from GOTMLS.NET

Этот плагин позволяет не только сканировать темы и ядро сайта на наличие вирусов, но и защищать сайт от перебора паролей и различных XSS, SQLInj атак. Поиск выполняется на основе известных сигнатур и уязвимостей. Некоторые уязвимости можно на месте устранять. Чтобы начать сканировать файлы откройте "Anti-Malvare" в боковом меню и нажмите "Run Scan" :

Перед тем как вы сможете запустить сканирование, нужно обновить базы данных сигнатур.

4. Wordfence

Это один из самых популярных плагинов для защиты WordPress и сканирования на наличие вредоносного кода. Кроме сканера, который может найти большинство закладок в коде WordPress, здесь есть постоянная защита от различных видов атак и перебора паролей. Во время поиска плагин находит возможные проблемы с различными плагинами и темами, сообщает о необходимости выполнить обновление WordPress.

Откройте вкладку "WPDefence" в боковом меню, а затем перейдите на вкладку "Scan" и нажмите "Start Scan" :

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

5. AntiVirus

Это еще один простой плагин, который просканирует ваш шаблон сайта на наличие вредоносного кода. Недостаток в том, что сканируется только текущий шаблон, но информация выводится достаточно подробно. Вы увидите все опасные функции, которые есть в теме и затем можете детально проанализировать представляют ли они какую-либо опасность. Найдите пункт "AntiVirus" в настройках, а затем нажмите "Scan the theme templates now":

6. Integrity Checker

Также желательно проверить целостность файлов WordPress, на случай, если вирус уже записался уже куда-нибудь. Для этого можно использовать плагин Integrity Checker. Он проверяет все файлы ядра, плагинов и шаблонов на изменения. В конце сканирования вы увидите информацию об измененных файлах.

Онлайн сервисы

Существует также несколько онлайн-сервисов, которые позволяют проверить сайт wordpress на вирусы или проверить только шаблон. Вот некоторые из них:

themecheck.org - вы загружаете архив темы и можете смотреть все предупреждения о возможных вредоносных функциях, которые в ней используются. Вы можете не только смотреть информацию о своей теме, но и о других темах, загруженных другими пользователями, а также о разных версиях темы. Все что находят плагины, может найти и этот сайт. Проверка wordpress темы тоже очень важна.

virustotal.com - всем известный ресурс, где вы можете проверить свой сайт или файл шаблона на вирусы.

ReScan.pro - проверка WordPress сайта на вирусы с помощью этого сервиса бесплатна, выполняется статический и динамический анализ, чтобы обнаружить возможные редиректы сканер открывает страницы сайта. Проверяет сайт по различным черным спискам.

sitecheck.sucuri.net - простой сервис для сканирования сайта и тем на вирусы. Есть свой плагин для WordPress. Обнаруживает опасные ссылки и скрипты.

Ручная проверка

Ничего не может быть лучше чем ручная проверка. В Linux есть такая замечательная утилита grep, которая позволяет искать вхождения произвольных строк в папке с файлами. Осталось понять что мы будем искать:

eval - эта функция позволяет выполнять произвольный php код, ее не используют уважающие себя продукты, если один из плагинов или тема используют эту функцию почти со стопроцентной вероятностью можно сказать, что там есть вирус;

  • base64_decode - функции шифрования могут использоваться вместе с eval, чтобы спрятать вредоносный код, но они могут применяться и в мирных целях, так что будьте внимательны;
  • sha1 - еще один метод шифрования вредоносного кода;
  • gzinflate - функция сжатия, те же цели, вместе с eval, например, gzinflate(base64_decode(код);
  • strrev - переворачивает строку задом не перед, как вариант может использоваться для примитивного шифрования;
  • print - выводит информацию в браузер, вместе с gzinflate или base64_decode опасно;
  • file_put_contents - сам WordPress или плагины еще могут создавать файлы в файловой системе, но если это делает тема, то уже стоит насторожиться и проверить зачем ей это, так могут устанавливаться вирусы;
  • file_get_contents - в большинстве случаев используется в мирных целях, но может использоваться для загрузки вредоносного кода или чтения информации из файлов;
  • curl - та же история;
  • fopen - открывает файл для записи, мало ли для чего;
  • system - функция выполняет команду в системе Linux, если это делает тема, плагин или сам wordpress, скорее всего, там вирус;
  • symlink - создает символические ссылки в системе, возможно, вирус пытается сделать основную файловую систему доступной из вне;
  • copy - копирует файл с одного места в другое;
  • getcwd - возвращает имя текущего рабочего каталога;
  • cwd - изменяет текущую рабочую папку;
  • ini_get - получает информацию о настройках PHP, чаще в мирных целях, но мало ли;
  • error_reporting(0) - отключает вывод любых сообщений об ошибках;
  • window.top.location.href - javascript функция, используемая для редиректов на другие страницы;
  • hacked - так, на всякий случай, проверяем, вдруг, хакер сам нам решил рассказать.

Вы можете подставлять каждое отдельное слово в такую команду:

grep -R "hacked" /var/www/путь/к/файлам/wordpress/wp-content/

Или же использовать простой скрипт, который будет искать все слова за раз:

values="base64_decode(
eval(base64_decode
gzinflate(base64_decode(
getcwd();
strrev(
chr(ord(
cwd
ini_get
window.top.location.href
copy(
eval(
system(
symlink(
error_reporting(0)
print
file_get_contents(
file_put_contents(
fopen(
hacked"

cd /var/www/путь/к/файлам/wordpress/wp-content/
$ fgrep -nr --include \*.php "$values" *

Сегодня Яндекс.Вебмастер сообщил мне неприятную новость, касающуюся одного из моих ресурсов. Cообщение информировало, что на страницах сайта обнаружен вредоносный код, который может быть опасен для компьютеров посетителей. При открытии страниц сайта вредоносный код на может привести к нежелательным для пользователя последствиям: заражению компьютера вирусами, несанкционированному использованию его ресурсов, порче и даже кражеличных данных.

(N.A. своевременное обновление версии браузера повысит безопасность работы в интернете)

Вопрос, как и откуда появился вредоносный код на сайте, это был основной вопрос, ответ на который мне нужно было получить. Ведь администрированием ресурса я занимаюсь в одиночку, пароль для FTP доступа доступен только мне, да и нет тех людей, которые хотели бы внести изменения на страницы.

Я начал вспоминать, какие изменения и с какого компьютера производились по отношению к этому сайту в последнее время и вспомнил.

Несколько дней назад было обращение через FTP доступ с компьютера у которого была устаревшая антивирусная база. Им был рабочий компьютер, с которого я сейчас пишу этот пост.

Я скачал пробную тридцатидневную версию антивирусной программы и проверил систему. В ней действительно оказалось несколько файлов зараженных трояном. Позже мои выводы были подтверждены службой поддержки хостинг провайдера и разработчиками антивирусных программ.

После того, как была выяснена, локализована и устранена причина заражения, можно было перейти к следующему этапу и удалить вредоносный код с сайта. Я хочу подчеркнуть, что наиболее важным является выяснить источник заражения, а уж потом устранить последствие. Это сократит вероятность повторного появления проблемы, а в некоторых случаях, без устранения источника лечение сайта вообще не является возможным.

Вредоносный код на сайте содержал следующий скрипт:

Этот скрипт был размещен в конце каждой страницы между тэгами и .

Удалить скрипт можно было двумя способами :

  • 1. восстановить сайт из бэкапа на сервере;
  • 2. удалить вредоносный код вручную.
  • По причине небольшого количества страниц и знания их содержимого я выбрал второй вариант. Найти вредоносный код на сайте, удалить его и заменить зараженные страницы сайта на сервере чистыми не заняло много времени, безопасность сайта была восстановлена.

    Более ужасным было последствие, которое в разы снизило численность посетителей и выражалось фразой: «Этот сайт может угрожать безопасности вашего компьютера», но с этим уже не поспоришь, раз уж оплошал, придется за это расплачиваться.

    Как защитить сайт от заражения вредоносным кодом

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

  • Пользоваться качественным антивирусом . Установить официальную версию лидирующей на данный момент по рейтингу антивирусной программы.
  • Поменять пароль для FTP доступа к сайту и панели управления. Если хостингом поддерживается отключение FTP доступа, отключить его из панели управления и включать по мере необходимости.
  • Обращаться через FTP доступ к сайту только с компьютеров, имеющих хорошую антивирусную защиту с актуальной вирусной базой.
  • Права доступа к файлам и папкам (Chmod) должны строго соответствовать тем, что рекомендует разработчик. В случае изменения прав доступа для редактирования файла, по окончанию работ, обязательно восстанавливать требуемые значения.
  • Выполняя эти четыре основных правила будет значительно сокращена вероятность заражения сайта вредоносным программным обеспечением.

    На этом все, все вопросы и замечания оставляйте пожалуйста в комментариях.

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

    Для обнаружения вредоносного кода в файлах и базе существуют специализированные решения – антивирусы и сканеры для хостингов. Их не так много, из популярных – это AI-BOLIT , MalDet (Linux Malware Detector) и ClamAv .

    Сканеры помогают обнаруживать загруженные веб-шеллы, бэкдоры, фишинговые страницы, спам-рассыльщики и другие типы вредоносных скриптов – все то, что им известно и заранее добавлено в базу сигнатур вредоносного кода. Некоторые сканеры, например, AI-BOLIT, обладают набором эвристических правил, которые позволяют обнаруживать файлы с подозрительным кодом, который часто используется во вредоносных скриптах, или файлы с подозрительными атрибутами, которые могут быть загружены хакерами. Но, к сожалению, даже в случае использования нескольких сканеров на хостинге, возможны ситуации, когда некоторые хакерские скрипты остаются не обнаруженными, что фактически означает, что у злоумышленника остается “черный ход” и он может взломать сайт и получить над ним полный контроль в любой момент.

    Современные вредоносные и хакерские скрипты значительно отличаются от тех, что были 4-5 лет назад. Сейчас разработчики вредоносного кода комбинируют обфускацию, шифрование, декомпозицию, внешнюю подгрузку вредоносного кода и используют другие уловки для того, чтобы обманывать антивирусное ПО. Поэтому вероятность пропуска новых “вредоносов” значительно выше, чем раньше.

    Что же можно сделать в данном случае для более эффективного обнаружения вирусов на сайте и хакерских скриптов на хостинге? Необходимо использовать комплексный подход: первоначальное автоматизированное сканирование и дальнейший ручной анализ. В этой статье речь пойдет о вариантах обнаружения вредоносного кода без сканеров.

    Вначале рассмотрим, что именно следует искать при взломе.

  • Хакерские скрипты.
    Чаще всего при взломе загружают файлы, представляющие собой веб-шеллы, бэкдоры, “загрузчики” (uploaders), скрипты для спам-рассылок, фишинговые страницы + обработчики форм, дорвеи и файлы-маркеры взлома (картинки с лого хакерской группы, текстовые файлы с “посланием” от хакеров и т.п.)
  • Инжекты (внедрения кода) в существующих файлах .
    Второй по популярности тип размещения вредоносного и хакерского кода – это инжекты. В существующие файлы сайта.htaccess могут внедрять мобильные и поисковые редиректы, в php/perl скрипты инжектировать бэкдоры, в.js и.html шаблоны встраивать вирусные javascript фрагменты или редиректы на сторонние ресурсы. Возможны инжекты и в медиа-файлах, например.jpg или. Часто вредоносный код состоит из нескольких компонентов: сам вредоносный код хранится в exif-заголовке jpg файла, а исполняется с помощью небольшого управляющего скрипта, код которого не выглядит подозрительным для сканера.
  • Инжекты в базе данных .
    База данных является третьей мишенью для хакера. Здесь возможны статические вставки , , , , которые перенаправляют посетителей на сторонние ресурсы, “шпионят” за ними или заражают компьютер/мобильное устройство посетителя в результате drive-by атаки.
    Кроме того во многих современных CMS (IPB, vBulletin, modx и др.) шаблонизаторы позволяют исполнять php код, а сами шаблоны хранятся в базе данных, поэтому php код веб-шеллов и бэкдоров может быть встроен непосредственно в БД.
  • Инжекты в кэширующих сервисах.
    В результате некорректной или небезопасной настройки кэширующих сервисов, например, memcached, возможны инжекты в закэшированные данные “на лету”. В некоторых случаях хакер может внедрять вредоносный код на страницы сайта без непосредственного взлома последнего.
  • Инжекты / инцицированные элементы в системных компонентах сервера.
    Если хакер получил привелегированный (root) доступ к серверу, он может подменить элементы веб-сервера или кэширующего сервера на инфицированные. Такой веб-сервер будет с одной стороны обеспечивать контроль над сервером с помощью управляющих команд, с другой – время от времени внедрять динамические редиректы и вредоносный код на страницы сайта. Как и в случае инжекта в кэширующий сервис, администратора сайта скорее всего не сможет обнаружить факт взлома сайта, так как все файлы и база данных будут оригинальными. Этот вариант наиболее сложный для лечения.
  • Итак, предположим, что сканерами вы уже проверили файлы на хостинге и дамп базы данных, но они ничего не обнаружили, а вирусный по-прежнему на странице или мобильный редирект продолжает отрабатывать при открытии страниц. Как искать дальше?

    Поиск вручную

    В unix сложно найти более ценную пару команд для поиска файлов и фрагментов, чем find / grep.

    find . -name ‘*.ph*’ -mtime -7

    найдет все файлы, которые были изменены за последнюю неделю. Иногда хакеры “скручивают” дату изменения у скриптов, чтобы таким образом не обнаружить новые скрипты. Тогда можно поискать файлы php/phtml, у которых менялись атрибуты

    find . -name ‘*.ph*’ -сtime -7

    Если нужно найти изменения в каком-то временном интервале, можно воспользоваться тем же find

    find . -name ‘*.ph*’ -newermt 2015-01-25 ! -newermt 2015-01-30 -ls

    Для поиска в файлах незаменим grep. Он может искать рекурсивно по файлам указанный фрагмент

    grep -ril ‘stummann.net/steffen/google-analytics/jquery-1.6.5.min.js’ *

    При взломе сервера полезно проанализировать файлы, у которых установлен guid/suid флаг

    find / -perm -4000 -o -perm -2000

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

    lsof +r 1 -p `ps axww | grep httpd | grep -v grep | awk ‘ { if(!str) { str=$1 } else { str=str»,»$1}}END{print str}’` | grep vhosts | grep php

    Используем мозг и руки для анализа файлов на хостинге
  • Идем в директории upload, cache, tmp, backup, log, images , в которые что-то пишется скриптами или загружается пользователями, и просматриваем содержимое на наличие новых файлов с подозрительными расширениями. Например, для joomla можно проверить.php файлы в каталоге images:find ./images -name ‘*.ph*’Скорее всего, если что-то найдется, то это будет вредонос.
    Для WordPress имеет смысл проверить на скрипты директорию wp-content/uploads, backup и cache каталоги тем.
  • Ищем файлы со странными именами
    Например, php, fyi.php, n2fd2.php. Файлы можно искать
    • по нестандартным сочетаниям символов,
    • наличию цифр 3,4,5,6,7,8,9 в имени файлов
  • Ищем файлы с нехарактерными расширениями
    Допустим, у вас сайт на WordPress или Для них файлы с расширениями.py, .pl, .cgi, .so, .c, .phtml, .php3 будут не совсем обычными. Если какие-то скрипты и файлы с данными расширениями будут обнаружены, скорее всего это будут хакерские инструменты. Возможен процент ложных обнаружений, но он не велик.
  • Ищем файлы с нестандартными атрибутами или датой создания
    Подозрения могут вызывать файлы с атрибутами, отличающимися от существующих на сервере. Например, все.php скрипты были загружены по ftp/sftp и имеют пользователя user, а некоторые созданы пользователем www-data. Имеет смысл проверить последние. Или если дата создания файла скрипта раньше даты создания сайта.
    Для ускорения поиска файлов с подозрительными атрибутами удобно пользоваться unix командой find.
  • Ищем дорвеи по большому числу файлов .html или.php
    Если в каталоге несколько тысяч файлов.php или.html, скорее всего это дорвей.
  • Логи в помощь

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

    • Корреляция даты и времени отправки письма (которые можно узнать из лога почтового сервера или служебного заголовка спам-письма) с запросами из access_log помогают выявить способ рассылки спама или найти скрипт спам-рассыльщика.
    • Анализ трансфер-лога FTP xferlog позволяет понять, какие файлы были загружены в момент взлома, какие изменены и кем.
    • В правильно настроенном логе почтового сервера или в служебном заголовке спам-письма при правильной настройке PHP будет имя или полный путь до скрипта-отправителя, что помогает определять источник спама.
    • По логам проактивной защиты современных CMS и плагинов можно определять, какие атаки были выполнены на сайт и сумела ли CMS им противостоять.
    • По access_log и error_log можно анализировать действия хакера, если известны имена скриптов, которые он вызывал, IP адрес или User Agent. В крайнем случае можно просмотреть POST запросы в день взлома и заражения сайта. Часто анализ позволяет найти другие хакерские скрипты, которые были загружены или уже находились на сервере в момент взлома.
    Контроль целостности

    Намного проще анализировать взлом и искать вредоносные скрипты на сайте, если заранее позаботить о его безопасности. Процедура контроля целостности (integrity check) помогает своевременно обнаруживать изменения на хостинге и определять факт взлом. Один из самых простых и эффективных способов – положить сайт под систему контроля версий (git, svn, cvs). Если грамотно настроить.gitignore, то процесс контроля за изменениями выглядит как вызов команды git status, а поиск вредоносных скриптов и измененных файлов – git diff.

    Также у вас всегда будет резервная копия файлов, до которой можно «откатить» сайт в считанные секунды. Администраторам сервера и продвинутым веб-мастерам можно использовать inotify, tripwire, auditd и другие механизмы для отслеживания обращений к файлам и директориям, и контроля за изменениями в файловой системе.

    К сожалению, не всегда есть возможность настроить систему контроля версий или сторонние сервисы на сервере. В случае shared-хостинга не получится установить систему контроля версий и системные сервисы. Но это не беда, есть достаточно много готовых решений для CMS. На сайте можно установить плагин или отдельный скрипт, который будет отслеживать изменения в файлах. В некоторых CMS уже реализован эффективный мониторинг изменений и механизм integrity check (Например, в Битрикс, DLE). В крайнем случае, если на хостинге есть ssh, можно сформировать эталонный слепок файловой системы командой

    ls -lahR > original_file.txt

    и при возникновении проблем создать новый слепок в другой файл, а затем сравнить их в программах WinDiff, AraxisMerge Tool или BeyondCompare.

    Эпилог

    В большинстве случаев разработчики антивирусного ПО и сканеры не поспевают за разработчиками вредоносного кода, поэтому при диагностике и лечении сайтов нельзя полагаться только на автоматизированные программные решения и скрипты. Используя эвристический подход, богатый инструментарий операционной системы и возможности CMS можно находить вредоносный код, который не смогли обнаружить антивирусы и сканеры. Использование ручного анализа делает процесс лечения сайтов более качественным и эффективным.

    На днях хостинг провайдер reg.ru приостановил работу некоторых PHP функций (в частности mail – отправки сообщений) на сайте одного моего клиента, объясняя это тем, что в аккаунте было найдено вредоносное программное обеспечение, рассылающее спам. Перестала работать и приходить заказы, а это уже убытки. В связи с этим я решил рассказать вам, читатели сайт как проверить свой сайт на вирусы и вовремя удалить вредоносный код.

    Ситуация нередкая, даже этот мой блог дважды становился жертвой взлома. Полностью обезопасить свой ресурс от появления вирусов невозможно, но необходимо свести риск к минимуму. Как правило, злоумышленники используют для проникновения уязвимости CMS, шаблонов оформления или неверные настройки хостинга.

    Как действовать при подозрениях о заражении сайта на вирусы:

  • Проверить сайт на вирусы и найти файлы содержащие вредоносный код (об это будет половина статьи),
  • Удалить или вылечить обнаруженные файлы (вторая половина статьи),
  • Закрыть “дыры” в сайте, через которые проникли нехорошие скрипты.
  • Все 3 случая взлома, с которыми я сталкивался (2 моих и 1 клиентский) происходили по одной причине – на хостинге некоторые папки имели публичные права доступа 777, разрешающие всем желающим записывать туда любую информацию, так что пункт №3 про закрытие “дыр” самый важный. Про него я расскажу в конце.

    Почему неэффективны онлайн антивирусы для сайта

    Когда возникают реальные проблемы в работе сайта или появляются сообщения от Яндекс Вебмастер о заражении, многие начинают искать онлайн антивирусы для сайтов. Иногда они помогают, но в большинстве случаев делают это не до конца.

    Проблема в том, что такие сервисы как antivirus-alarm.ru , virustotal.com , xseo.in , 2ip.ru и т.д. имеют доступ только ко внешней стороне вашего сайта. Это значит, что они обнаружат вредоносный код только, если он вылезет наружу и будет проявлять какие-то признаки.

    А что делать, если инфицированные файлы никак себя не проявляют и пока неактивны или результат их деятельности не дает явных признаков заражения. Ну, например, они просто выводят посторонние ссылки на веб страницах – для онлайн сервиса это будут , а сам вирус спрятан глубоко в PHP коде и действует только на уровне сервера при обработке запросов.

    Достоинство онлайн антивирусов: Простота использования – написал URL сайта, нажал кнопку и получил результат. Но, не факт, что нашел вирус.

    Единственный эффективный способ выявить все проблемы – просканировать полностью все файлы, размещенные на хостинге, где лежит сайт. Сделать это можно имея доступ к хостингу, значит, антивирус должен работать непосредственно внутри файлов и папок вашего сайта.

    Антивирусные плагины

    Кстати, поклонникам популярных CMS в деле борьбы с вирусами везет немного больше, так как существуют плагины, способные своевременно их заметить и устранить. Про один такой плагин я рассказывал в статье о , он автоматом мониторит изменения в файлах движка и шаблонов. Но, даже он не всегда способен помочь, так как вирусы могут не только проникать в существующие файлы, но и создавать свои собственные, против которых плагин будет бессилен.

    Одним словом – в критической ситуации может потребоваться полное сканирование всех файлов хостинга, включая тех, что не относятся к CMS.

    Итак, переходим к разделу “Как проверить сайт на вирусы профессиональными способами?”.

    Проверка файлов сайта антивирусом AI-Bolit

    Как и для обычных компьютеров, проверка сайтов на вирусы проводится антивирусными программами. Но для этих целей обычные антивирусники, про которые я , не подойдут. Нужен специальный, работающий на хостинга и заточенный под угрозы для сайтов.

    Последнее время я пользуюсь для этих целей разработкой Revisium – антивирусом AI-Bolit. Кроме своего антивируса для сайтов, этот сервис участвовал в совместной разработке антивируса для Яндекс.

    Давайте по шагам пройдем все этапы поиска и лечения с помощью AI-Bolit.

    Установка антивируса AI-Bolit

    С этой страницы скачиваете архив с программой для хостинга – https://revisium.com/ai/ (файл небольшой).

    Есть версия для Windows – для ее использования необходимо скачать все файлы сайта с хостинга себе на компьютер.

    Есть версия для хостинга – проверка на вирусы идет прямо там (на сервере с сайтом). Я буду рассказывать о работе именно хостинговой версии, скачивайте ее.

    Распакуйте скачанный архив, в результате, у вас появляется папка с названием аналогичным названию архива – ai-bolit, папка tools и 2 файла.

    Для работы понадобится только содержимое из первой папки (ai-bolit), состоящее из 5 файлов. Необходимо закинуть в корневую папку вашего сайта (туда, где лежит ваш index.php) по FTP или через файловый менеджер эти 5 файлов.

    Настройка программы

    По умолчанию антивирус уже готов к работе, но в нем есть две настройки, которые вы можете применить для оптимизации программы под свои нужны. Все настройки делаются в файле ai-bolit.php.

    1. Настройка глубины сканирования. Она может быть 3 степеней: 0 – быстрая проверка, 1 – экспертная, 2 – параноидальная, по умолчанию стоит 1. Отвечает за этот параметра строка:

    Define("AI_EXPERT_MODE", 1);

    2. Пароль для доступа к программе. Если вы планируете держать антивирус на хостинге постоянно, то необходимо задать максимально сложный пароль взамен тому, что идет по умолчанию, иначе, через сам антивирусник злоумышленники смогут навредить сайта. Если же вас интересует одноразовая проверка, после которой файлы антивируса с хостинга будут удалены, то можете оставить пароль по умолчанию. Отвечает за пароль строка:

    Define("PASS", "1122334455");

    После сохранение настроек переходим к запуску сканера.

    Запуск программы

    Дальнейшие действия будут проводиться через браузер. В адресной строке вам необходимо набрать URL ведущий на запускающий файл ai-bolit – ваш-сайт/ai-bolit.php?p=указанный-пароль .

    Через некоторое время сканирование всех файлов вашего сайта будет завершено и вы получите отчет вот такого вида:

    Проблемы при запуске

    Так как антивирусная проверка сайта создает на сервер хостинга немалую нагрузку, часто хостеры запрещают работу подобных программ. В этом случае вы можете столкнуться с сообщениями об ошибке, например такими:

    В этом случае есть 3 варианта:

  • Хостер сам осуществляет сканирование на вирусы и предупреждает клиентов об их появлении.
  • Хостер может разрешить вам проверку после запроса в службу технической поддержки.
  • Скачивайте файлы сайта на компьютер и проверяйте версией антивируса для Windows.
  • Анализ результатов

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

    После всех проверок и удаления вредоносных скриптов файлы антивируса с хостинга можно стереть.

    Закрываем уязвимости сайта

    Теперь об устранении причин заражения. Выше я говорил, что чаще всего вирусы заливаются через папки, имеющие общий доступ для всех – права доступа 777 (rwxrwxrwx).

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

    Для того, чтобы заражение не повторилось после вашего лечения, надо проверить каждую папку, в которой Манул нашел инфицированные файлы и, если надо, сменить права – запретить общий доступ – выставьте свойства 755 (rwxr-xr-x).

    В некоторых случаях можно делать еще более строгие правила, но 755 это минимальный уровень безопасности.

    На этом у меня сегодня все – здоровья вашим проектам.