Статистика

Начало


У меня есть увлечение – коллекционировать слитые в интернет базы и прочий «хлам». Как-то раз решил я пошарить на RGhost в поисках «вкусненького». Часто на файлообменниках обнаруживаю инструкции по подключению к чему угодно с вложенными туда логинами и паролями. В этот раз совершенно случайно наткнулся на 700 MB текстовый файл «dump.txt», в котором красиво лежали пары логин-пароль. Сначала огорчился: «Наверное, это всем доступные, собранные вместе, совсем недавно слитые учетные записи Яндекса, Мейла, Google», — подумал я. Но нет… Немного изучив находку, я обомлел.

Для тех, кто на диалапе: накануне ИБ-сообщество взорвалось от новостей о слитых 5 сентября 1 260 614 адресов от Яндекса, 8 сентября 4 425 522 адресов от Mail.ru и 10 сентября 4 661 763 адресов от Gmail.com. Всего 10 347 899 адресов от 3 сервисов. Все они, по всей видимости, были получены из бот сети и произвели фурор — разве что ленивый не написал тогда об этом статью.

И вот, передо мной лежал файл с 25 929 527 парами логин-пароль от одного российского мейл-сервиса… с рабочими парами! Меня тогда это повергло в шок. 25 млн учетных записей, некоторые с весьма сложными паролями. Это означает, что все они лежали в открытом (или плохо обфусцированном) виде в базе весьма крупного e-mail провайдера. Ведь не сбрутили же хеши, например, от паролей «18101547481590210» или «y4_F3Р7TRf-2U-k». Друзья, пожалуйста, не используйте одинаковые пароли для разных сервисов. Как показывает практика, очень часто владельцы даже крупных сайтов недостаточно заботятся о своих пользователях и хранят пароли в базах в открытом виде.

Вы спросите, как я узнал, что креды именно от этого мейл провайдера? Конечно, проведя небольшой анализ, но обо всем по-порядку.

Откуда слив?


Думаю, любой специалист по ИБ, который занимался составлением своих словарей для брута, ответит на этот вопрос довольно быстро. Конечно же, составив частотный список паролей в Топ 100 обязательно найдется название сервиса. Да, как это ни печально, но люди до сих пор в качестве пароля ставят название сервиса. Например, в Топ 100 слитых паролей от Adobe присутствуют следующие экземпляры: «adobe123», «adobe1» и «adobeadobe». Последний, что называется, «психанул», видимо, система регистрации не принимала в качестве пароля просто «adobe». Вот и в нашем случае на 59 месте из Топ 100 паролей я нашел искомый @SERVICENAME@.

ТОП Паролей


Имея такую базу, решил составить свой список самых часто употребляемых паролей для дальнейшего эффективного брута. Понятно, что данный список будет оптимальным при прочих равных условиях — для русскоязычных сервисов электронной почты. Тем не менее, все равно будет полезным. Составил частотный список и встал вопрос, топ сколько паролей будет оптимальным для наиболее эффективного брута? Для ответа на данный вопрос составил гистограмму. Замахнулся на Топ 1000 паролей:



Видим, что после топ 200 паролей количество их использований несущественно.

Гистограмма для топ 200 паролей:



Опять, же после Топ 50 частота использования паролей остается на низком уровне. Гистограмма для Топ 50 паролей:



Далее я сравнил эффективность использования Топ 50 паролей по отношению к Топ 100 паролей. При использовании списка в Топ 50 паролей мы угадаем пароль с вероятностью в 6,98%, а при использовании Топ 100 паролей вероятность будет 8,72%. При увеличении времени брута в 2 раза эффективность возрастет всего на 1,74%. Субъективно, но список из Топ 50 паролей мне показался достаточным.

Года


Далее мне стало интересно, а насколько актуальна эта база? Когда ее начали заполнять и когда слили? Предлагаю свой вариант ответа на данный вопрос. Я предположил, что смогу получить эту информацию из тех же логин-паролей. Я выделил регулярным выражением (19** ИЛИ 20**) пароли и логины и построил гистограмму:



Что можно сказать, взглянув на график? Очевидно, что 1987 год – самый частый год рождения среди пользователей сервиса. Также можно обнаружить корреляцию с демографической статистикой:


Взглянем на период с 1999 по 2020 год:



