Главная / Создание и продвижение сайтов / САЙТОСТРОЕНИЕ / WordPress / Поиск и удаление вредоносного кода на сайте

Поиск и удаление вредоносного кода на сайте

О том, что сайт заражен, вебмастер узнает не всегда сразу, и не всегда – самостоятельно. Эту неприятную новость ему могут сообщить как посетители сайта, так и поисковые системы. Однако, не обязательно вредоносный код может оказаться опасным для посетителей. Распространенный случай использования java-скриптов – скрытое внедрение в код сайта «левых» ссылок, ведущих на сторонние ресурсы. Зачастую подобный код в шаблоне WordPress не удается обнаружить ни с помощью широко используемого плагина TAC, ни с помощью других подобных ему плагинов.

Как удалить ссылки в шаблоне WordPress от NewWpThemes я уже писал. Настало время разобраться с общим случаем «заболевания». Тем более, что подвернулся случай – мой блог с установленным по умолчанию шаблоном из паблика стал работать подозрительно медленно. Доходило до того, что перехода с одной внутренней страницы блога на другую приходилось ожидать по десять и более секунд, а процесс добавления записи просто превратился в мучения.

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

ai-bolit-poisk-vredonosnogo-koda-01

А поскольку другой уважаемый онлайн-сервис (ahrefs.com) показал несколько подозрительных исходящих ссылок (пункт меню Исходящие ссылки – Ссылается на домены), которых на сайте быть не должно, я решил воспользоваться предложенным сканером, благо он бесплатный. О том, как найти вредоносный код на сайте с помощью AI-Bolit, и пойдет речь в этой статье.

Собственную последовательность действий изложу пошагово, для простоты восприятия. Но вначале – несколько слов о самом инструменте. Сканер AI-Bolit – обновляемый и развивающийся инструмент поиска вирусов, хакерских и вредоносных скриптов как на живом сайте (в папке хостинга), так и в скачанной на жесткий диск копии сайта. Создатели сканера утверждают, что его способности превосходят способности обычных антивирусов и сканеров. Работает AI-Bolit со всеми CMS, умеет определять файлы дорвеев, искать и находить код ссылочных бирж, редиректы и невидимые ссылки. С полным списком возможностей можно ознакомиться здесь, он реально впечатляет.

ai-bolit-poisk-vredonosnogo-koda-02

Итак, AI-Bolit — инструкция:

Теперь – о том, как пользоваться AI-Bolit на конкретном примере.

1. Скачиваем через FTP сайт на жесткий диск компьютера. Чем короче путь, тем лучше, пусть это будет папка в корне C:\mysite, следует также избегать наименований на кириллице, хотя с ними сканер тоже работает.

2. Для работы со сканером также понадобится php сборка под Windows – для выполнения скрипта. Скачиваем ее отсюда (именно эту версию рекомендует разработчик сканера) и устанавливаем ее в папку C:\PHP.

3. Скачиваем в любую папку на компьютере сам сканер в виде архива ai-bolit.zip, ссылка доступна с главной страницы онлайн-сервиса, периодически меняется, поэтому прямой ссылки не даю.

4. Распаковываем архив со скриптом и копируем из папки ai-bolit в корень папки с нашим сайтом 3 файла: ai-bolit.php, файл .aignore и файл .aurlignore. Если известна версия CMS, с которой работает ваш сайт, необходимо туда же скопировать из папки known_files сканера соответствующий файл.

5. Выставляем режим сканирования. В файле ai-bolit.php предусмотрено три варианта:

  • define(‘AI_EXPERT’, 0) – экспресс-сканирование (не рекомендуется)
  • define(‘AI_EXPERT’, 1) – экспертный режим (включен по умолчанию)
  • define(‘AI_EXPERT’, 2) – параноидальный режим сканирования.

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

6. Запускаем из папки со скопированным на диск сайтом файл ai-bolit.php через щелчок на нем правой кнопкой мыши и выбора строки Открыть с помощью – CLI. Если компонент CLI не доступен в меню, указываем на файл php.exe через диалог выбора программы для открытия файла. В дальнейшем ai-bolit.php будет запускаться просто по двойному щелчку мыши.

ai-bolit-poisk-vredonosnogo-koda-05

