Як зламують паролі?

У реальному житті облікові записи зламують не так, як показують у фільмах. На практиці пароль здобувають одним із трьох способів. Його зламують: підбирають, перебираючи варіант за варіантом, — зазвичай за хешами з викраденої бази даних сервісу. Його крадуть: користувач сам вводить його на фальшивій сторінці або його копіює шкідлива програма. Або його використовують повторно: зловмисники беруть пароль із давнішого витоку й перевіряють його на інших сервісах, розраховуючи, що власник користувався ним і там. Різниця важлива, бо проти кожного способу потрібен свій захист. У статті розглянуто основні методи і для кожного пояснено, що допомагає.

Паролі з попередніх витоків

Щороку сервіси зламують, і бази даних їхніх користувачів опиняються у продажу або у вільному доступі. Зловмисники беруть пари «електронна адреса — пароль» з одного витоку і автоматично перевіряють їх на сайтах банків, поштових сервісів, магазинів і соціальних мереж — атака, яку називають підстановкою облікових даних (credential stuffing). Жодного підбору тут немає, і спрацьовує це з простої причини: люди повторно використовують паролі. Навіть надійний пароль тут не допоможе, якщо він однаковий усюди.

Що допомагає: окремий пароль для кожного облікового запису, щоб витік в одному сервісі не відкривав нічого іншого.

Фішинг

Фішингова сторінка — це копія справжньої сторінки входу за трохи іншою адресою, на яку потрапляють за посиланням у листі чи повідомленні, що спонукає діяти негайно: блокування облікового запису, посилка, рахунок. Усе, що ви там введете, іде прямо до зловмисника. Довжина та випадковість пароля тут нічого не важать, бо вводите його ви самі.

Що допомагає: відкривайте сайти зі своїх закладок, а не за посиланнями. Користуйтеся менеджером паролів: він пропонує заповнити пароль лише для адреси, для якої його збережено, тож якщо він не пропонує збережений пароль, перевірте адресу, перш ніж вводити його вручну. І ввімкніть двофакторну автентифікацію, через яку викраденого пароля самого по собі недостатньо. Одноразові коди, однак, можна виманити фішингом так само, як і пароль. Ключі доступу (passkey) і ключі безпеки FIDO2 — ні, бо вони відповідають лише справжньому сайту: саме цю властивість NIST називає стійкістю до фішингу.

Шкідливе програмне забезпечення

Програми для викрадення даних — стилери (infostealer) — копіюють паролі, збережені в браузері, разом із сесійними файлами cookie, і відсилають їх за кілька секунд після запуску, а кейлогери — програми, що записують натискання клавіш, — фіксують усе, що вводять із клавіатури. Викрадений сесійний файл cookie може дати зловмиснику доступ до облікового запису, у якому вже виконано вхід, — без пароля і без другого фактора. Такі програми зазвичай потрапляють через піратське програмне забезпечення, фальшиві оновлення та вкладення в листах.

Що допомагає: встановлювати програми лише з офіційного джерела, оновлювати систему й браузер, і ставитися до несподіваного вкладення як до загрози — хоча ці заходи не гарантують повного захисту. Якщо пристрій заразився, дійте з іншого, напевно не зараженого пристрою: змініть паролі, скористайтеся опцією сервісу вийти з усіх сесій і перевірте, що резервна електронна пошта, номер телефону й налаштування двофакторної автентифікації ніхто не змінив. Заражений пристрій очистіть, перш ніж знову входити з нього.

Підбір пароля через форму входу

Перебирати паролі прямо на сайті — повільна справа: добре зроблений сервіс затримує, блокує або вимагає капчу після кількох невдалих спроб. Тому довго атакувати один обліковий запис невигідно, і поширений підхід протилежний: кілька найпоширеніших паролів — 123456, password, qwerty123 — перевіряють на мільйонах облікових записів; це називають розпиленням паролів (password spraying). Цілеспрямований підбір працює так само з особистими даними: іменами дітей і тварин, датами народження, улюбленою командою — усе це легко знайти в соціальних мережах.

