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

17 декабря 2019 2

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

Кворк 4

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

И если просто забить, взлом сайта будет вопросом времени.

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

Признаки взлома сайта

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

Понять, что с сайтом что-то не так можно по косвенным признакам

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

Иногда взлом очевиден

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

Что делать если сайт взломали

Главное — не паниковать!
На самом деле ничего страшного не случилось!

Даже при самом худшем сценарии, последствия взлома можно в считанные минуты ликвидировать обычным восстановлением из резервной копии. Причину взлома можно отыскать простым сканированием сайта антивирусом. Причем это даже можно сделать своими силами. В крайнем случае делегировать специалистам. Например, на Кворке или обратившись ко мне. Эта работа не сложная и редко стоит дороже $100.

Алгоритм действий

Для тех кто решил самостоятельно обезвредить свой сайт.

  1. Подключиться по ФТП, посмотреть в файловом менеджере даты изменений файлов, скачать и проанализировать логи (access.log, error.log). На виртуальном хостинге они могут быть недоступны, но можно попробовать запросить их в службе поддержки. Провести самостоятельно полное расследование вряд ли удастся, но иногда даты, время изменения файлов, IP-адреса, ОС, браузеры и другие метаданные могут рассказать многое о взломщике. Даты изменений файлов дадут понять на какой бэкап откатываться. Нужно учитывать, иногда даты изменений файлов даже после их изменений могут оставаться не тронутыми.

    Корневой каталог Вордпресс выглядит примерно так. С ним мы и будем работать.

  2. Cкачать с официального сайта wordpress.org чистую копию Вордпресс той же версии, что установлена у вас. Удалить (именно удалить, а не заменить) файлы ядра и загрузить на их место чистые. Файлы с вредоносным кодом часто маскируются под системные файлы Вордпресс и носят имена типа wp-home.php, wp-system.php и т.п. Внимательно сравниваем их с файлами из дистрибутива Вордпресс и удаляем, если таких там нет.
  3. Удалить полностью директории /wp-includes/ и /wp-admin/, заменив их скачанными.
  4. Удалить все файлы из корня кроме wp-config.php и .htaccess, заменив их так же чистыми.
  5. Сохраненные wp-config.php и .htaccess открыть в редакторе, визуально проверить на наличие постороннего или обфусцированного кода. Удалить все лишнее.
  6. Очень часто эпицентр проблем находится в директории /wp-content/. Внутри нее есть директории /plugins/ и /themes/, в которых расположены плагины и темы соответственно. Все публичные плагины и темы нужно как и файлы ядра вручную удалить и заменить на заведомо чистые версии. Просто скачать их из каталога Вордпресс и залить вместо имеющихся. Коммерческие плагины скачать там, где они приобретались. Желательно те же версии. Обновляться лучше потом, когда попадем в админку.
  7. Еще внутри /wp-content/ есть директория /languages/, в которых размещаются файлы локализаций. Ее тоже нужно обязательно проверить, там не должно быть никаких исполняемых файлов с расширением php. Именно в ней я много раз встречал загруженные бэкдоры.
  8. В /wp-content/upgrade/ можно все удалить, если вдруг там что-то есть.
  9. Затем нужно проверить все оставшиеся файлы в /wp-content/. Директорию /cache/ и все что касается кеша можно удалить. С особым пристрастием проверяем директорию /uploads/. Именно там в куче изображений часто прячутся бэкдоры. Если сайт большой, файлов там может быть очень много и проверить вручную все их невозможно. Потребуется специальный софт.

Чем сканировать сайт на вирусы

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

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

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

Я перепробовал много инструментов и остановил свой выбор на AI-Bolit от Revisium — бесплатный и один из самых эффективных инструментов для поиска вирусов и вредоносного кода.

AI-Bolit проверяет наиболее уязвимые файлы на вирусы, шеллы, эксплойты и прочую гадость, после чего выносит свой вердикт. 

Скачиваем универсальную версию AI-Bolit — для хостинга, а также для Мак-ос и Юникс. В подробности использования вдаваться не будем — все инструкции имеются на сайте разработчика.

Сканирование сайта на вирусы с помощью AI-Bolit

Если кратко:

Скачать антивирус, распаковать и залить в корень сайта. Должно быть два файла: ai-bolit-hoster.php и AIBOLIT-BINMALWARE.db. Я заливаю в корень, чтобы не заморачиваться с путями. Работа с антивирусом осуществляется через командную строку. Для этого нужно подключиться к серверу по SSH.

У AI-Bolit два режима проверки

1. Обычный (диагностика)

php ai-bolit-hoster.php --mode=1

2. Параноидальный (лечение)

php ai-bolit-hoster.php --mode=2

В терминале это выглядит примерно так:

Видим, база подгрузилась, сканеру известно 4236 сигнатур вирусов. Сканирование может занять некоторое время.

В результате в корне сайта сгенерируется сводный отчет со всеми критическими замечаниями. Он представляет собой HTML-страницу с таким примерно именем: AI-BOLIT-REPORT-_Applications_MAMP_htdocs_danilin_test-935994-15-12-2019_22-18.html

Отчет сканера AI-Bolit выглядит так

AI-Bolit Отчет

По завершению всех процедур этот файл нужно обязательно удалить с сервера.

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

Теперь самый ответственный момент — изучение и анализ отчета. Мы предварительно заменили все возможные файлы на заведомо чистые. Тем самым упростили задачу, минимизировав количество инфицированных файлов.

Среди подозрительных файлов нужно отыскать причину проникновения на сайт вредоносного кода. Не нужно спешить удалять все подряд. Подозрительные файлы лучше гуглить, проверять, если есть сомнения. Если не удается понять код — гуглить его содержание. Обычно проблемы массовые, и в Сети находится множество аналогичных случаев. Конечно, если встречаются исполняемые PHP-файлы где-нибудь в /uploads/ или /languages/ — их можно удалять без раздумий.

В заключение

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

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

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

Всем добра и успехов!

Подпишитесь на мой телеграм и первыми получайте новые материалы, в том числе которых нет на сайте.

INNERSTAT
Лучшее за неделю
Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе Вордпресс.

Комментарии
  1. Вообще не согласен, что любой сайт могут взломать. Если адекватно все настроить, то никакие деньги не помогут
    • Вы заблуждаетесь — против социальной инженерии не помогут никакие настройки, например
Добавить комментарий