Из предположения, что в логине пользователи часто указывают дату регистрации, видим, что логинов с датой 2007 — наибольшее количество, с датой 2008 — чуть меньше, а с датой 2009 — намного меньше. Учитывая ежегодный рост публики, можно сделать вывод, что база перестала заполняться (т.е. была слита) в середине 2008 года. Также можно предположить, что база начала заполняться примерно в 1999 году.

Окончания


Известно, что пользователи любят окончания вроде «123» или «1» для «усиления» своих паролей. Решил окончательно убедится в этом.

Гистограмма по Топ 50 окончаний из паролей:



Эмпирически понятно (да и на гистограмме видно), что имеет смысл проверять только окончания «1» и «123», и то при особых условиях. Например, когда с большой долей вероятности можно сказать, что у пользователя пароль с окончанием. Или когда вы неуспешно попробовали, например, Топ 10000 паролей, тогда можно проверить Топ 100 паролей с окончанием «1» и «123». Также при составлении словаря паролей с окончаниями следует учитывать, что окончания чаще всего добавляют к словарным паролям, например «password123», «qwerty1», но редко «19411945123». В последнем случае не всегда даже будет понятно, что это «окончание», а не «корень» пароля.

Чтобы было понятней — 1% человек использует пароли с окончаниями «123» и «1», всего 5% человек использует в своих паролях окончания из списка Топ 50 окончаний. В общем, дополнительно проверить пароль с окончаниями почти всегда не так эффективно, как просто проверить следующий по частоте пароль.

Интересные факты


1. Эффективность частотного словаря. Интересно, что всего 0,00054% паролей (50 штук) могут взломать 6,98% аккаунтов! Сильно, не правда ли?

2. Имена. Очень удивился, что в Топ 100 паролей входили имена marina (60-й), nikita (86-й) и natasha (98-й). Почему именно эти имена?! То-ли Марины, Никиты и Наташи менее других заботятся о своей ИБ, то-ли все любят Марин, Никит и Наташ. В общем, это для меня осталось загадкой.

3. Слабые пароли. В Топ 50 паролей нашлись пароли «1» и «123», видимо, тогда разрешалась любая длина пароля при регистрации. Их, естественно, не стоит добавлять в список для брута современных сервисов, такие пароли сейчас запрещены почти везде.

4. 1941-1945. В гистограмме паролей с датами присутствует 3 пика 1937, 1941, 1945 года.



Для россиян эти даты Великой Победы весьма близки сердцу, поэтому и указывают их в своих паролях. Порадовался за страну и за патриотизм российских пользователей. Молодцы!

5. Что было в 1937 году? Известная дата? И мне нет. Голову сломал выискивая, что же за событие произошло в этом году, да такое важное, что для россиянина стоит наряду с годами Великой Отечественной Войны. Гугл тоже не помог. Что-же произошло? Решил, просто удобная комбинация для набора на NumPad-e, т.к. аналогичный пик найден в 8246, 2846 году и подобных. Но в комментариях Anton-K и bobermaniac напомнили — конечно произошел Большой террор. Солженицын в «Архипелаг ГУЛАГ» об этом весьма подробно написал. Советую прочитать. Террор не ограничивался 1937-1938 годами, однако в этот период носил исключительный характер.

6. Про Марин. По просьбе StopDesign и ilrandir добавляю подробную статистику по аккаунтам с именем «marina»:
25929527 аккаунтов всего
93547    аккаунтов с логином содержащим "marin" в различном Casing-е
Из них (процент от 93547):
    1593  (1.7  %)     с паролем "marina"
    95    (0.1  %)     с паролем "Marina"
    42    (0.04 %)     c паролем "MARINA"
    7     (0.007%)     с паролем "marina" в Suffle-Casing-е ("mArINA", "MaRiNa", "MARINa")

    658   (0.7  %)     с паролем формата /marina\d+/ ("marina43")
    43    (0.05 %)     с паролем формата /Marina\d+/ ("Marina51236")
    18    (0.02 %)     с паролем формата /MARINA\d+/ ("MARINA8734")

    651   (0.7  %)     с паролем с содержанием "marina" ("marinaiii", "17marina77", "Hrayr & Marina")

9314 аккаунтов с логином НЕ содержащим "marin", но с паролем "marina"


Заключение


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

Бонус


Ну и напоследок выкладываю Топ 100 паролей от русского мейл-сервиса актуальностью, как выяснилось, на 2008-й год ( @SERVICENAME@ — название того самого сервиса):