Що допомагає: будь-який пароль, який не є поширеним і не складений із фактів про вас, — див. як створити надійний пароль.

Офлайн-підбір паролів за викраденими хешами

Правильно побудований сервіс не зберігає паролі у вигляді, який можна прочитати. Він зберігає хеші — результат односторонньої функції, за яким пароль неможливо обчислити у зворотному напрямку. Коли така база даних витікає, зловмисники перевіряють можливі паролі: обчислюють їхні хеші на своєму обладнанні й порівнюють результати. Жодна форма входу їх не затримує, а швидкість залежить від хеш-функції, яку обрав сервіс, і від її налаштувань. Для швидких застарілих функцій, таких як MD5, одна сучасна відеокарта перевіряє десятки мільярдів варіантів за секунду. Функції, розроблені саме для зберігання паролів, — Argon2id або bcrypt у старіших системах — навмисно повільні й знижують цю швидкість на багато порядків, тому саме їх називають чинні рекомендації.

Словникові атаки

Кандидати тут не випадкові. Інструменти для зламу починають зі списків справжніх паролів із попередніх витоків і зі словників слів та імен, а потім застосовують правила, що імітують людські звички: велика літера на початку, рік або знак оклику в кінці, літера, замінена схожим символом. Такий пароль, як Summer2024!, виглядає складним, але перевіряється одним із перших. Сіль — унікальне випадкове значення, яке додають до кожного пароля перед хешуванням, — заважає зловмисникам використовувати заздалегідь обчислені таблиці, відомі як райдужні таблиці, і зламувати всі однакові паролі одночасно, але вона не робить передбачуваний пароль менш передбачуваним.

Повний перебір (brute force)

Коли словники вичерпано, залишається перевіряти всі комбінації, і для випадково згенерованого пароля результат визначає саме довжина. Як ілюстрацію візьмемо швидкий хеш і пароль, у якому кожен символ обрано незалежно й з однаковою ймовірністю з 94 друкованих символів ASCII, без пробілу. Таких паролів із 8 символів близько 6 × 1015; за швидкості десять мільярдів спроб за секунду перевірка всіх займе близько тижня, а в середньому правильний варіант знайдеться за половину цього часу. Для 12 символів повний перебір на тому самому обладнанні забере близько 1,5 мільйона років, а для 16 ця цифра виходить за межі будь-якого осмисленого порівняння. Це весь аргумент на користь довгих випадкових паролів: словники проти них майже марні, а перевірка всіх комбінацій за цих припущень непрактична. Наш генератор надійних паролів створює їх у вашому браузері й показує для кожного оцінку ентропії в бітах.

Що допомагає: довгий пароль без передбачуваних шаблонів, що на практиці означає згенерований. Ви не можете контролювати, як сервіс зберігає ваш пароль, тож розраховуйте на найгірший варіант і обирайте такий, що буде стійким до підбору, навіть якщо його зберігають зі швидкою хеш-функцією.

Підглядання та соціальна інженерія

Найстаріші методи не потребують жодних технологій. Пароль підглядають через плече, з наліпки на моніторі або з екрана, показаного під час відеодзвінка; або зловмисник просто просить його, видаючи себе за співробітника підтримки чи колегу, — це називають соціальною інженерією. Жоден справжній сервіс ніколи не попросить ваш пароль по телефону, електронною поштою чи в чаті.

Що допомагає: ніколи не казати й не надсилати пароль нікому та не тримати його там, де інші можуть побачити.

Що з цього випливає

Різним атакам протидіють різні звички, і три з них виконують більшу частину роботи: унікальний пароль для кожного облікового запису, згенерований, а не вигаданий, плюс двофакторна автентифікація — або ключ доступу замість пароля, якщо сервіс його пропонує. Вони не захищають від усього — від викраденої сесії, наприклад, — тому порада щодо шкідливих програм вище теж має значення. Більше статей зібрано в матеріалах про паролі.