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" *
Вы можете получить определенное количество предупреждений для любой темы или плагина, но немного их проанализировав, вы сможете понять какие опасны, а какие - ложные срабатывания. Утилита выводит все довольно подробно, сразу имя файла, а потом участок кода, который вы ищете, так что вы будете знать где искать вредоносный код wordpress. Это уже пример вредоносного кода:
Выводы
Вот и все. Теперь вы знаете как выполняется проверка шаблона wordpress на вирусы, а также проверка целого сайта. Конечно, все эти методы не дают стопроцентной гарантии, что с вашим сайтом все хорошо, но во многих случаях они могут помочь решить проблему со взломом.
Есть простой но эффективный сайт suip.biz... на нем подобраны инструменты для тестирования различных сайтов, в том числе и утилита WPScan, предназначенная для Вордпресс =) (не реклама, просто совет, сам постоянно пользуюсь)
Спасибо за статью автору!
А как сделать чтобы открывался файл с найденной строкой?
Не TOC а TAC