Как Host-tracker помог оперативно обнаруживать вредоносный код

в 9:08, , рубрики: downtime, uptime, Блог компании ХостТрекер, информационная безопасность, мониторинг сайта, хостинг, метки: , ,

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

Изложение от лица клиента:

Сайт попал в бан Яндекса

В один прекрасный день при попытке зайти на сайт mysite***.com появилось предупреждение о том, что сайт может угрожать безопасности компьютера.
А также пришло письмо от Яндекс: На сайте обнаружен потенциально опасный код:
На страницах вашего сайта mysite***.com обнаружен код, который может быть опасен для посетителей. Выполнение этого кода при посещении сайта может привести к нежелательным для пользователя последствиям: заражению компьютера вредоносными программами, несанкционированному использованию его ресурсов, порче или краже личных данных.
В настоящий момент сайт выводится в результатах поиска с пометкой «Этот сайт может угрожать безопасности вашего компьютера».
Яндекс никак не оценивает содержание сайта и предупреждает пользователей о том, что сайт мог быть заражен без ведома его владельцев.
Пожалуйста, удалите вредоносный код. Если при новой проверке код не будет обнаружен, пометка в результатах поиска будет снята. Для того чтобы снять пометку как можно быстрее, сразу после удаления кода вы можете запросить перепроверку сайта.

В панели Яндекс вебмастер было сообщение:
Результат выборочной проверки
Дата последней проверки 19.08.2013
Страница mysite***.html
Вердикт Поведенческий анализ.

Обнаружение вредоносного кода

Сайт естественно сразу же был проверен различными онлайн антивирусами, но никаких угроз обнаружено не было. После этого я подумал, что это какое-то недоразумение и написал письмо в поддержку Яндекса, с просьбой прояснить ситуацию, указав что онлайн антивирусы не нашли никаких угроз. Они ответили, что на сайте заражен один из файлов — common.js. Еще я обратил внимание, что с главной страницы появились ссылки на какие-то «левые» сайты. Предполагаю, какая-то биржа ссылок нашла неплохой метод продавать ссылки ничего не подозревающих владельцев. Открыв файл, я действительно обнаружил в нем вредоносный код:
<iframe name="ifn2i8N" src="http://*** " style="width: 0px; height: 0px;"/>...

Борьба с вредоносным кодом

Обрадовавшись такому легкому решению проблемы, я взял файл из старого бекапа, залил на сервер и отписал Яндексу, что все исправил, можно убирать из бана.
Яндекс действительно убрал сайт из бана, и в панели вебмастера было указано, что все ОК. Но прошло пару дней и картина повторилась. Я сразу проверил файл, который был заражен ранее, убедился, что вредоносный код там, и заменил файлом из бекапа.
После сразу написал хостеру, что у меня такая проблема. Они ответили, что проблема только у меня, а у них все в порядке, посоветовали поменять пароли на админ панель, ftp и к базе. Я это все выполнил, подложил чистый файл из бекапа, но прошло буквально пару часов и файл снова заражен.

Решил также проверить соседей по IP. Наугад открыл 5 сайтов, и ни сколько не удивился, что у них с главной присутствуют тоже внешние ссылки, с использованием iframe. Естественно сразу написал хостеру об этом, и получил ответ, что все ОК, заражено не более 5% клиентских аккаунтов и проблем якобы нет. Ответил им, что за чушь и привел доводы о существовании проблемы, тогда они дали уже более развернутый ответ с предложением восстановить бекап. Также рекомендовали поставить доступ на файлы 444 и на каталоги 555, что я и сделал. Но прошел буквально день, доступ возвращен на 644 и 755 соответственно и в файле вредоносный код.

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

Сроков решения проблемы не было озвучено, и сайт постоянно попадал в бан Яндекса и соответственно за это время уже потерял позиции в выдаче.

Поиск по контенту

К конкретным файлам, которые знал, что заражаются чуть ли не каждые пару часов использовал функцию Host- tracker – поиск по контенту. Выбрал Http проверку, прописал URL: путь к файлу mysite***/common.js, который постоянно заражался, прописал мониторить по ключевому слову «iframe», которое присутствовало во вражеском коде, выбрал: все ключевые слова должны отсутствовать на проверяемой странице. Теперь, когда вражеский код появлялся, мне приходило SMS и уведомление на e-mail буквально через минуту (выбрал интервал опроса 1 мин).
Как Host tracker помог оперативно обнаруживать вредоносный код
Поначалу приходилось самостоятельно оперативно исправлять, чтобы Яндекс не банил. Потом обратил внимание, что приходит уведомление, что common.js содержит вредоносный код, и буквально через пару минут файлы уже без вредоносного кода. Хостер наконец-то стал самостоятельно лечить файлы. Это продолжалось еще пару дней, пока сообщения о заражении не перестали приходить.

Проверка контрольной суммы

Для себя дополнительно реализовал простой метод контроля изменения файлов *.js:
Файлы должны быть всякого вражеского кода. Сохраняем, например, утром контрольную сумму файлов с нужным расширением .js, .php и т.д.
find . -type f -name "*.js" -exec md5sum {} ; > file-js1.txt
и повторяем процедуру вечером
find . -type f -name "*.js" -exec md5sum {} ; > file-js2.txt
потом сверяю два этих файла на расхождение в контрольных суммах:
diff -u file-js1.txt file-js2.txt.
Если что-то поменялось, проверяю причину изменения файлов.

После это случая я нашел несколько автоматизированных решений, которые позволяют отслеживать изменения по определенным типам файлов, и пользуюсь ими.

Автор: Alex-HT

Источник

Поделиться

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