Запустившийся в черном DOS-окне процесс сканирования можно свернуть на панель задач и на некоторое время забыть о нем, т.к. поиск уязвимостей на сайте – процесс не быстрый. В моем случае (сайт на движке WordPress не более чем с полусотней записей и объемом 120 Мб понадобилось семь с половиной часов непрерывной работы.

ai-bolit-poisk-vredonosnogo-koda-06

По завершении сканирования окно с программой самостоятельно сворачивается, в папке с сайтом создается файл отчета AI-BOLIT-REPORT-дата-время.html, здесь же появляется и еще один файл AI-BOLIT-DOUBLECHECK.php со списком файлов с обнаруженными уязвимостями – для повторной проверки после исправления проблем.

ai-bolit-poisk-vredonosnogo-koda-03

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

ai-bolit-poisk-vredonosnogo-koda-04

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

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

8. Повторная проверка, использующая файл AI-BOLIT-DOUBLECHECK.php. Если нужно провести полную проверку сайта заново, следует удалить этот файл из папки с сайтом, но в случае с локальной проверкой сайта смысла в этом нет. AI-BOLIT-DOUBLECHECK.php позволяет сократить повторный и последующие, после исправления кода, проходы к проверке именно тех файлов, которые изначально были признаны потенциально опасными.

9. Замена найденных скриптом файлов на сервере их исправленными вариантами. Делается это вручную, пофайлово, через FTP. Удобно при этом пользоваться каким-либо FTP-менеджером, например, FileZilla. Я по старой привычке использую для этой цели Total Commander.

10. Наслаждаемся работающим сайтом без посторонних вредоносных скриптов и ссылок. Не забываем периодически проверять его AI-Bolit’ом.

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

 

Расскажите об этой статье в соцсетях:

13 комментариев

  1. Спасибо за ссылку. Хороший скрипт. Тоже ставил на ночь на скачанный в ноут сайт. Не потому, что у сайта имеются видимые проблемы, просто для профилактики.

  2. у меня была такая же история: заметил, что скорость генерации страницы значительно снизилась. произошло это после того, как хостер восстановил мне сайт из бэкапа, который я грохнул по жесткому. обнаружил на всех страницах сайта чужеродный скрипт. его удаление ни к чему не привело — через некоторое время скрипт снова появился в записях и на страницах блога. пробовал проверять один из сайтов айболитом, но файл отчета AI-BOLIT-REPORT-дата-время.html по концовке я так почему-то и не получил. делал все по инструкции с их сайта, но увы. хостер рекомендует переустановить вордпресс, предварительно удалив все файлы, кроме файлов темы, картинок. вот такая веселуха.

    • На живом сайте я тоже не дождался результата. Поэтому сохранил копию на жесткий диск и запустил AI-BOLIT в корне сайта. Только тогда увидел отчет. Кстати, последняя версия скрипта работает гораздо шустрее.

  3. А ну ка щас попробую, спасибо! А то уже устал искать.

  4. Спасибо за сервис AI-Bolit, на выходных обязательно проверю свой сайт — для профилактики.

  5. Александр Силиванов

    Тоже была история в начале этого года… Робот Яндекса обнаружил вредоносный код. И, что любопытно — робот видит, а больше — практически никто! Техподдержка хостинга отвечает — по нашим данным все ОК. А саппорт Яндекса вообще молчит.
    Большинство онлайн-сервисов говорит — есть заражение (потому что Яндекс показывает!). Вышел на сервис ReScan, и только там уже получил что-то конкретное. А еще совет — скачать утилиту AI-BOLIT и проверять ею. Что и сделал.
    Утилита обнаруживала подозрительные коды (и даже лишние файлы!). Я сверял коды с кодами соответствующих файлов действующей версии WP или плагинов. Работка та еще — но вычистил же!
    В ходе работы, кстати, обнаружил все же действие кода вредоносного (то, что углядел бот Яндекса). Открыл я браузер в приватном режиме, нашел свой сайт через поиск Яндекса, перешел на главную… Случайно клацнул клавишей даже не по ссылке… и получил редирект на совершенно левый ресурс! Только в таких условиях и работало — обязательно с поиска, обязательно на главную, и чтоб посетитель был новый (чтобы сайта не было в кеше браузера).
    А вот что послужило источником взлома — так до конца и не понял. Удалил пару давно не обновлявшихся плагинов, вычистил файлы с помощью AI-BOLIT. И теперь периодически прогоняю ради профилактики.

    • Редиректы, особенно мобильные, коварны и не всегда хозяин сайта о них сразу узнает. Сразу после чистки надо менять пароли на сайт, на FTP-доступ к сайту и базе, на почту привязанную. AI-BOLIT — штука полезная, тоже Windows-версией пользуюсь.

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

      • Александр Силиванов

        Пароли — это уж, как мне кажется, само собой! Поддержка Яндекса, пожалуй, нынче не особо-то и ответит. Раньше — да. Помнится, еще на «заре» моего блога, году в 13-м, тоже обнаружили они опасный код для мобильных. Написал — сразу получил ответ: это плагин «Однакнопка» (может, помните, был такой). Удалил — и нет проблем.
        А тут… Что за код? Хотя бы какую-то наводку… Молчат. Одно письмо, второе, третье.
        Хорошо, давно умею «гуглить» :-) И вышел все же на ReScan. Где уже получил первый конкретный пример — что может быть подозрительным. И обнаружил в папке одного из плагинов парочку совершенно «левых» файлов

  6. Александр Силиванов

    Проверял, кстати, версией AI-BOLIT-for-Windows. В корне сайта у меня утилита работать отказалась.

  7. Приплыли что называется. Вчера пришло оповещение от WP на почту, что есть подозрение на вирус. Проверила сайт через онлайн системы, написала хостеру и ничего… В ЛК хостера есть айболит. Проверила через него, пишет, что есть подозрения. Хостер отвечает, что возможно ложно срабатывание.

    • Оксана, главное — не паниковать! Первое, что я сделал бы — прогнал сайт через онлайн-антивирусы:

      2IP
      DrWeb
      VirusTotal
      reScan
      Quttera

      Кстати, они показывают, что все чисто. Это уже хорошо. Да, бывает, AI-Bolit ругается без причины.

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

      • Проблемы с другим сайтом. Прицепила ссылку.
        Пробила его по списку выше, все норм. Зато третий день подряд меня спамит на почту вордпресс, подозревает вирус.

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

          Если нужна помощь, скачивайте сайт, архивируйте, скидывайте в облако, присылайте на почту ссылку — посмотрю. Не обещаю, что моментально, но в течение двух-трех дней постараюсь.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *