Чорна археологія дата майнінг

Є теми, по яким дуже мало статей за фахом data science, але які представляють інтерес для фахівців з безпеки. Це статистичні дослідження логінів і паролів користувачів – дані, здобуті «чорними археологами» дата майнінг.

image

Мені було цікаво побачити деякі закономірності і для цієї мети я взяв базу даних паролів, витекли в 2014 році – від Яндекса, Гугла і Мейлру, об'ємом 6 мільйонів записів.

Обробка даних

Здобуті дані являли собою три текстові файли, в яких в стандартній формі login@domain.ru:passwd містилися логіни і паролі від різних поштових служб. Загальна кількість записів близько 6 мільйонів.

Обробка такого величезного масиву даних представляла нетривіальну задачу: наприклад, будь символ, який я думав зробити роздільником в текстовому файлі, зустрічався серед логінов або паролів. Так, там зустрічалися всі види лапок, спецсимволи, не наявні на клавіатурі (наприклад такий: §), і навіть символи табуляції.

Взагалі, так як і в логіни і паролі зустрічаються знаки"@«:», точний парсинг файлів для поділу на поля «логін», «домен» і «пароль» мені придумати не вдалося. Приміром, як автоматично розпарсити рядки такого типу:

user@mail.ru@gmail.com:123123 (тут перший @ відноситься до логіну, другий до домену)
user:123@mail.ru:@123123 (а тут перший @ відноситься до домену, другий до пароля)

Дані були згруповані по доменах. Всього у мене виявилося 7423 домену. Більше мільйона разів зустрічаються gmail.com, mail.ru, yandex.ru

З цікавого: домен gmail.com777 зустрічається 295 разів. Багато разів зустрічаються домени gmail.com і кілька сімок. Причина цього залишається для мене загадкою. Чому саме цифра 7 – незрозуміло.

Далі всі домени були згруповані у чотири групи: GMAIL MAILRU YANDEX OTHER. В одну групу потрапили домени, які належать або належали раніше цієї поштової служби (наприклад, в мейлру потрапили домени mail.ru, bk.ru, list.ru, inbox.ru та ін) При цьому розподіл записів стало наступним:

domain count
GMAIL 2308234
MAILRU 1978822
YANDEX 1640733
OTHER 158896

Після цього я вирішив, що дані готові до аналізу.

Аналіз даних: гіпотеза про ботах

Перевіримо гіпотезу, що більшість витекли в мережу акаунтів було створено ботами.

Перший критерій, який я придумав – це випадкова послідовність символів у логіні. Для перевірки я взяв випадкову вибірку з 6000 логінов, і просто переглянув її очима. По швидкості роботи – це найбільш оптимальний варіант, написання будь-якого сценарію зайняло б більше часу. Критерій не підтверджується – випадкових логінов вкрай мало. На вибірку з 6000 логінов випадково згенерованих не більше двадцяти.

Наступний критерій – розподіл довжин паролів. Подивимося на рапределеніе довжини логіна – це рівномірний розподіл, чого не скажеш про паролі.

image

image

Явно видно що вибиваються значення в районі довжини 6, 8, 10 символів. Ймовірно, це і є ті самі згенеровані автоматично паролі, які можуть належати ботам.

Тепер підрахуємо кількість таких «вибиваються» з рівномірного розподілу величин. Для цього я вирахував очікувані значення колонок 6, 8, 10, просто побудувавши згладжену криву – а потім найшел різницю з реальними величинами.

РезультатДовжина 6: 1010907
Довжина 8: 763313
Довжина 10: 246115
Всього: 2020335

Підсумок: приблизно 2 мільйони (тобто третя частина) паролів згенерована штучно.

Перевірка збігів пари логін-пароль для різних доменів

Тепер те, заради чого взагалі це затівалося дослідження: я хотів перевірити, наскільки часто люди ставлять один і той же пароль для різних поштових сервісів – і наскільки це безпечно.

Розбиваємо дані на чотири підгрупи по доменах, і шукаємо перетину: логіну, і по пару логін-пароль. Результати:

Пари доменів Збігаються логіни Співпадаючі пари логін-пароль
GMAIL — MAILRU 2362 121
GMAIL YANDEX 2421 215
MAILRU — YANDEX 42005 33313
GMAIL — OTHER 924 63
YANDEX — OTHER 7075 6732
MAILRU — OTHER 4085 3339


Ми бачимо, що перетинань між gmail і російськомовними доменами набагато менше, ніж між мейл.ру і яндексом. Також видно, що якщо для gmail більше 90 відсотків людей придумують новий пароль для пари яндекс-мейлру навпаки – 80% паролі співпадають!

Перевірка безпеки пересічних паролів

А тепер подивимося, що це за збігаються паролі, наскільки вони безпечні. Для цього спочатку побудуємо топ паролів. З 6 млн. паролів 3.2 млн. унікальні, інші хоч раз дублюються. Виберемо величину топа: скільки у людини може бути поштових скриньок? Навряд чи більше 40. Тоді візьмемо топ-5000 паролів, нижня частота якраз 40. Це значить, якщо ваш пароль потрапив у топ-5000, то він зустрічається в злитих даних понад 40 разів – і швидше за все, використовується ще кимось іншим. Тепер подивимося, скільки паролів з перетинів потрапляють в такий топ.

Для перетинів mailru – yandex (всього 33313 перетину):
топ-5000: 2485 пароля ( 7.4% )
топ-100: 575 паролів ( 1.7% )

З цікавого: На першому місці з цієї вибірки пароль 123456. А на другому місці, що дивно, пароль natasha. Взагалі, жіночі імена в топі зустрічаються досить часто.

Для перетинів gmail – mailru (всього 121 перетин)
топ-5000: 12 паролів
топ-100: 7 паролів

Висновок: хоча для одиноковых логінов 80 відсотків паролів збігаються, з цих паролів 93 відсотки є цілком безпечними.

І на закуску – ті паролі з перетинів gmail-mailru, які входять в топ-5000:

паролі123456
262626
12345
lopata
prodigy
qwerty
qwe123
udacha
1234
svetlana
1q2w3e4r
azsxdcfv

В наступному пості про чорної археології дата майнінг: перевірка збігів логіна і пароля (повного та часткового), а також інші дослідження правди і міфів про паролі.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.