Поиск и устранение вредоносного кода на сайте. Рассылка спама.
Автор:
|
|||||||||||||||||||||||
В сети интернет существует множество вирусов, распространяющихся через веб-сайты. Ответственность за безопасность веб-ресурса лежит на его владельце, однако, к сожалению, не все относятся к данной обязанности с должным вниманием. Соблюдение нескольких элементарных правил поможет защитить Ваш сайт:
Рассмотрим вариант заражения, связанный со взломом сайта. Одним из самых распространенных последствий взлома сайта, является загрузка вредоносных скриптов на хостинг и внедрение их в кодовую базу этого сайта. Подобные скрипты используются для различных вредоносных действий, таких как рассылка спама, осуществление DDOS/bruteforce атак на другие ресурсы, распространение вирусов, перенаправление посетителей на фишинговые страницы, и выполнение других запрещенных действий. Данная активность приводит к нагрузке веб-сервера, что сказывается на остальных его пользователях. В связи с этим, подобные действия отслеживаются и изолируются хостинг-провайдером.
У владельца сайта возникает два важных вопроса: 1. Что сделать, чтобы хостер разблокировал сайт? 2. Что сделать, чтобы предотвратить подобную ситуацию в будущем?
Что сделать, чтобы хостер разблокировал сайт? Когда хостинг-провайдер блокирует аккаунт за рассылку спама, владельцу данного аккаунта высылается соответствующее уведомление, содержащее пример вредоносного сообщения, отправленного с его сайта . Из указанного сообщения иногда можно определить файл, содержащий вредоносный скрипт, который осуществлял рассылку. Пример:
Здесь, как и во всех письмах, присутствуют поля “FROM:”, “TO:”, “SUBJECT:”, из содержимого которых можно определить, отправителя, получателя и тему сообщения. Иногда (но не всегда) в заголовках присутствуют поля “X-PHP-Scrip”и “X-PHP-Originating-Script”, которые содержат адрес скрипта, при помощи которого осуществлялась рассылка спама. В данном случае это скрипт под именем 841rewb3v4x.php Поиск и устранение скрипта можно организовать двумя способами:
Первый случай универсальный и может быть реализован множеством способов. Рассмотрим более подробно второй способ, с использованием доступа к файлам сайта по протоколу ssh.
Вначале необходимо подключиться к серверу. Пример подключения:
После установки соединения следует перейти в локальную директорию сайта, для этого необходимо выполнить следующие команды:
где domain.com - это название Вашего сайта. Выполняем команду для поиска вредоносного скрипта:
В данном случае команда вывела следующий путь к файлу:
Если внимательно проанализировать программный код файла ,то можно обнаружить зашифрованный блок, подобный следующему:
Для примера, приведен самый распространенный случай исполнения вредоносного кода. Подобная структура файла обозначает, что в файле содержится вирусная сигнатура, которая исполняется посредством функции php eval() и декодируется через base64. Сочетание функции eval(base64_decode самое распространенное во вредоносных скриптах, так как она позволяет исполнять вредоносный код, который находится в закодированном виде, тем самым затрудняя анализ когда. Более подробно об этих функцияx можно прочесть на официальном сайте PHP: http://php.net//manual/ru/function.eval.php http://php.net//manual/ru/function.base64-decode.php
После того как Вы нашли файл, который осуществлял рассылку спама, не спешите его удалять, он понадобится для дальнейшего анализа проблемы, так как этот файл лишь следствие влозма, а не источник проблемы. Необходимо зафиксировать дату создания файла, для этого воспользуемся командой ls:
И получим примерно следующий вывод:
Теперь видно, что дата создание файла “Nov 14 2012” 14 ноября 2012 года. Очень распространенный случай, когда все вредоносные файлы, которые находятся на сайте датируются одной датой, поэтому выполняем команду для поиска всех файлов на сайте за указанную дату:
Вывод:
Проверим все эти файлы на наличие функции eval(base64_decode:
Вывод:
В данном случае повезло, так как зафиксирован только один файл с подобной структурой.
Необходимо выполнить поиск всех скриптов на сайте которые используют функцию eval(base64_decode, для этого выполним команду:
Вывод:
Проверяя все файлы из этого списка можно обнаружить, что все они имеют одинаковую структуру похожую на первоначальный файл 841rewb3v4x.php
Зараженные файлы можно разделить на 2 группы: 1) Файл, который полностью содержит вредоносный код; 2) Файл, в который вставлена строчка вредоносного кода.
Если Вы сталкиваетесь с первым типом файла, то его можно удалять. Если Вам попался второй тип, когда скрипт необходим для работы сайта, но в него вставлена строчка, тогда достаточно удалить данную строку. Самые распространенные случаи, когда строка вставлена в самом начале файла или в самом конце файла, это используется для того, чтобы скрыть вставку начала вредоносного php скрипта <$php код_скрипта $> в уже существующем скрипте.
Как же локализовать проблему и понять каким образом было реализовано первоначальное заражение? В приведенном примере видно, что файл 841rewb3v4x.php имеет такую же дату создания как и системные файл CMS wordpress:
wp-config.php - системный файл CMS Wordpress. Таким образом, можно сделать вывод, что вредоносный файл уже присутствовал на сайте, перед тем как он был загружен на хостинг. Очень часто бывают случаи, когда вредоносный скрипт устанавливается вместе с каким-либо модулем, или плагином. Всегда перед загрузкой какого-либо модуля, его необходимо тщательно проверять,особенно если загружается пиратская копия платного модуля.
Существует еще один способ поиска источника рассылки спама и других вредоносных скриптов. Для того, чтобы скрипт осуществлял рассылку, к скрипту должен придти запрос на выполнение из сети интернет. Все запросы логируются и детализируются в лог-файлах веб-сервера. Лог-файлы доступны в директории /logs/ Для проверки логов на наличие обращений к вредоносным файлам необходимо выполнить следующие команды:
вывод:
Из вывода видно, что POST запросы приходят к файлу
Который ранее мы нашли и зафиксировали как зараженный.
Что сделать, чтобы предотвратить подобную ситуацию в будущем?
Рекомендации по безопасной работе с сайтом
При поиске и устранении вредоносного кода на сайте, нужно оперировать всеми возможными источниками информации. Как минимум это: - Лог файлы веб-сервера - Лог файлы FTP-сервера - поиск файлов на сайте с функцией «eval(base64_decode» или «eval()» содержащий закодированный код.
Хочется отметить, что ActiveCloud не предоставляет услуг по поиску и устранению вредоносного кода на сайте. Код сайта это область компетенции разработчиков сайта. | |||||||||||||||||||||||
Если решение вопроса найти не удалось, Вы можете отправить нам заявку: |