ТОП 100 паролей
123456
666666
654321
000000
555555
7777777
123321
123123
12345678
1234567890
777777
123
111111
121212
12345
112233
123456789
159753
987654321
123654
999999
222222
gfhjkm
1234567
qazwsx
qwerty
987654
333333
1234
1111111
asdasd
131313
zxcvbn
789456
159357
1
888888
147258
asdasd123
111
asdfgh
11111111
111222
777
zxcvbnm
qwertyuiop
098765
1111
1q2w3e
0987654321
88888888
7654321
147852
123789
444444
ghbdtn
123qwe
12344321
@SERVICENAME@
marina
010203
qwertyu
5555555
1111111111
666
147258369
123123123
101010
135790
252525
789456123
password
samsung
55555
1q2w3e4r
232323
qqqqqq
555
1986
1985
1984
1234554321
1987
qweasd
666999
nikita
159951
qazwsxedc
1983
456123
87654321
134679
999999999
142536
212121
11111
1982
natasha
11223344
124578

Комментарии (44)


  1. Cynic_spb
    13.05.2015 22:09

    Марина (Никита, Наташа) это реально загадка
    Интересно было бы узнать сколько процентов учеток Марин взламывается паролем marina


    1. Nik1t03 Автор
      13.05.2015 23:17

      10936 из 25 929 527 пользователей использовали пароль marina = 0.042%


      1. StopDesign
        14.05.2015 14:20

        А сколько из них — Марины?


  1. Anton-K
    13.05.2015 22:22
    +6

    Что было в 1937 году? Известная дата? И мне нет. Голову сломал выискивая, что же за событие произошло в этом году, да такое важное, что для россиянина стоит наряду с годами Великой Отечественной Войны. Гугл тоже не помог. Что-же произошло?

    Можно было просто зайти на Википедию и узнать, что такого случилось в СССР в 1937: Большой террор, вполне сравнимо по важности с ВОВ.


    1. Nik1t03 Автор
      13.05.2015 22:57
      +3

      Ах ну да, что ж я, почти каждый знает об этом, такая близкая сердцу дата. В 2017 будем всей страной отмечать.


      1. Nik1t03 Автор
        13.05.2015 23:04
        +6

        Прошу прощения, некорректно выразился. Конечно дата важная, но не думаю, что это именно та причина по которой мы видим на гистограмме пик.


        1. Regis
          14.05.2015 02:06
          +2

          Да нет. Среди поколения постарше, кто еще хоть как-то застал СССР — это весьма и весьма известный год.


          1. AlexHa
            14.05.2015 06:02
            +2

            Что верно, то верно, все уши прожужжали с середины 80-х. В конце 80-х в магазинах обоев было не найти, так мы в общаге антисталинскими плакатами стены оклеили. И на каждом втором — 1937.


    1. milar
      14.05.2015 10:41
      +1

      На цифровой части клавиатуры любят составлять последовательности, не задумаясь о смысле. В данном случае последовательность в виде Х.

      upd.: почему-то ответ на подобный вопрос был в ветках ниже


  1. bobermaniac
    13.05.2015 22:55
    +5

    1. Nik1t03 Автор
      14.05.2015 07:13
      +1

      Стыдно, конечно… Вроде и Архипелаг ГУЛАГ читал, но никак не связал дату. Сейчас о тех событиях не часто вспоминают, хотя погибло с миллион человек. А сгноили сколько в лагерях. Бабушка моя тоже пострадала, после тюрем с ума сошла последние 20 лет в дурдоме провела. Видимо, действительно на мое поколение не оказывали информационного давления по этому поводу, вот и не отложилось. Значит не Numpad…


      1. Diadlo
        14.05.2015 10:59
        +1

        Я думаю, что все таки это NumPad т.к. лично знаю людей с паролями 1937, 193728 и подобными. Но не отрицаю, что были и те, кто руководствовался историческими причтнами


  1. lexore
    14.05.2015 00:32
    +5

    Интересно, много ли в рунете почтовых сервисов с 25 929 527 юзерами?
    Я бы порекомендовал автору все-таки уведомить @SERVICENAME@.
    Я понимаю, что guard@servicename@ — нехорошо.
    Но обычные пользователи тут ни при чем.


    1. Nik1t03 Автор
      14.05.2015 06:48
      +3

      Уважающие пользователей e-mail провайдеры не хранят пароли в открытом виде и уже связались со мной и готовы получить всю необходимую информацию. Что же касается именно этого @SERVICENAME@ я им сообщил, думаю они в курсе какие пользователи не меняли пароль с 2009 года и заблокируют учетки. Кстати при попытке входа по рабочим кредам пользователям ненавязчиво напоминают о смене пароля. Даже смешно, предложить пользователю сменить его 10-летний пароль «1» с возможностью любезно отказаться.


      1. Anisotropic
        14.05.2015 11:50
        +2

        У меня там 15-летний пароль стоит. И что-то не предлагают сменить.


        1. Nik1t03 Автор
          14.05.2015 12:27

          Если мы говорим об одном и том же сервисе, то значит они знали об утечке и все что сделали это предложили пользователю сменить пароль.


    1. valievkarim
      14.05.2015 16:25
      +3

      Речь идет не о Почте Mail.Ru. Мы уже связались с автором и проверяем эту базу на предмет наличия валидных паролей наших пользователей


  1. megaweber
    14.05.2015 00:44

    Интересно, почти все пароли состоят из цифр, а на западе такая же любовь к цифрам или нет?


    1. Nik1t03 Автор
      14.05.2015 06:24
      +1

      Приведу сравнительную табличку Top20:

      Заголовок спойлера
      Adobe      | rockyou   | SERVICENAME
      -----------------------------------
      123456     | 123456    | 123456
      123456789  | 12345     | 666666
      password   | 123456789 | 654321
      adobe123   | password  | 000000
      12345678   | iloveyou  | 555555
      qwerty     | princess  | 7777777
      1234567    | 1234567   | 123321
      111111     | rockyou   | 123123
      photoshop  | 12345678  | 12345678
      123123     | abc123    | 1234567890
      1234567890 | nicole    | 777777
      000000     | daniel    | 123
      abc123     | babygirl  | 111111
      1234       | monkey    | 121212
      adobe1     | lovely    | 12345
      macromedia | jessica   | 112233
      azerty     | 654321    | 123456789
      iloveyou   | michael   | 159753
      aaaaaa     | ashley    | 987654321
      654321     | qwerty    | 123654
      


  1. Haoose
    14.05.2015 02:54
    +4

    Что было в 1937 году?… Аналогичный пик найден в 8246, 2846 году и подобных.

    Да просто эти цифры расположены по углам NumPad'а. Легко запомнить и быстро набрать.


    1. Nik1t03 Автор
      14.05.2015 04:21
      +2

      Читаю Ваш пост и думаю: «Неужели забыл добавить эту инфу?!» Да нет предложением ранее все есть…


    1. Nik1t03 Автор
      14.05.2015 07:31
      +2

      Все-таки произошло. Обновил статью.


  1. bakhirev
    14.05.2015 08:56

    Интересно ещё узнать TOP фраз в логине, по принципу:

    marina_1
    marina_2
    marina_3
    nikita
    ----
    marina - 75%
    nikita - 25%
    


    1. Nik1t03 Автор
      14.05.2015 09:25

      Выберем всех Наташ, Марин и Никит:

      grep 'marina' logins.txt > marina.txt
      grep 'natasha' logins.txt > natasha.txt
      grep 'nikita' logins.txt > nikita.txt
      

      Подсчитаем количество строк:
      wc -l marina.txt 
      74501 marina.txt
      
      wc -l natasha.txt
      45156 natasha.txt
      
      wc -l nikita.txt
      23300 nikita.txt
      


      Итого:
      marina  - 52.1$
      natasha - 31.6%
      nikita  - 16.3%
      


      1. bakhirev
        14.05.2015 10:03

        Не совсем то. Итого тут получится:

        52.1 + 31.6 + 16.3 = 100%
        

        а я имел ввиду вообще все логины. Понятно что фразы: «marina», «natasha», «nikita» будут в TOP50, но интересно, какие ещё фразы в логине популярны у пользователей.


        1. Nik1t03 Автор
          14.05.2015 10:13

          Как ни странно 25 + 75 тоже 100. К сожалению, не понимаю просьбы.


        1. Nik1t03 Автор
          14.05.2015 10:17
          +1

          Понял, Вы наверное имеете в виду процент Наташ относительно всего числа пользователей?


        1. Nik1t03 Автор
          14.05.2015 10:19

          По какому словарю предлагаете выбирать популярные фразы в 25млн строк?


          1. bakhirev
            14.05.2015 10:38

            Понял, Вы наверное имеете в виду процент Наташ относительно всего числа пользователей?

            Верно
            По какому словарю предлагаете выбирать популярные фразы в 25млн строк?

            А вот на этот вопрос ответить не могу, но алгоритм выборки примерно следующий:
            nik = {
                n: 1,
                ni: 1,
                nik: 1
                ik: 1,
                k: 1
            }
            
            tik: = {
                t: 1,
                n: 1,
                ni: 1,
                nik: 1,
                tik: 1,
                ik: 2,
                k: 2
            }
            

            и т.д. Для последнего логина у нас будут лидеры: «подстроки которые содержатся в максимальном количестве логинов»


            1. Nik1t03 Автор
              14.05.2015 11:01
              +2

              То есть если положим на каждый логин в среднем 10 вариантов мы должны будем выполнить grep 250 000 000 раз… «Отличный алгоритм».


      1. ahmpro
        14.05.2015 10:05
        +1

        для таких целей можно использовать ключик -c у grep

        grep -c 'marina' logins.txt
        grep -c 'natasha' logins.txt
        grep -c 'nikita' logins.txt


      1. TheTony
        14.05.2015 10:07

        Мне кажется, или здесь есть неточность: grep выбрал все строки где в логине есть Марина ИЛИ в пароле есть Марина? Или Вы проводили выборку из файла-списка логинов?


        1. Nik1t03 Автор
          14.05.2015 10:13

          Из файла где только логины.


      1. bask
        14.05.2015 10:47

        а если убрать окончание у всех имён?
        Чтобы в выборку попадали «nikitka», «nikitos», «nikitozzzz»,…


        1. Nik1t03 Автор
          14.05.2015 10:52

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


  1. ilrandir
    14.05.2015 14:23
    +1

    А почему нет сравнения связи логина и пароля? По моему очень интересно тоже. Не говоря уже о простом админ/админ, логинов-паролей по типу masha/masha123 мне кажется было бы тоже не мало.


    1. Nik1t03 Автор
      14.05.2015 15:46

      Действительно, добавлю.


    1. Nik1t03 Автор
      14.05.2015 18:46
      +1

      Взял за пример «marina»:

      25929527 аккаунтов
      93547    аккаунтов с логином содержащим "marin" в различном Casing-е
      Из них (процент от 93547):
          1593  (1.7  %)     с паролем "marina"
          95    (0.1  %)     с паролем "Marina"
          42    (0.04 %)     c паролем "MARINA"
          7     (0.007%)     с паролем "marina" в Suffle-Casing-е ("mArINA", "MaRiNa", "MARINa")
      
          658   (0.7  %)     с паролем формата /marina\d+/ ("marina43")
          43    (0.05 %)     с паролем формата /Marina\d+/ ("Marina51236")
          18    (0.02 %)     с паролем формата /MARINA\d+/ ("MARINA8734")
      
          651   (0.7  %)     с паролем с содержанием "marina" ("marinaiii", "17marina77", "Hrayr & Marina")
      
      9314 аккаунтов с логином НЕ содержащим "marin", но с паролем "marina"
      


      1. ilrandir
        14.05.2015 19:32

        Спасибо, интересно. В данном конкретном случае получается около 3%. Для полного представления было бы еще интереснее узнать какую-то более полную статистику, хотя бы топ 50 логинов-паролей которые содержат друг друга. В наиболее универсальном формате, типа
        /(\w+)\d* \1/i
        (если логины-пароли пробелами разделены), а не просто про Марину. Чтобы, например, попала пара «marina1 Marina999».


        1. ilrandir
          14.05.2015 19:48
          +1

          И вставить это в общий топ 100 паролей, если получится. Типа
          1. 123456
          2. 666666
          3. 654321

          a. @@login@

          n. /@@login@/i

          m. /@@login@/i@50наиболее_частых_окончаний@

          x. что-то еще с логином


          1. ilrandir
            14.05.2015 20:00

            Сорри, намутил там со знаками @, а исправить пока не могу, но, думаю, смысл понятен.


  1. Krey
    14.05.2015 16:37
    +1

    А чем этот сервис лучше mail.ru и прочих, что его название скрыли? Сервис хранящий пароли в открытом виде должен понести репутационные потери, это правильно.


    1. Nik1t03 Автор
      14.05.2015 19:33

      Боюсь все не так однобоко. Да и все-таки почти 10 лет прошло.


  1. data
    19.05.2015 14:26

    2. Nik1t03, с именами картина слегка другая, если учесть vfhbyf, yfnfif, etc., но дамы остаются лидерами