Как вылечить зараженный сайт
С чего начать?
Проанализируйте способы заражения:
Злоумышленник может получить пароли к администраторским панелям CMS, FTP или SSH аккаунтам. Обычно пароли подбирают или крадут с помощью троянских программ, заразивших компьютер вебмастера.
Уязвимости веб-приложения могут позволять посторонним размещать на сайте произвольный код.
Из-за заражения внешнего ресурса (партнерской программы, баннерной системы, счётчика) предоставленный вам код может стать опасным для пользователей.
Найдите браузерный вредоносный код
Проанализируйте информацию о заражении в Вебмастере на странице Безопасность и нарушения. Раздел содержит перечень зараженных страниц, даты проверок и вынесенные антивирусом вердикты. Перейдя по ссылке в названии вердикта, вы увидите его описание и примерный вид кода, соответствующего вердикту (кода, который непосредственно появляется на страницах сайта).
Вы также можете самостоятельно воспроизвести проблему с помощью виртуальной машины.
Найдите серверный вредоносный код
- Остановите веб-сервер, чтобы оградить посетителей сайта от потенциальной опасности. Затем проверьте антивирусом файлы веб-сервера и все рабочие станции, с которых администрируют сервер, и смените все пароли: root, FTP, SSH, от административных панелей хостинга и CMS.
- Если до заражения была сделана резервная копия сайта, восстановите ее.
- Обновите до последних версий все используемые сайтом программы и поищите описания исправленных уязвимостей. Возможно, это поможет понять, каким образом сайт был заражен.
- Удалите лишних пользователей с расширенными правами и тщательно проверьте сервер на наличие веб-шелла, с помощью которого злоумышленник может изменять код сайта в обход авторизации.
- Проверьте наличие вредоносного кода:
во всех серверных скриптах, шаблонах CMS, базах данных;
в конфигурационных файлах веб-сервера или интерпретатора серверных скриптов;
если вы используете shared-хостинг, проверьте другие сайты, расположенные на том же сервере — может быть заражен весь сервер.
Признаки вредоносного кода:
Код посторонний или незнакомый, не соответствует резервной копии или системе контроля версий.
Обфусцированный (нечитаемый, неструктурированный) код.
Дата модификации файлов совпадает с временем заражения или более поздняя. Этот параметр ненадежен, так как дата модификации файлов может быть изменена вирусом.
Использование характерных для вредоносного кода функций. Примеры таких функций для языка PHP:
динамическое исполнение кода (
eval
,assert
,create_function
);обфускация (
base64_decode
,gzuncompress
,gzinflate
,str_rot13
,preg_replace
);загрузка удаленных ресурсов (
file_get_contents
,curl_exec
).
Вредоносный код удален, что дальше?
Пометка об опасности сайта в результатах поиска будет снята, если при очередной проверке робот Яндекса не обнаружит заражения. Чтобы ускорить перепроверку, в Вебмастере на странице Безопасность и нарушения нажмите кнопку Я все исправил.
Рекомендуем в течение нескольких недель после заражения регулярно перепроверять файлы и код сайта на тот случай, если использованная уязвимость не была устранена или злоумышленники по прежнему имеют доступ к сайту.
Если вы нашли что-то интересное
Яндекс постоянно ищет и исследует новые виды заражений и публикует результаты исследований в блоге Яндекса для вебмастеров.
Если вы обнаружили на своем сайте вредоносный или подозрительный код, отправьте его на анализ специалистам.