Пароли, пароли

Сен 15, 2014

GFI224-strong-passwordsОткуда утекли базы паролей Mail.ru и Яндекса? Как они были собраны? Анализ методом вдумчивого всматривания показывает, что собирали их с бору по сосенке — ни о какой разовой утечке большого объема речи не идет.

Это, конечно, совсем не про медиа — но как бы немного около. В сеть утекли три «базы» — миллион двести тысяч паролей Яндекс.Почты, немногим меньше 800 тысяч Mail.ru (из них 121618 повторов) и немногим меньше пяти миллионов Gmail.
Официальные комментарии компаний здесь, здесь и здесь. А я, в меру своих невеликих сил, попробовал посмотреть на «базы».

Предуведомление: дальше я буду употреблять слово «базы» без кавычек. Делаю это только для того, чтобы не перегружать текст визуально, а не потому, что имею фантазию о том, что это актуальные базы сервис-провайдеров, утекшие в сеть от них.

Хит-парад

Во-первых, они разные. Вот, для примера, распределение по количеству самых популярных паролей для Яндекса и Mail.ru. На диаграммах — набор паролей одинаковой, эм, мощности: они покрывают примерно по 10% от всего числа пар логин-пароль.  Это 30 паролей для Яндекса и 20 — для Mail.ru:

 

Яндекс
yan_top_10
Mail.ru
mail_top_20
Паролей, состоящих только из цифр — 48% Паролей, состоящих только из цифр — 14,3%

 

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

Говорить о том, что все пароли из списка были вскрыты словарной атакой на сервисы, совершенно невозможно: уже для 25-процентного попадания пришлось бы перебрать 7789 паролей для Яндекса и 17152 — для Mail.ru. Падение популярности происходит очень быстро, и хвост там очень, очень длинный.

Вполне возможно, однако, предположить, что часть паролей (самые популярные) действительно были получены прямым перебором — косвенно на это указывает и огромная (почти половина) доля чисто цифровых паролей у Яндекса. Это бы, например, объясняло крутизну падения кривой частотности. Вот диаграмма популярности 200 самых популярных паролей (шкала отображения — логарифмическая). Сотый по популярности занимает 0,02% всей выборки, двухсотый — 0,01%:

Яндекс
yan_frequency_log
Mail.ru
mail_frequency_log

 

TOP-100 популярных паролей, количество повторов и их процент от общего числа пар «логин-пароль»:

