Вчера ночью в нескольких местах, в том числе на Хабре, появилась информация о базе паролей к некоторым аккаунтам на Яндексе. За последние несколько часов мы тщательно её проанализировали и пришли к следующим выводам. Во-первых, речь не идёт о взломе Яндекса — данные стали известны злоумышленникам в результате вирусной активности на заражённых компьютерах некоторых пользователей или фишинга. Это не целенаправленная атака, а результат сбора скомпрометированных аккаунтов в течение длительного периода времени.
О 85% скомпрометированных аккаунтов из этой базы нам уже было известно через анализ их поведения или другими способами. Мы предупреждали их владельцев и отправили их на смену пароля, но они этого не сделали. Это означает, что такие аккаунты, скорее всего, заброшены либо созданы роботами.
Проверить, нет ли вас в списке, очень просто — попытайтесь сейчас зайти в Яндекс.Почту. Всех владельцев оставшихся аккаунтов этой ночью мы отправили на принудительную смену пароля.
Конечно, мы не храним пароли открытым текстом, никогда не передаём их по сети открытым текстом и не открываем их любым третьим лицам. Более того, большинство из этих паролей слишком простые, и сейчас их даже установить не получилось бы. Технические и не очень подробности читайте под катом.
Данные пользователей Яндекса, конечно же, не хранятся в открытом виде: мы используем «соленый хеш» с очень длинной (48 бит) солью. Речь не идёт о «кроте» — пароли «утекли» от пользователей, а не из Яндекса.
Эти пароли не могли быть получены в результате пассивного сетевого сниффинга: в Яндексе достаточно давно все ситуации, в которых передается пароль, защищены TLS. Например, в Почте для протоколов POP3, IMAP и SMTP используется STARTTLS или варианты протоколов со включенным TLS. В веб-версии пароль отправляется на passport.yandex.* по https, при этом для этих адресов не только используется HSTS, но и они помещены в так называемый preloaded list для браузеров Chrome, Mozilla и Яндекс.Браузера. Таким образом, трафик на Паспорт всегда приходит по https. Все это позволяет нам исключить версию с сниффингом.
По нашему мнению, опубликованный список паролей является результатом длительной работы: частично он наполнен данными, которые явно были получены в момент их ввода пользователем — либо с помощью клавиатурного шпиона, либо за счет фишинга. Кроме того, не исключена ситуация кросс-чека: если пользователь использует один и тот же пароль на разных ресурсах, взлом на одном из них приводит к компрометации и других учетных записей пользователя.
Среди скомпрометированных паролей есть такие (например, «qwerty»), которые уже нельзя установить: довольно давно мы включили их в стоп-листы. То есть в опубликованном списке присутствуют очень старые пароли, что мы проверили и по своим базам данных. Это может объяснить, почему некоторые комментаторы пишут, что они нашли в базе логин, которым давно не пользовались. Он мог быть скомпрометирован не на прошлой неделе, а несколько лет назад.
По нашим внутренним данным, около 85% логинов в этом списке уже были известны нам как скомпрометированные. При этом 38% пользователей на момент публикации списка уже было предложено сменить пароль, но они этого не сделали. Это говорит о том, что живые люди этими ящиками не пользуются, а боты перестали пользоваться, когда был установлен флаг смены пароля (там нужно ввести капчу, и обычно бот-мастера предпочитают не покупать ее распознавание, а просто бросить аккаунт).
На всякий случай, опровергнем и спекуляции о предоставлении доступа сотрудникам спецслужб к серверам Яндекса. Мы никому не предоставляем ни пароли в открытом виде, ни даже их хеши. Сотрудники ФСБ, ЦРУ, АНБ, Моссада и других субъектов ОРМ не имеют доступа к серверам Яндекса. Доступ к содержимому почтового ящика может быть предоставлен исключительно по решению суда.
Таким образом, мы исключаем версии об утечке паролей из Яндекса, и считаем, что база могла быть наполнена либо за счет фишинга, либо за счет скомпрометированных компьютеров пользователей, либо за счет кросс-чека.
Взлом пароля не означает взлом сервиса. Пароли могут быть скомпрометированы из-за того, что на компьютере пользователя есть вирусы, которые передают информацию о персональных данных злоумышленникам. Или «утекли» в результате фишинга, когда сайт злоумышленника выглядит, как настоящий, и пользователь вводит там пару логин/пароль. Бывает и так, что пользователи регистрируются на разных сомнительных сайтах, в качестве пароля выбирая тот же, что и у почтового ящика, с которого происходит регистрация.
Фишинг, кросс-чек и утечка паролей с компьютеров пользователей из-за вирусов — постоянная проблема многих популярных сервисов, а не результат одноразовой и целенаправленной атаки пользователей.
В конце хочется ещё раз всем порекомендовать выбирать сложные пароли и регулярно их менять. Не поленимся ещё раз дать ссылку на наш любимый сайт на эту тему: security.yandex.ru.
Автор: ivlad