Вирус на сайте

07 Кві
07.04.2015

Art Depo Programming Tips

Случилось встретить вирус на сайте, который выделил для себя URI и благополучно показывал нужную ему информацию на сайте, используя стили текущего сайта. Показывал он каталог товаров и гугловскую рекламу. В описании самих товаров был полный бред. Но зато товары делились на категории и переходы по ЧПУ благополучно работали.

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

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

AddEventHandler("main", "OnEndBufferContent", Array("BeforeEcho", "BeforeEcho"));
class ClBeforeEcho {
    function BeforeEcho(&$cnt) {
        file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt', "\r\n".var_export($_SERVER, true), FILE_APPEND | LOCK_EX);
        file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt', "\r\n".var_export($cnt, true), FILE_APPEND | LOCK_EX);
    }
}// class

В файле лога было видно, что сервер отдает HTTP 404 и содержимое 404 страницы.

2. В 404.php первой строкой было подключение

include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');

Уже этого оказалось достаточно, чтоб происходила подмена содержимого.

3. Далее, переходя из файла в файл и используя die() выяснялось после какого подключения файла происходила подмена содержимого. Поиски привели в /bitrix/modules/main/tools.php
Здесь в самом конце файла был дописан код проверки URI и подмены контента.

 

 

 

Также был обнаружен код в /urlrewrite.php. Но его удаление ни к чему не привело.

 

 

 

 
 

Есть еще модуль поиска троянов, но в данном случае он был бесполезен.

Это тот путь, который привел к местоположению вируса. Понятно, что до этого были перелопачены все htaccess, urlrewrite.php, header.php, footer.php, *.js и прочие. А он сидел в ядре )

Шаги по устранения

В первую очередь в robots.txt была дописана блокировка адреса

Disallow: /docs*

Пересмотрены Группы пользователей и их права доступа к модулям и папкам сайта.

При помощи модуля Проактивной защиты изменены права доступа к некоторым папкам и файлам.

Удален вредоносный код.

Установлен редирект в .htaccess

RedirectMatch /docs(.*)$ /

Всем известные пути предотвращения:

  • Использовать секюрные пароли.
  • Разграничивать права доступа и открывать минимум.
  • Не давать доступы всем и каждому.
  • Менять доступы, если давали “всем и каждому”.
  • Не ходить по вирусным сайтам.
  • Пользоваться антивирусом.

 

Теги: , , ,