Яндекс Mail.ru
пароль всего
% пароль всего
%
1 123456 39177 3.105 1 qwertyuiop 16896 2.547
2 123456789 13893 1.101 2 qwe123 13889 2.093
3 111111 9826 0.779 3 qwerty 12844 1.936
4 qwerty 7926 0.628 4 qweqwe 4159 0.627
5 1234567890 5853 0.464 5 123456 4106 0.619
6 1234567 4668 0.370 6 1q2w3e4r 2393 0.361
7 7777777 4606 0.365 7 1qaz2wsx 2146 0.323
8 123321 4324 0.343 8 1q2w3e 1571 0.237
9 000000 3304 0.262 9 111111 1499 0.226
10 123123 3031 0.240 10 qazwsx 1499 0.226
11 666666 2808 0.223 11 123qwe 908 0.137
12 12345678 2570 0.204 12 1234qwer 866 0.131
13 555555 2416 0.191 13 1q2w3e4r5t 590 0.089
14 654321 2299 0.182 14 zxcvbnm 559 0.087
15 gfhjkm 1805 0.143 15 klaster 541 0.082
16 777777 1500 0.119 16 123456789 540 0.081
17 112233 1482 0.117 17 asdfgh 440 0.066
18 121212 1432 0.113 18 qwer123 436 0.066
19 12345 1431 0.113 19 qwerty123 353 0.053
20 987654321 1385 0.110 20 qwer1234 341 0.051
21 159753 1172 0.093 21 q1w2e3r4 278 0.042
22 qwertyuiop 1120 0.089 22 zxcvbn 248 0.037
23 qazwsx 1109 0.088 23 1234567 209 0.032
24 222222 967 0.077 24 123456a 207 0.031
25 1q2w3e 939 0.074 25 gfhjkm 196 0.030
26 987654321 874 0.069 26 nikita 191 0.029
27 1q2w3e4r 872 0.069 27 ghbdtn 183 0.028
28 1111111 832 0.066 28 marina 178 0.027
29 123qwe 804 0.064 29 123456q 172 0.026
30 zxcvbnm 772 0.061 30 qweasd 171 0.026
31 88888888 762 0.060 31 123123a 170 0.026
32 123654 724 0.057 32 12345678 168 0.025
33 333333 707 0.056 33 777777 162 0.024
34 131313 697 0.055 34 12345a 161 0.024
35 999999 690 0.055 35 q1w2e3r4t5 161 0.024
36 4815162342 661 0.052 36 12345 146 0.022
37 12344321 639 0.051 37 123321 142 0.021
38 1qaz2wsx 633 0.050 38 qwertyui 136 0.020
39 11111111 615 0.049 39 natasha 133 0.020
40 asdfgh 609 0.048 40 123456789a 132 0.020
41 qweasdzxc 583 0.046 41 555555 132 0.020
42 123123123 578 0.046 42 qwaszx 132 0.020
43 159357 574 0.045 43 qwertyu 132 0.020
44 zxcvbn 571 0.045 44 samsung 132 0.020
45 qazwsxedc 545 0.043 45 12345q 128 0.019
46 ghbdtn 533 0.042 46 159753 128 0.019
47 1234554321 524 0.042 47 asdfgh01 128 0.019
48 1111111111 523 0.041 48 7777777 125 0.019
49 1q2w3e4r5t 500 0.040 49 1232323q 123 0.019
50 1029384756 465 0.037 50 1qazxsw2 123 0.019
51 qwe123 455 0.036 51 123123 120 0.018
52 789456123 448 0.036 52 12345qwert 120 0.018
53 147258369 444 0.035 53 qazxsw 118 0.018
54 1234qwer 439 0.035 54 vfhbyf 114 0.017
55 135790 428 0.034 55 123456789q 112 0.017
56 98765 426 0.034 56 qazwsxedc 112 0.017
57 999999999 422 0.033 57 ruslan 111 0.017
58 12341234 408 0.032 58 654321 110 0.017
59 888888 408 0.032 59 1q2w3e4r5t6y 108 0.016
60 12345qwert 401 0.032 60 serega 105 0.016
61 qweasd 395 0.031 61 666666 104 0.016
62 987654 393 0.031 62 asdasd 104 0.016
63 111222 391 0.031 63 oksana 103 0.016
64 147852369 380 0.030 64 hjvfirf 102 0.015
65 789456 375 0.030 65 stalker 102 0.015
66 asdfghjkl 375 0.030 66 sergey 101 0.015
67 samsung 373 0.030 67 123qweasdzxc 100 0.015
68 159951 365 0.029 68 kakosja 99 0.015
69 101010 357 0.028 69 qwerty1 99 0.015
70 vfhbyf 355 0.028 70 yfnfif 96 0.014
71 444444 353 0.028 71 1234567890 95 0.014
72 nikita 348 0.028 72 123654 95 0.014
73 qwerty123 348 0.028 73 12qwaszx 95 0.014
74 qweqwe 335 0.027 74 fylhtq 93 0.014
75 q1w2e3 331 0.026 75 kristina 92 0.014
76 fyfcnfcbz 328 0.026 76 svetlana 92 0.014
77 0 325 0.026 77 vfrcbv 92 0.014
78 qwaszx 325 0.026 78 a12345 91 0.014
79 qazxsw 322 0.026 79 maksim 89 0.013
80 10203 321 0.025 80 polina 89 0.013
81 marina 319 0.025 81 987654321 88 0.013
82 123789 316 0.025 82 a123456 86 0.013
83 9379992 316 0.025 83 nastya 86 0.013
84 qqqqqq 308 0.024 84 cjkysirj 83 0.013
85 zzzzzz 308 0.024 85 adidas 82 0.012
86 11223344 307 0.024 86 andrey 82 0.012
87 dbrnjhbz 306 0.024 87 master 82 0.012
88 qwertyu 303 0.024 88 123qwe123 81 0.012
89 147258 299 0.024 89 fktrcfylh 81 0.012
90 12345678910 298 0.024 90 q1w2e3r4t5y6 81 0.012
91 232323 296 0.023 91 timoxa94 80 0.012
92 yfnfif 294 0.023 92 123qweasd 79 0.012
93 55555 292 0.023 93 121212 78 0.012
94 aaaaaa 291 0.023 94 159357 78 0.012
95 147852 289 0.023 95 galina 78 0.012
96 fylhtq 287 0.023 96 fyfcnfcbz 77 0.012
97 fktrcfylh 284 0.023 97 natali 77 0.012
98 1qazxsw2 279 0.022 98 qwerty123456 77 0.012
99 q1w2e3r4 278 0.022 99 112233 76 0.011
100 7654321 277 0.022 100 q12345 76 0.011

 

