[Из песочницы] Анализ учетных записей одного (не)надежного email-сервиса

Начало У меня есть увлечение — коллекционировать слитые в интернет базы и прочий «хлам». Как-то раз решил я пошарить на 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 паролей: 1d370127916d477cb8c43ed20586cfde.png

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

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

4e7d2974a36c497697b4ac05728a1f7b.png

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

64d3a05dc9414906a71e5c3d6b981dff.png

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

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

Что можно сказать, взглянув на график? Очевидно, что 1987 год — самый частый год рождения среди пользователей сервиса. Взглянем на период с 1999 по 2020 год:

45bf62026c1b4b6ca509d38a016559b2.png

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

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

32b9ae43aa0648dbbf4fb113c4fad954.png

Эмпирически понятно (да и на гистограмме видно), что имеет смысл проверять только окончания »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 года.

8a4672066e1e4cefa256ef386f627720.png

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

5. Что было в 1937 году? Известная дата? И мне нет. Голову сломал выискивая, что же за событие произошло в этом году, да такое важное, что для россиянина стоит наряду с годами Великой Отечественной Войны. Гугл тоже не помог. Что-же произошло? Да ничего не произошло, просто удобная комбинация для набора на NumPad-e. Аналогичный пик найден в 8246, 2846 году и подобных.

Заключение После этого случая для меня стало очевидным, что та информация, которая вытекает в паблик — это лишь малая часть всего интересного. Намного более интересные и глобальные вещи происходят вне поля зрения публики. Возможно, прямо сейчас данные ваших учетных записей сливаются пузатым парнем из Оренбурга, сидящим в трусах за монитором и пятью VPN-ми, а вы об этом заподозрите только когда вам навязчиво предложат изменить пароль на почте. И хорошо, если так.Бонус Ну и напоследок выкладываю Топ 100 паролей от русского мейл-сервиса актуальностью, как выяснилось, на 2008-й год (@SERVICENAME@ — название того самого сервиса): ТОП 100 паролей 123456666666654321000000555555777777712332112312312345678123456789077777712311111112121212345112233123456789159753987654321123654999999222222gfhjkm1234567qazwsxqwerty98765433333312341111111asdasd131313zxcvbn7894561593571888888147258asdasd123111asdfgh11111111111222777zxcvbnmqwertyuiop09876511111q2w3e0987654321888888887654321147852123789444444ghbdtn123qwe12344321@SERVICENAME@marina010203qwertyu55555551111111111666147258369123123123101010135790252525789456123passwordsamsung555551q2w3e4r232323qqqqqq55519861985198412345543211987qweasd666999nikita159951qazwsxedc198345612387654321134679999999999142536212121111111982natasha11223344124578

© Habrahabr.ru