Лечение сайта от вирусов

в 9:02, , рубрики: вирусы, Вирусы (и антивирусы), лечение вирусов, сайт, метки: , ,

Статья рассчитана на вебмастера или продвинутого пользователя. Подробное руководство «для чайников» (со скриншотами) будет опубликовано немного позднее. Здесь представлен общий алгоритм и личный опыт очистки. Итак, приступим к поиску и удалению вирусов.

Подготовка

  • Начинать очистку всегда нужно с компьютера администратора сайта. 80-85% заражений происходят по причине кражи паролей (FTP или от панели управления сайтом). Лучше это делать не только тем антивирусом, но и каким-либо вторым, т.к. заведомо мог пропустить вирус.
  • Вторым шагом скачиваем все файлы сайта к себе на компьютер, обязательно сохраняем резервную копию и проверяем рабочую копию антивирусом. Лучше использовать для этих целей Avast или Nod32. Они на порядок лучше определяют web-вирусы. DrWeb и антивирус Касперского нередко пропускают простые вставки сторонних скриптов.
  • После проверки и получения списка заражённых файлов в отчёте приступаем к очистке:

Очистка от вируса

  1. В первую очередь проверяем нет ли в отчёте вирусов типа phpshell, webshell, hacktool, trojan и т.п. Это как правило php файлы, через которые взломщик получает полный доступ к файлам сайта. Их нужно сразу удалить и из рабочей копии, и с FTP папки сайта. После чего сменить все пароли (ftp, баз данных mysql, пароли от административной части сайта и пароль от административного email ящика, указанного в настройках сайта, если такой имеется). Таких вирусов может и не быть на сайте. Если их нет, пароли менять всё-равно нужно.
  2. Далее нужно удалить вирусы, прикреплённые к основным файлам сайта. Это оставшиеся найденные антивирусом файлы. Для этого Вам потребуется любой текстовый редактор, который позволяет производить поиск и замену в файлах с использованием регулярных выражений. Я использую PhpED. Можно скачать полнофункциональную ознакомительную 30-ти дневную версию на официальном сайте. Как правило, оставшиеся вирусы прикрепляются либо вначале файла, либо в конце. Часто заражают только файл index.php в корневой папке сайта. Тогда достаточно просто удалить код вируса из index.php и шаг 3 можно пропустить. Если же файлов много, переходим к следующему шагу.
  3. Проанализируйте заражённые файлы. Вирусный код будет везде либо одинаковым, либо похожим. Если код одинаковый, с помощью выбранного ранее редактора заменяем его на пустую строку во всех файлах сайта, потенциально подверженных заражению (*.php;*.php4;*.php5;*.inc;*.class;*.js;*.html;*.htm;*.css;*.htc;). Если строки вируса немного видоизменяются в файлах, но имеют общую структуру, нужно производить поиск по регулярным выражениям. Самый простой вариант, когда начало и конец строки с вирусом одинаковы. Тогда регулярное выражение примет вид:
     начало_вируса.*конец_вируса

    Лучше перед заменой произвести просто поиск и проверить, не попали ли в список найденных «здоровые» файлы. Если нет, производим замену.

  4. Конечно не исключено, что антивирус не найдёт всех заражённых файлов. Для поиска не известных вирусов в своей работе мы используем и ряд своих сигнатур основанных также на регулярных выражениях, но требующих дополнительного анализа при их использовании. Этот аспект мы рассмотрим в отдельной статье. Здесь можно можно привести пример пары наиболее общих выражений (пункты 5 и 6).
  5. На всякий случай ищем скрытые iframe:
    <s*iframe[^<>]*srcs*=s*('|"|)s*http://[^<>]*(width|height)[^<>]*=('|"|)(1|0|2|3|4|5)('|"|)[^d<>]*(width|height)[^<>]*=('|"|)(1|0|2|3|4|5)('|"|)[^d<>]*>s*<s*/s*iframes*>

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

  6. Используя мультистроковый поиск проверяем .htaccess файлы на предмет соответствия такому регулярному выражению:
    .*(HTTP_USER_AGENT|REFERER).*
    .*(Rewrite|Redirect).*http(|s)://

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

  7. После проделанных операций ищем все изменённые Вами файлы и заменяем ими файлы на FTP. Для этого удобно использовать, например, поиск в total commander. Ищем все файлы изменённые за время работы над скачанной копией, выводим на панель, упаковываем в архив, распаковываем полученный архив в отдельной папке, переходим по полученному внутри этой папке дереву директорий в корневую папку сайта, копируем из неё всё (с заменой файлов) в корневую папку этого же сайта на FTP.

После очистки сайта конечно желательно проанализировать логи веб-сервера, чтобы разобраться в причине заражения. Но это не всегда представляется возможным. Нередко логи дня заражения уже удалены или сайт заразили, украв FTP пароли (тогда анализ логов ничего не даст). Достаточно и обязательно нужно выполнить несколько основных пунктов, которые снизят риск повторного заражения до минимума.

Автор: Oleg_Yozhik

  1. Александр:

    Оригинал статьи на хабре:
    http://habrahabr.ru/post/149619/
    А первичная версия вот здесь:
    http://сайт-антивирус.рф/page/lechenie_sajta_ot_virusov
    Также полезно прочесть вот эту статью:
    http://сайт-антивирус.рф/page/zashhita-sajta-ot-virusov
    Её владелец сайта выкинул из текста

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js