Как искать вирусы на сайте

Предотвращение вирусов на сайте

Прежде всего перечислим методы для предотвращения появления вирусов и взлома на сайте

Методы борьбы со взломом

1. Своевременно обновлять ПО на сервере;
2. Своевременно обновлять CMS;
3. Своевременно делать резервные копии;
4. Использовать стойкие пароли. Желательно, чтобы пароли, которыми вы пользуетесь, содержали не менее 8 символов, включая цифры и спецсимволы ($%#/*);
5. По возможности, не хранить пароли в открытом виде;
6. Использовать минимально возможные права на доступ к папкам и файлам.

Поиск вирусов

Если возникло подозрение, что на сайте есть вирусная активность, то сначала стоит выяснить, в самом ли деле эта так.
Изучите свой сайт при помощи популярного браузерного расширения Firebug.
Есть ли при загрузки страницы сайта на вкладках заметна следующая подозрительная активность: загрузка iframe, редиректы, подгрузка сторонних страниц или фалов. То это свидетельствует о возможном наличии вирусов и взлома сайта, либо сервера.
Протестируйте Ваш сайт с помощью онлайн сервисов на подобии vms.drweb.com/online или antivirus-alarm.ru, которые помогут Вам выявить наличие вирусов или вредоносного кода и файлы которые заражены.
Просмотрите указанные файлы сайта, которые выявил онлайн сервис. Зачастую злоумышленники прописывают код в начали либо в конце файла.
Если же не нашел, но остались подозрения, что скрипты и файлы сайта заражены, продолжите ручной осмотр сайта.

С помощью ISPmanager 5

Если у Вас на сервере установлен ISPmanager 5, то можно купить модуль VirusDie, который намного облегчает поиск и устранение вредоносного программного обеспечение. Интеграция антивирусной системы Virusdie позволяет проверять сайты на наличие вредоносного кода (включая вирусы, трояны, спам-боты и пр.) в файлах PHP, JS, HTML и системных файлах, а также выполнять лечение зараженных файлов.

Поиск вирусов вручную

Поверхностный осмотр

find /var/www/user/data/www/site.ru/ -type f -mtime -20

данная команда поможет отыскать файлы сайта site.ru, которые были изменены меньше, чем 20 дней назад. Если вы знаете приблизительную дату заражения, изменяя параметр ключа mtime можно довольно быстро отыскать нужные файлы.
Осмотр лог-файла ftp (/var/log/xferlog, например) также поможет в поиске вирусов, если заражение было осуществленно по ftp.

Tue Jun 19 10:56:38 2012 0  16171 /var/www/user/data/www/site.ru/include/virus.php a _ i r user ftp 0 * c

такая запись говорит нам о том, что в папку include 19 июня по ftp был загружен файл virus.php размером 16кб, пользователем user с ip адресом . Обращаем внимание на ключ i в записи, который говорит нам, что файл был загружен на сервер. Также, вероятно, будет полезно осмотреть директории, доступные широкому кругу пользователей. Это такие директории, как uploads, image и д.р. Те, в которые могут писать пользователи сайта.

file /var/www/user/data/www/site.ru/uploads/* | grep -i php

покажет php файлы в папке uploads, независимо от их расширения. Вряд ли вы позволяете своим посетителям загружать php файлы на сервер. А уж если это php файл, притворяющийся картинкой... Например

file in.jpg 
in.jpg: PHP script text

Детальный осмотр сервера

Допустим, вы ничего не нашли при поверхностном осмотре. Переходим к детальному изучению.

htaccess

Бывает так, что редиректы прописываются в файлы htaccess.

find /var/www/user/data/www/site.ru/ -type f -iname '*htaccess'

команда поможет вам найти все файлы htaccess для сайта site.ru. Внимательно изучите эти файлы на предмет посторонних перенаправлений.

Php/js код

Вручную вредоносный код можно искать по паттернам. Чаще всего, это либо закодированный в base_64 код, либо обфусцированный по определенному алгоритмому. Имеет смысл искать следующие, наиболее распространенные, паттерны:

FilesMan, try{document.body, String["fromCharCode"], auth_pass, fromCharCode, shell_exec, passthru, system, base64_decode, chmod, passwd, mkdir, eval(str_replace, eval(gzinflate, ="";function, "ev" "al",md5=,ss st.fromCharCode, e2aa4e

Поиск вредоносного кода можно осуществлять с помощью команды grep, например

grep -ril base64_decode /var/www/user/site.ru

покажет все файлы в папке site.ru, в которых встречается base64_decode. Вообще говоря, некоторые из этих функций и переменных могут использоваться в коде на вполне законных основаниях, поэтому, прежде, чем удалять или чистить файл, убедитесь, что это именно вредоносный код. Также, перед удалением, рекомендую сделать резервную копию сайта.

Если вы нашли вредоносный код на сайте, не спешите править файл. Вначале посмотрите на него с помощью команды stat

stat infected.js

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

Для того, чтобы удалить вредоносный код из файла, может использоваться следующая конструкция

sed -i "" 's/начало_паттерна.*конец_паттерна//g' infected.js

например, код @preg_replace («\x40\50\x2e\53\x29\100\x69\145»,"\x65\166\x61\154\x28\142\x61\163\x65\66\x34 удалиться с помощью команды

sed -i "" 's/@preg.*34//g' infected.js 

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

Действия после очистки

После завершения чистки ваших скриптов желательно сделать следующее:

- сменить пароли доступа к вашему серверу;
- обновить CMS, которую вы используете и все сопутствующее ПО (плагины, модули);
- сделать чистую резервную копию сайта.

Эти действия снизят вероятность последующего взлома и уберегут от потери данных.

Похожие материалы (по тегу)

1 Комментарий

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены