В 2014 году в сеть утекла большая, на 6 млн. записей, база паролей различных почтовых сервисов. Давайте посмотрим, насколько эти пароли актуальны сейчас, в 2015 году.



Для этого мы сравним эти почтовые пароли с другой большой базой, слив которой был не менее масштабным – но гораздо более незаметным для IT-сообщества. В мае 2015 года в открытый доступ попала база всех личных данных (логины, пароли, мейлы, информация из профиля) с сайта Спрашивай.ру. Судя по всему, пароли хранились в базе в открытом виде. Все они были актуальны на момент слива базы.

Немного статистики:
Размер «почтовой» базы 6034544
Размер базы сайта 3432650
Совпадение логинов 132093
Совпадение пар логин-пароль 77387

Мы видим, что на отдельно взятом сайте в одном случае из 26 мы найдём искомый логин в нашей слитой базе. При этом, с вероятностью 60 процентов мы сможем подорбрать к нему верный пароль.

То есть, пароль на сайте, и на почте, с котрой производится регистрация на этом же сайте – совпадает в 60 процентах. Хороший результат для хакера!

Теперь проверим, насколько эти совпадающие пароли уникальны. Нам известен топ почтовых паролей. Давайте найдём, сколько паролей с сайта попадают в этот известный нам топ. Из 77 тысяч попадают в топ (то есть, заведомо ненадёжные)
Топ-10 9652
Топ-100 10535
Топ-1000 11704

То есть, только одна седьмая часть паролей являются ненадёжными, про остальные пароли – пользователи уверены в их безопасности. Это, напоминаю, май 2015 года – с момента слива почтовой базы прошло 9 месяцев.

Выводы: судя по всему, более половины пользователей используют при регистрации на различных сайтах свой почтовый пароль, причём в случае компрометации его – особо не утруждают себя его заменой. Вероятность встретить на отдельно взятом сайте слитый логин примерно 1/25, и в половине случаев пароль при этом будет совпадать.

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

R-скрипт поиска совпадений
## Загрузка данных

DATA_1 <- readRDS( file = "DATA_MAIL.rds" )

DATA_2 <- readRDS( file = "DATA_SITE.rds" )

################################################

# 6034544  
nrow(DATA_1)

# 3432650
nrow(DATA_2)

################################################

# Совпадение чистых логинов: 132093
length(
      intersect(DATA_1[,1],DATA_2[,1])
)

# Совпадение пар логин-пароль: 77387
length(
      intersect( 
                  paste( DATA_1[,1], DATA_1[,3], sep = "|" ),
                  paste( DATA_2[,1], DATA_2[,3], sep = "|" )
                  )
)

#################################################

# Построим пересечение

VECTOR_I <- intersect( 
  paste( DATA_1[,1], DATA_1[,3], sep = "||" ),
  paste( DATA_2[,1], DATA_2[,3], sep = "||" )
)

VECTOR_I <- strsplit(VECTOR_I, "||", fixed=TRUE) 
DATA_I <- matrix(unlist(VECTOR_I), ncol=2, byrow=TRUE)
DATA_I <- as.data.frame(DATA_I)

colnames(DATA_I) <- c("login","passwd")

#################################################

# Проверим, сколько паролей из пересечения попадают в старый топ-N
PASS_SUM <- readRDS( file = "PassSum.rds" )

PASS_10 <- PASS_SUM[1:10,]
PASS_100 <- PASS_SUM[1:100,]
PASS_1000 <- PASS_SUM[1:1000,]

# 9652
length(
    which( 
        DATA_I$passwd %in% PASS_10$passwd 
        )
)

# 10535
length(
  which( 
    DATA_I$passwd %in% PASS_100$passwd 
  )
)

# 11704
length(
  which( 
    DATA_I$passwd %in% PASS_1000$passwd 
  )
)




Предыдущие выпуски «Черной археологии датамайнинга»
Черная археология дата майнинга: анализ данных
Что может быть эффективнее атаки по словарю?

В следующем выпуске: ищем ботов, определяем «случайные» пароли, исследуем статистические распределения. Stay tuned!

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


  1. Sergey-S-Kovalev
    13.07.2015 20:41
    +1

    Не знаю как у других, но у меня есть мусорный почтовый ящик. У него пароль на 100% совпадает с кучей паролей от разнообразных сайтов сомнительной ценности где логином указан этот почтовый ящик. Там стоит простой пароль из слова существующего в словаре и трех цифр.
    И существует все это просто потому что, иногда, нужно добраться до архива/картинки/комментария, которые требуют авторизации. Указывать основную почту для «легального спама» смысла не вижу. В той почте нет приватной информации, привязки с сервисам, где есть деньги или ресурсы.

    Аналогично существует логин фейсбука для авторизации через фейсбук.

    Так вот. Ценность этого почтового ящика и учетки фейсбука для меня равна нулю. Если кто то чего то нашел, и «взломал», ну дык пускай считает себя кулхацкером. Почти одноразовая почта для почти всегда одноразовых регистраций на всяких непонятных сайтах. Пропадёт доступ, я даже ответ на секретный вопрос не вспомню.

    И сдается мне, что весомый процент таких совпадений, аналогичные «мертвые» души.


    1. polym0rph
      13.07.2015 23:52

      bugmenot.com довольно часто помогает в таких случаях.


      1. igorp1024
        15.07.2015 01:50

        И mailinator.com также (хотя про него сервисы иногда в курсе).


  1. caveeagle Автор
    13.07.2015 20:53
    +1

    Да, вполне может быть и так.

    Но подойдём к этому по научному. Как проверить данную гипотезу? Для этого надо:

    1. Найти сайт, который не будет «разнообразным сайтом сомнительной ценности». Например, Хабр.
    2. Получить список логинов для этого сайта. Найти пересечения логинов с имеющимися у меня.
    3. Через прокси проверить валидность паролей для такого пересечения.
    4. Предупредить тех людей, у которых пароли совпадают.
    5. Написать ещё один пост на Хабр по результатам.
    Интересно, что скажут на это админы Хабра?


    1. Sergey-S-Kovalev
      13.07.2015 22:27
      +1

      Уже в первой половине второго пункта все плохо.

      2. Отдать почта/пароль админам хабра в обмен на обещание возврата статистики.
      3. Админы Хабра сверяют почта/пароль с хэшами в базе.
      4. Админы Хабра пердупреждают владельцев уязвимых аккаунтов. Кто не пошевелился, тот мертвая душа.
      5. Вы получаете какой процент логинов был уязвим без какой либо конкретики.
      6. Статья с результатами.

      + Легально
      + Нет проблем с законом
      — полностью зависимо от доброй воли админов.

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

      Отмечу так же что у меня есть пара друзей, у которых есть здесь аккаунты, но они покинули сферу ИТ достаточно давно. Те самые мертвые души.


      1. caveeagle Автор
        13.07.2015 23:29
        +1

        Написал админам через feedback, жду ответа =)