Роботы и боботы

Попавший на пятое место в базе Mail.ru пароль «klaster» открывает  541 ящик с автогенерированными логинами, начинающимися исключительно на буквы «a» и «b».  Где-то, надо полагать, есть и остальные буквы алфавита. Выловить их простым регекспом не получается: они сгенерированы по паттерну «словарное имя (иногда уменьшительное), точка, словарная фамилия с искажением, иногда цифры». 80 паролей «timoxa94» — ключ от более скромного стада, сгенерированного по паттерну «имяфамилиягод».

Интересно поковыряться в выборках из баз по типу логина.

Логин вида «от нуля до 15 букв, потом не менее пяти цифр»
Яндекс (5% от общего числа логинов)
Показаны 33 пароля — примерно 20%
от всех пар «логин-пароль»
Mail.ru (4,8% от общего числа логинов)
Показаны 10 паролей — примерно 20%
от всех пар «логин-пароль»
yan_alphanum_top_33 mail_alphanum_top_10
 Паролей, состоящих только из цифр — 54,4%  Паролей, состоящих только из цифр — 14,5%
Логин вида «от нуля до 3 букв, потом не менее пяти цифр»
Яндекс (1,9% от общего числа логинов)
Показаны 33 пароля — примерно 12%
от всех пар «логин-пароль»
Mail.ru (1,1% от общего числа логинов)
Показаны 10 паролей — примерно 12%
от всех пар «логин-пароль»
yan_num3_top_33 mail_alphanum3_top_10
Паролей, состоящих только из цифр — 56,4% Паролей, состоящих только из цифр — 26,8,3%

 

На логинах Яндекса, больше всего похожих на автогенерированные, внезапно вылез пароль werilopert — 223 вхождения, почти процент. Остальные топ-пароли у обоих участников дурацкие, но похожи на популярные. А этот похож на ленивого ботовода. Вот, например, первые 30 по алфавиту логинов от этого пароля:

RStudio

В среднем для Mail.ru один пароль использован 1,55 раз, для Яндекса — 1.76 раз.

Вконтакте-2009

Абсолютное большинство самых популярных паролей из этих двух списков сейчас запрещены и в той, и в другой почте. Запрещены не вчера, а примерно после утечки базы Вконтакте в 2009 году. Интересно сравнить эту базу со свежими утечками. Полноценного сравнения, конечно, не получится — из VK утекло чуть меньше 50000 пар «логин-пароль» — но какие-то минимальные общие черты можно посмотреть.

Ремарка: я слышал о версии вконтактовской базы из 150 тысяч записей, но найти ее не смог. Буду благодарен, если кто-нибудь пришлет мне ссылку или архив на adworse эт adworse ru.

Из этих 50 тысяч 6138 принадлежат логинам с яндексовской почтой, 30978 — логинам с почтой на разных доменах Mail.ru.

Кривые частотности для всех трех выборок («только Яндекс», «только Mail.ru» и «все») много более пологие, чем в свежеутекших базах, и начинаются с на порядок меньших значений.

 

Яндекс@Вконтакте Mail.ru@Вконтакте Все база Вконтакте
vk_yan_frequency_log vk_mail_frequency_log vk_frequency_log

Обратите внимание на последнюю диаграмму с подзаголовком «Вся база Вконтакте». Примерно так выглядит экспоненциальное распределение — гладкая функция, неровности которой укладываются в случайные значения. А теперь посмотрите на диаграммы для баз Яндекса и Mail.ru вверху страницы, там, где их две. Эти графики выглядят склеенными из разных частей. Я предполагаю, что так оно и есть — эти базы и были склеены из разных баз разного возраста и происхождения (перебор популярных  — то есть, фактически, подбор годных логинов под очень ограниченное число паролей, угон пар при взломе форумов, фишинг, вирусы и кейлоггеры, сниффинг нешифрованного pop3-трафика*). База Mail.ru еще и cклеена грубо, без проверки дубликатов: некоторые пары логин-пароль встречаются по три раза.

* Яндекс говорит, что у него сниффинг невозможен: «Эти пароли не могли быть получены в результате пассивного сетевого сниффинга: в Яндексе достаточно давно все ситуации, в которых передается пароль, защищены TLS. Например, в Почте для протоколов POP3, IMAP и SMTP используется STARTTLS или варианты протоколов со включенным TLS». На это у меня есть картинка:

adworse_—_root_l2tp____—_telnet_—_95×31

UPD: Сегодня (15 сентября 2014) я получил письмо от Яндекса, в котором сказано, в частности, следующее:

завтра, 16 сентября Яндекс.Почта перейдёт на протокол SSL. При передаче данных по IMAP/POP3/SMTP сервис будет требовать шифрование по SSL. Пожалуйста, измените настройки почтовых программ

То есть будет невозможен, ок.

Простите. Вернемся к нашим.

Отобразить на диаграмме выборку паролей, суммарно составляющую 10% от всех пар, невозможно: при таком распределении это больше 200 штук.  Диаграммы внизу — пароли суммарным весом 2% от общей совокупности.

Яндекс@Вконтакте Mail.ru@Вконтакте Вся база Вконтакте
vk_yan_top_12 vk_mail_top_24 vk_top_25

Практически все самые популярные пароли из новых баз входят в TOP-50 базы Вконтакте, хотя структурно большее сходство с топом Вконтакте имеет топ Яндекса. Это может служить косвенным доводом в пользу того, что часть паролей могла быть получена перебором наиболее популярных паролей из вконтактовской базы — за исключением, очевидно, кириллических.

Вот он, TOP-50 Вконтакта 2009 года, в нем есть «любовь», «пароль» и «малышка»:

123456, 123456789, qwerty, 111111, 1234567890, 666666, 7777777, 123321, 1234567, 123123, 000000, qwertyuiop, zxcvbnm, 12345678, qazwsxedc, любовь, gfhjkm («пароль» в латинской раскладке), 1q2w3e4r, 555555, 654321, 12345, 1q2w3e, 1, 987654321, samsung, zxcvbn, 123, 159753, 777777, asdfghjkl, пароль, 112233, 1234, 123654, qazwsx, 5555555, 999999, qwertyuiop[], йцукен, 222222, 88888888, andrey, fktrcfylh («александр»), fyfcnfcbz («анастасия»), k.,jdm («любовь»), knopka, 159357, adidas, малышка, 1q2w3e4r5t

Есть всего одно совпадение по паре «логин-пароль» между старой базой Вконтакте и свежей базой Яндекса (с нетривиальным паролем), при этом совпадений логинов между ними — 78. Нет ни одного совпадения пар между Вконтакте и Mail.ru, совпадений логинов — 136. Это, вероятно, говорит о том, что обе компании после утечки 2009 года отправили значительную часть пользователей  из списка на принудительную смену пароля (что известно и от сотрудников компаний).

Третья сила

Особняком от всего этого стоит база Gmail. Человек, впервые сообщивший об утечке на русском, утверждал, что 60% паролей валидны. Гугл сутки спустя говорил об 1%. Поскольку я не знаю ни одного способа верифицировать эти утверждения, не совершая уголовного преступления, вопрос актуальности паролей остается открытым — хотя по anecdotal evidence из соцсетей мне кажется, что Гугл ближе к правде. Статистически база Гугла представляется наиболее однородной: самый популярный пароль занимает меньше 1% от общего объема, кривая частотности выглядит очень гладкой (топ-5000 — так и вовсе как из учебника), объем полного перебора для 10% логинов составляет 1534 попытки, паролей из одних цифр — 15,7%, а количество логинов вида «2-15 букв и не менее 5 цифр» — менее полутора процентов.

 

25 самых популярных паролей Gmail,
2,6% от общего количества пар
 Частота встречаемости паролей
(топ-200, логарифмическая шкала)
 Частота встречаемости паролей
(топ-5000, логарифмическая шкала)
gmail_top_25 gmail_frequency_log gmail_frequency_log_5000

Я бы взял на себя смелость предположить, что когда-то эта база была самой представительной из всех и содержала наибольшее количество живых пользователей. Но это «когда-то» было несколько лет назад, а сейчас ее ценность — только в броских заголовках.

И чо?

Есть несколько простых правил, которые помогут не попасть в такие базы. Они довольно общеизвестны, но не грех и повторить:

  • Включите двухфакторную аутентификацию, если ваш почтовый сервис ее предлагает
  • Используйте сложные пароли из случайных комбинаций цифр и букв разного регистра
  • Не используйте один и тот же пароль для почтового ящика и для сайта/магазина/форума и чего угодно еще, где ваша почта выступает логином или просто хранится
  • Включите шифрование соединения в почтовом клиенте
  • Никогда, даже если очень-очень хочется, не проверяйте почту и остальное, требующее авторизации, из интернет-кафе
  • Если веб-сайт предлагает вам залогиниться в почту, трижды проверьте адрес веб-сайта
  • Поставьте антивирус и включите в нем автообновление баз

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

То есть где-то сейчас есть актуальные базы, и вы просто пока не знаете, что ваш пароль в них есть.