Заражение вирусом, способы лечения
Файлы на хостинге могут быть заражены вирусом, который прописывает свой вредоносный код в файлы ПО, по причине которых интернет-магазин перестает или частично или полностью работать.
Как происходит заражение
Вирус попадает с компьютера, на котором хранились пароли доступа фтп или хранилась почта с паролями от фтп или ssh. Заражение локальной машины происходит стандартным способом через интернет (загрузка файлов, зараженные сайты). Вирус крадет пароли и отсылает их владельцу вируса, далее пароли попадают в базу, вирус-бот заходит на ваш фтп и портит файлы, в которых прописывает строку загрузки себя для других пользователей. Вирус может попасть при краже или подбора паролей к административной панели ИМ. При отключенном режиме запрете использования php кода в шаблонах злоумышленник может внедрить свой код в описание страниц и шаблоны.Какие файлы заражаются
- Заражаются все файлы с именем INDEX (index.php, index.html и т.д.)
- Заражаются все файлы JS (java2.js, Js.js и т.п.)
- Заражается файл .htaccess
- Заражается файл phpshop/inc/footer.inc.php Если на сайте появляются ссылки на сторонние ресурсы, то в него прописывается подключение через функцию include или include_once. Следует удалить эту строку.
- Заражается файлы phpshop/templates/имя_шаблона/main/index.tpl (shop.tpl). В конец этих файлов прописывается код
@php eval(....); php@
. Следует удалить этот код.
Признаки заражения
- Неработающая панель администрирования
- При загрузке сайта в строке состояния появляется запись загрузки файлов с чужого сайта
- Блокировка сайта google.ru
- Перенаправление сайта при заходе на него с мобильного телефона и предложение обновить программу на телефоне
- Добавление ссылок на сторонние ресурсы
Как лечиться
- Проверить свой компьютер и остальные компьютеры, имеющее контакт с сайтом антивирусом. Хотим уточнить, что не все антивирусы находят такие вирусы. PHPShop Software рекомендует использовать антивирус Avira (http://www.avirus.ru/).
- Заменить все FTP, SSH пароли от сайта.
- Для хранения паролей использовать утилиту KeePass Password Safe (http://keepass.info/).
- Для соединения с FTP использовать легальное профессиональное ПО, например CuteFTP (http://www.globalscape.com/products/ftp_clients., хранящая свои пароли в зашифрованном виде.
- Не хранить пароли на бесплатных почтах (Mail.ru и т.д.).
- Восстановить бекап файлов из архива на хостинге или загрузить файлы PHPShop заново на сервер. Загружать нужно текущую версию, установленную на вашем сайте из архива (дается при покупке ПО).
- В случаи перенаправления телефоном достаточно заменить файл .htaccess на оригинальный
- Воспользоваться скриптом для поиска вирусов: [Ссылка]
- Обновить версию PHP на сервере до 5.3 или выше.
- Всегда менять FTP пароли после передачи их третьим лицам, в том числе и технической поддержки. Для третьих лиц использовать отдельные FTP аккаунты для дальнейшего отслеживания возможных путей утечки FTP паролей в логах сервера.
- С помощью утилиты SiteLock создать дополнительный пароль на административную панель для защита от кражи и перебора паролей.
- Включить режим защиты от использования php кода в шаблонах в файле phpshop/inc/config.ini
[function] guard="true"; allowed="leftCatal,isset,getElementById,empty"; deny="include,include_once,require,require_once,file,chmod";
- Включить режим защиты в .htaccess
# Запрет вызовы через браузер сторонних опасных файлов шаблона # default - off RewriteCond %{REQUEST_URI} ^(/phpshop/templates/(.*)) RewriteCond %{REQUEST_URI} !((.*).(gif|jpg|swf|png|jpeg|js|css|GIF|JPG|PNG|JPEG))$ RewriteRule .* - [F] # Запрет вызовы через браузер сторонних опасных загружаемых файлов # Накладывает ограничение для загрузки файлов с другими расширениями # default - off RewriteCond %{REQUEST_URI} ^(/UserFiles/(.*)) RewriteCond %{REQUEST_URI} !((.*).(gif|jpg|swf|png|jpeg|js|css|GIF|JPG|PNG|JPEG|rar|zip))$ RewriteRule .* - [F] # Запрет выполнения php в загружаемых папках # default - off RewriteCond %{REQUEST_URI} ^((/UserFiles/(.*).(phpd?|phtml))|(/phpshop/templates/(.*).(phpd?|phtml))|(/phpshop/admpanel/csv/(.*).(phpd?|phtml)))$ RewriteRule .* - [F]
-
- Проставить параметры доступа к файлам CHMOD согласно инструкции по установке:
- Установите опцию CHMOD 777 (UNIX сервера) для папок:
UserFiles/Image UserFiles/File phpshop/admpanel/csv files/price phpshop/admpanel/dumper/backup
- На все остальные папки права должны стоять CHMOD 755. На все остальные файлы права должны стоять CHMOD 644
- Установите опцию CHMOD 777 (UNIX сервера) для папок:
- 14 Поставить дополнительный пароль на папку авторизации через .htaccess
- Для паролирования директорий используется фирменная утилита SiteLock
- Для ручного проставления паролей следуйте инструкции:
- Создать файл /phpshop/admpanel/.htaccess с содержанием:
AuthName "Member's Area" AuthType Basic AuthUserFile /home/username/username.ru/.htpasswd require valid-user
- Создать файл /home/username/username.ru/.htpasswd Для генерации логина и пароля воспользуемся онлайн сервисом: htaccesstools.com. Результат записать в файл .htpasswd
- На хоcтингах с панелью управления Direct Admin, в том числе и на хостинге PHPShop Host, используется исключительно интерфейс файлового менеджера (находится в личном кабинете клиента (имя_сайта:777). Для паролирования следует через файловый менеджер перейти в папку phpshop/, найти в списке папок "admpanel" и слева от нее нажать ссылку "Protect", после чего откроется диалог создания логина и пароля для защиты этой папки.
Лечение от ссылок в БД
Если вирус прописал рекламные ссылки в базу данных, то лечение выполняется по инструкции:
- Определить код вируса в карточке товара. Для примера возьмем код ссылки
<center><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><!-- big -->< ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-6920992154252242" data-ad-slot="4175090345"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({});</script></center>
- Определить кол-во символом этого кода, для этого можно воспользоваться vipkontent.ru. Данный код содержит 335 символов. Дальше будем использовать значение 336(335+1)
- Обязательно сделать бекап БД (База - Резервные копии). Если чистка кода не удастся, то будет возможность откатить изменения назад.
- Выполнить запрос к БД:
- Ссылки присутствуют в товарах
update phpshop_products set content = SUBSTR(content, 336, 100000);
- Ссылки присутствуют в каталогах
update phpshop_page set content = SUBSTR(content, 336, 100000);
- Ссылки присутствуют в страницах
update phpshop_categiries set content = SUBSTR(content, 336, 100000);
- Если ссылки присутствуют в самом конце описания:
update phpshop_products set content = REPLACE(content, 'содержание ссылок', ' ');
- Ссылки присутствуют в товарах
- Обязательно поменять пароль к MySQL через панель управления хостингом. Новый пароль от MySQL вписать в конфигурационный файл phpshop/inc/config.ini (pass_db="XXXXX")
- Для очень старых версий PHPShop(до 2008 года) проверить , есть ли выбор языка на странице авторизации /phpshop/admpanel/. В них присутствует уязвимость, дающая возможность получить параметры подключения к БД из config.ini.
- Если таковая имеется, то отредактировать файл /phpshop/admpanel/index.php.Заменить строку
require("./language/".$Lang."/language.php");
наrequire("./language/russian/language.php");
Способы защиты
- Установить обновления для версий Start и Enterprise, включающие в себя модули антивируса. Активировать модуль Guard и поставить в его настройках "Расширенный режим". Модуль Guard делает базу контрольных сумм файлов и несколько раз в день проверяет файлы на сервере, если какой-то файл изменился не по вашей милости, то следует сразу проверить его на вирусы. После каждого обновления, замены файлов/шаблонов следует делать обновление контрольных сумм файлов для исключения ложного срабатывания антивируса на ваши же изменения.
- При обнаружении вируса воспользоваться подсказкой встроенного антивируса и восстановить файлы из созданного антивирусом бекапа.
- Использовать сложные комбинации логинов и паролей на фтп. Производить смену паролей каждый месяц.
- При появлении на сайте вирусов, особенно ссылок на внешние ресурсы следует провести комплексный анализ всех файлов сервере через утилиту AI-Bolit. В настройках выставить расширенный режим поиска и после его окончания предоставить отчет нашей технической поддержки. Если будут обнаружены вирусы, то поддержка укажет файлы, которые нужно будет удалить с сервера. При расширенном режиме AI-BOLIT будет показывать много подозрительных на его взгляд включений в файлах. В 99.9% случаем это ложное срабатывание на одноименные функции и методы в вирусах. Решение о заражении вирусом может принять только специализированный специалист из нашей поддержки, знакомый с архитектурой ПО и его файловой структурой.
Если не помогает
Если после всех выполненных манипуляциях для защиты, вирус опять появляется, то возможно 2 варианта такой ситуации:
- На сервере в этом же аккаунте находятся другие зараженные сайты, имеющие доступ к вашим файлам. Следует перенести проект на отдельный аккаунт.
- Злоумышленниками прописан код в ваши файлы, который не может найти антивирус. Тогда следует полностью заменить ваши файлы на заводские из самой последней версии:
- Скачать свежую версию из центра загрузки. Требуется версия для разработчиков в виде архива.
- Из старых файлов оставить лишь
UserFiles phpshop/templates/имя вашего архива phpshop/inc/config.ini (взять параметры подключения к БД)
- Загрузить их архива, скаченного на шаге 1 новые файлы.
- Добавить в php.ini запрет вызова функции chmod и запрет allow_url_fopen.
Кто виноват
PHPShop по лицензионному соглашению не несет никакой ответственности за причиненный ущерб в следствии заражения вирусом вашего сайта. Факт заражения вирусом не попадет под уcловия технической поддержки и восстановление производится силами пользователями или за дополнительную плату работниками PHPShop. Полный список платных технических работ доступен по ссылке
Ответственность полностью ложится на пользователя и его халатного отношения к антивирусной защите хранилища базы паролей доступа.
- Детали статьи
- Категория: Хостинг
- Дата добавлена: 2010-08-13 12:24:57
- Обзор: 14626
- Рейтинг (Голоса): (40)