На днях хостинг провайдер reg.ru приостановил работу некоторых PHP функций (в частности mail – отправки сообщений) на сайте одного моего клиента, объясняя это тем, что в аккаунте было найдено вредоносное программное обеспечение, рассылающее спам. Перестала работать форма обратной связи и приходить заказы, а это уже убытки. В связи с этим я решил рассказать вам, читатели BiznesSystem.ru как проверить свой сайт на вирусы и вовремя удалить вредоносный код.
Ситуация нередкая, даже этот мой блог дважды становился жертвой взлома. Полностью обезопасить свой ресурс от появления вирусов невозможно, но необходимо свести риск к минимуму. Как правило, злоумышленники используют для проникновения уязвимости CMS, шаблонов оформления или неверные настройки хостинга.
Как действовать при подозрениях о заражении сайта на вирусы:
- Проверить сайт на вирусы и найти файлы содержащие вредоносный код (об это будет половина статьи),
- Удалить или вылечить обнаруженные файлы (вторая половина статьи),
- Закрыть «дыры» в сайте, через которые проникли нехорошие скрипты.
Все 3 случая взлома, с которыми я сталкивался (2 моих и 1 клиентский) происходили по одной причине – на хостинге некоторые папки имели публичные права доступа 777, разрешающие всем желающим записывать туда любую информацию, так что пункт №3 про закрытие «дыр» самый важный. Про него я расскажу в конце.
Почему неэффективны онлайн антивирусы для сайта
Когда возникают реальные проблемы в работе сайта или появляются сообщения от Яндекс Вебмастер о заражении, многие начинают искать онлайн антивирусы для сайтов. Иногда они помогают, но в большинстве случаев делают это не до конца.
Проблема в том, что такие сервисы как antivirus-alarm.ru, virustotal.com, xseo.in, 2ip.ru и т.д. имеют доступ только ко внешней стороне вашего сайта. Это значит, что они обнаружат вредоносный код только, если он вылезет наружу и будет проявлять какие-то признаки.
А что делать, если инфицированные файлы никак себя не проявляют и пока неактивны или результат их деятельности не дает явных признаков заражения. Ну, например, они просто выводят посторонние ссылки на веб страницах — для онлайн сервиса это будут обычные HTML гиперссылки с тегом <a href>, а сам вирус спрятан глубоко в PHP коде и действует только на уровне сервера при обработке запросов.
Достоинство онлайн антивирусов: Простота использования — написал URL сайта, нажал кнопку и получил результат. Но, не факт, что нашел вирус.
Единственный эффективный способ выявить все проблемы — просканировать полностью все файлы, размещенные на хостинге, где лежит сайт. Сделать это можно имея доступ к хостингу, значит, антивирус должен работать непосредственно внутри файлов и папок вашего сайта.
Антивирусные плагины
Кстати, поклонникам популярных CMS в деле борьбы с вирусами везет немного больше, так как существуют плагины, способные своевременно их заметить и устранить. Про один такой плагин я рассказывал в статье о защите WordPress, он автоматом мониторит изменения в файлах движка и шаблонов. Но, даже он не всегда способен помочь, так как вирусы могут не только проникать в существующие файлы, но и создавать свои собственные, против которых плагин будет бессилен.
Одним словом – в критической ситуации может потребоваться полное сканирование всех файлов хостинга, включая тех, что не относятся к CMS.
Итак, переходим к разделу «Как проверить сайт на вирусы профессиональными способами?».
Проверка файлов сайта антивирусом AI-Bolit
Как и для обычных компьютеров, проверка сайтов на вирусы проводится антивирусными программами. Но для этих целей обычные антивирусники, про которые я писал ранее, не подойдут. Нужен специальный, работающий на серверах хостинга и заточенный под угрозы для сайтов.
Последнее время я пользуюсь для этих целей разработкой Revisium – антивирусом AI-Bolit. Кроме своего антивируса для сайтов, этот сервис участвовал в совместной разработке антивируса для Яндекс.
Давайте по шагам пройдем все этапы поиска и лечения с помощью AI-Bolit.
Установка антивируса AI-Bolit
С этой страницы скачиваете архив с программой для хостинга — https://revisium.com/ai/ (файл небольшой).
Есть версия для Windows — для ее использования необходимо скачать все файлы сайта с хостинга себе на компьютер.
Есть версия для хостинга — проверка на вирусы идет прямо там (на сервере с сайтом). Я буду рассказывать о работе именно хостинговой версии, скачивайте ее.
Распакуйте скачанный архив, в результате, у вас появляется папка с названием аналогичным названию архива – ai-bolit, папка tools и 2 файла.
Для работы понадобится только содержимое из первой папки (ai-bolit), состоящее из 5 файлов. Необходимо закинуть в корневую папку вашего сайта (туда, где лежит ваш index.php) по FTP или через файловый менеджер эти 5 файлов.
Настройка программы
По умолчанию антивирус уже готов к работе, но в нем есть две настройки, которые вы можете применить для оптимизации программы под свои нужны. Все настройки делаются в файле ai-bolit.php.
1. Настройка глубины сканирования. Она может быть 3 степеней: 0 — быстрая проверка, 1 — экспертная, 2 — параноидальная, по умолчанию стоит 1. Отвечает за этот параметра строка:
define('AI_EXPERT_MODE', 1);
2. Пароль для доступа к программе. Если вы планируете держать антивирус на хостинге постоянно, то необходимо задать максимально сложный пароль взамен тому, что идет по умолчанию, иначе, через сам антивирусник злоумышленники смогут навредить сайта. Если же вас интересует одноразовая проверка, после которой файлы антивируса с хостинга будут удалены, то можете оставить пароль по умолчанию. Отвечает за пароль строка:
define('PASS', '1122334455');
После сохранение настроек переходим к запуску сканера.
Запуск программы
Дальнейшие действия будут проводиться через браузер. В адресной строке вам необходимо набрать URL ведущий на запускающий файл ai-bolit – ваш-сайт/ai-bolit.php?p=указанный-пароль.
Через некоторое время сканирование всех файлов вашего сайта будет завершено и вы получите отчет вот такого вида:
Проблемы при запуске
Так как антивирусная проверка сайта создает на сервер хостинга немалую нагрузку, часто хостеры запрещают работу подобных программ. В этом случае вы можете столкнуться с сообщениями об ошибке, например такими:
В этом случае есть 3 варианта:
- Хостер сам осуществляет сканирование на вирусы и предупреждает клиентов об их появлении.
- Хостер может разрешить вам проверку после запроса в службу технической поддержки.
- Скачивайте файлы сайта на компьютер и проверяйте версией антивируса для Windows.
Анализ результатов
Полученный при сканировании отчет можно использовать двумя способами – передать его специалисту, чтобы он разобрался с его содержимым или самостоятельно просмотреть каждую подозрительную строчку. Нередко, за вирусы принимаются особенности шаблонов или специализированные скрипты (особенно на параноидальном уровне проверки).
После всех проверок и удаления вредоносных скриптов файлы антивируса с хостинга можно стереть.
Закрываем уязвимости сайта
Теперь об устранении причин заражения. Выше я говорил, что чаще всего вирусы заливаются через папки, имеющие общий доступ для всех – права доступа 777 (rwxrwxrwx).
Если на какой-то папке вашего сайта стоят такие права, туда можно залить вирусный файл и уже через него распространить вредоносный код по сайту.
Для того, чтобы заражение не повторилось после вашего лечения, надо проверить каждую папку, в которой Манул нашел инфицированные файлы и, если надо, сменить права – запретить общий доступ – выставьте свойства 755 (rwxr-xr-x).
В некоторых случаях можно делать еще более строгие правила, но 755 это минимальный уровень безопасности.
На этом у меня сегодня все – здоровья вашим проектам.
Дмитрий, спасибо огромное ! Только недавно мой сайт терроризировался атаками вредоносного кода. Совершенно не представляла что можно сделать в этой ситуации. Надеюсь что Ваш совет с программой от яндекс, немного поможет если такая ситуация повторится.
Для меня осталось не совсем понятно как и где можно просмотреть папки с их правами доступа. Извините, но я полный профан в этом. Если Вы когда-нибудь расскажете об этом более подробно, буду очень признательна.
С пожеланиями удачи,
Виктория.
Права доступа необходимо смотреть в файловом менеджере в админке хостинга. К сожалению, встроенные файловые менеджеры у разных хостингов выглядят по разному и единой инструкции я дать не могу — надо смотреть конкретный случай.
Проще всего, если не найдете — спросите в поддержке вашего хостинга как и где их можно посмотреть и поправить.
Насчет ожидания повторения ситуации с вредоносным кодом — я бы не рекомендовал ее ждать. Если у вас уже были прецеденты с его появлением, то проверьте сайт полностью заранее, так как вылеченные симптомы еще не говорят о том, что все в порядке.
Отличная статья. Вы как сами продвигаете свой блог, чтобы он катировался в поисковике на лучших позициях? Я считаю, что нужно больше информации давать от Вашей стороны, очень хорошо объясняете! Я сейчас сам изучаю продвижение блога, все технические моменты! Очень доволен
Спасибо! Очень полезная статья.
Обратила внимание, что на Вашем сайте не используется капча.
Как-то по-другому защищаетесь от спамеров?
Использую плагин akismet, иногда проскакивают левые комменты, но редко.
Я думаю, очень полезно делится такими советами, новичкам очень полезно))) Спасибо»
Хотелось бы получить подробную информацию о том, как избавиться от обнаруженного вредоносного кода
Открываете файлы, которые помечены как зараженные, находите в них помеченные строки и удаляете. Желательно немного понимать что и для чего в коде нужно, чтобы не удалить лишнего.
Добрый день!
Прошу помощи… сам разобраться не могу ((
Приходят сообщения на почту:
Undelivered Mail Returned to Sender
This is the mail system at host serv66.hostland.ru.
I’m sorry to have to inform you that your message could not
be delivered to one or more recipients. It’s attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
: connect to pochta.ru[95.128.183.42]:25: Connection timed
Я так понимаю, что где-то в коде моего сайта встроили скрипт рассылки… То есть кто-то спамит по емейл адресам ЧЕРЕЗ мой сайт. Помогите, как найти вредоносный код (скрипт)? Спасибо.
Что сказал антивирус?
Добрый день!
Скачала сканер для хостинга, но в архиве в папке «ai-bolit» всего 2 файла вместо 5-ти. Кто подскажет, почему так и как получить полный пакет сканера для проверки сайта на хостинге?
На сайте айболита есть страница с контактами, обратитесь к ним.