коментарів
Поділитися статтею:

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

19.08.2024 на прочитання 16 хвилини

З загальнодоступних статистичних даних відомо, що близько 70% існуючих паролів можуть бути зламані менш ніж за 1 секунду. Інші «розкриваються» трохи довше, і лише деякі з них є умовно стійкими до злому. Знання основних підходів до проведення атак хакерів допоможе виявити найбільш значущі проломи «в обороні» Інтернет-акаунта або сервера, а значить підвищити рівень їх безпеки. Розглянемо ці підходи докладніше та сформулюємо основні рекомендації та правила щодо організації повноцінного захисту веб-ресурсів від злому.

Створіть надійний та унікальний пароль, який неможливо зламати за допомогою генератора паролів. Захистіть свої дані та будьте впевнені в безпеці даних ваших облікових записів!

Що означає слабкий пароль

Стійкість чи сила пароля є мірою оцінки часу, витраченого з його злом. Відповідно, чим слабший пароль, тим менше часу знадобиться зловмиснику для отримання доступу до вашого ресурсу. Чи можна наперед оцінити силу пароля? Так можна.

Для її оцінки достатньо виконати перевірку коду на відповідність критеріям стійкості, куди входить розрахунок інформаційної ентропії пароля та облік впливу інших факторів. За його наслідками можна отримати приблизну оцінку сили секретного коду. У цьому можуть допомогти такі автоматизовані інструменти, як утиліта cracklib та інші подібні.

Для порівняння в Таблиці 1 наведено деякі значення сили або стійкості пароля для випадків використання різної кількості символів. Тут передбачається, що код може бути складений із цифр та символів латинського алфавіту з кількістю 36 знаків. При цьому швидкість обробки даних приблизно дорівнює швидкості відновлення пароля Windows.

Таблиця 1. Сила пароля, що містить різну кількість символів.

Кількість символів Сила пароля, біт Час злому, с
1 5 < 1
3 15 < 1
5 26 600
7 36 777 600
9 46 31557600х32

Як бачимо, різниця в силі коду для різної кількості його символів дуже відчутна.

Зовні слабкий пароль можна відрізнити за наступними характерними ознаками:

  • Має довжину менше 8 символів;
  • Містить лише цифри або лише літери;
  • Відсутні спеціальні символи та/або великі літери;
  • Пароль пов'язаний із особистими даними чи подіями біографії власника.

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

Чому навіть надійний пароль – зламують

Як показує практика, можна зламати практично будь-який секретний код. Відмінність лише у кількості часу, що витрачається. На один пароль може піти менше однієї секунди, а на інший знадобиться витратити 2-3 роки. Причому з кожним роком розрахунковий час злому неухильно зменшується. Цьому сприяє розвиток технологій, зокрема багатопоточних систем паралельних обчислень. Підключивши паралельно кілька десятків комп'ютерів з багатоядерними процесорами, можна кілька десятків і навіть сотень разів зменшити розрахунковий час злому.

Слід зазначити, що якби навіть існував абсолютно надійний пароль, він все одно був би під загрозою злому. Це пов'язано із взаємозалежністю всіх компонентів системи захисту, до якої, зокрема, належать системи зберігання даних та канал для їх передачі. Якщо хоча б один із зазначених компонентів «дасть осічку», зловмисник скористається цим і рано чи пізно перехопить код і розшифрує його.

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

8 методів злому паролів

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

Розглянемо найбільш «популярні» методики реалізації атак у двох зазначених напрямках.

Прямий перебір

Стійкість пароля до такої атаки визначається типом застосовуваного алгоритму, від якого залежить довжина криптографічного ключа та спосіб його формування. Це найбільш повільні атаки, разом з тим, що мають всі шанси на «успіх», оскільки підбір зазвичай проводиться на стороні хакера, не торкаючись при цьому системи аутентифікації «жертви» і таємно.

Зі зростанням довжини коду час злому збільшується за експонентом пропорційно формулі:

T = 2N

Де N – кількість біт, які у коді.

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

Щоб захиститись від "прямого перебору", достатньо скористатися сервісом генерації паролів.

Підбір за словником

Метод ґрунтується на припущенні, що секретний код містить найбільш ходові мережі комбінації символів або пов'язані за змістом слова або словосполучення. Їх список складається заздалегідь, при цьому алфавіт, що використовується, не має значення, оскільки зазвичай перевіряються всі основні алфавіти.

При видимій простоті підходу метод може бути досить ефективний у разі використання простих або, як кажуть, слабких паролів, наприклад, що містять перші шість символів «текстової» або «цифрової» клавіатури.

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

Фішинг

Поширений метод «вивужування» облікових даних користувачів та іншої комерційної інформації всілякими шляхами. Звідси і назва – fishing (лов). Основні напрямки «роботи» зловмисників:

  • Підміна Інтернет-ресурсів банківських установ, фінансових організацій та платіжних систем, розкручених брендів, Інтернет-магазинів тощо;
  • Примусове націлення на потрібні веб-сайти, зокрема, за допомогою редиректу;
  • Розсилки листів від імені відомих брендів та інших «перевірених» веб-ресурсів.

Заманених таким чином користувачів «стимулюють» залишати на сайтах-дублерах дані своїх банківських карток, паролі від облікових записів соціальних мереж та іншу конфіденційну інформацію, яка надалі використовується з корисливою метою.
Охоплення Інтернет-аудиторії є колосальним, а кількість постраждалих від фішингу обчислюється десятками мільйонів людей на рік і постійно прогресує.

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

Експлойти

Цим терміном називають програмний код, що використовується для проникнення в систему за рахунок вразливостей у її програмному забезпеченні. Метою проникнення може бути отримання адміністраторських повноважень з управління системою та/або виведення її з ладу.

Такі програми можуть діяти віддалено через мережу або запускатися локально на конкретному апаратному пристрої за спеціальною командою

Експлойти зазвичай різняться залежно від виду системи – об'єкта злому. Можуть бути експлойти для систем керування контентом (CMS), конкретних сайтів чи соціальних мереж, ОС, браузерів та інших типів програмного забезпечення. Так, браузерний експлойт з легкістю зможе отримати збережені користувачем облікові дані, які дозволять зловмиснику увійти в аккаунт платіжної системи або соціальної мережі.

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

Сніффер

Назва методу походить від англ. sniff (нюхати), що цілком відповідає принципам його використання – аналіз мережевого трафіку щодо виявлення корисної для зловмисника інформації, зокрема, логіна і пароля. При цьому зловмисник може аналізувати лише той трафік, який проходить через мережний пристрій. Можливість його застосування обумовлена ​​тим, що IP-пакети в мережі розсилаються всім її учасникам, а не лише тому вузлу, якому вони призначені.

Метод особливо ефективний на тих ділянках мережі, де як пристрої маршрутизації встановлені концентратори, які не мають «інтелекту» і можливостей, властивих комутаторам.

Захистом від таких атак може стати використання захищених каналів зв'язку передачі даних, наприклад, https-протокол та інші. Крім того, повсюдне використання у всіх сегментах мережі маршрутизаторів нового покоління – комутаторів допоможе не допустити проникнення підозрілих пакетів, чим у принципі усувається можливість «прослуховування» трафіку.

Трояни

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

Одним з різновидів такого ПЗ є кейлоггери та бекдори.

Термін «кейлоггер» походить від двох слів – key та logger, що означає реєстрацію клавіш. Історично такі програми з'явилися лише для того, щоб реєструвати натискання клавіш користувачем у спеціальному лог-файлі. Однак незабаром багатьом стало ясно, що цю його особливість можна використовувати для зовсім інших цілей, а саме – для перехоплення введених користувачем логінів та паролів. Можливості програми дозволяють отримувати інформацію про дату та час натискання клавіші, переміщення та кліки мишею, скріншоти екранів з мобільного або стаціонарного цифрового пристрою та багато іншого.

Бекдори – це категорія програм, що мають навмисний «дефект» або «помилка», що дозволяє виконувати функції стеження і передачі даних з чужого цифрового пристрою. Їх достатньо встановити у системі, після чого вони починають «діяти» згідно з планом їхнього розробника (ів). Надалі довести навмисність «помилки» практично неможливо, що і є привабливою стороною для зловмисників, серед яких можуть бути не тільки хакери-одинаки або хакерські групи, а й цілком респектабельні «білі» компанії, що мають на меті комерційні вигоди.

Загальним захистом від усіх типів троянів є використання ліцензійного або перевіреного ПЗ, обережна робота в громадських мережах, а також дотримання інших відомих запобіжних заходів при використанні неперевіреного ПЗ.

Соціальна інженерія

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

Про одну таку техніку ми вже згадували – це фішинг, основне завдання якого ввести людину в оману і «примусити» її залишити свої секретні дані на неперевіреному веб-ресурсі.

Інші техніки орієнтовані свої точки докладання. Наприклад, одна з них використовує хибне антивірусне програмне забезпечення або, як його називають, «scareware». Його основне завдання – за допомогою хибних повідомлень про погрози змусити користувача виконати певні дії – переказати гроші, передати код банківської картки та інші.

Техніка під назвою «вішинг» (від англ. Vishing) орієнтована використання заздалегідь підготовлених голосових повідомлень, дублюючих будь-які офіційні установи, наприклад, банківські. З їх допомогою зловмисникам нерідко вдається в телефонному режимі ввести абонента в оману, після чого без ризику отримати від нього потрібну інформацію.

Однією з найнетривіальніших тактик є тактика «дорожнього яблука», коли, наприклад, у громадському місці поблизу офісу великої компанії «забуваються» диски, флешки та інші носії даних, інфіковані однією з троянських програм. У результаті створюється ситуація, за якої висока ймовірність того, що інфікований носій буде відкритий одним з офісних працівників компанії, що і потрібно зловмисникам. Після цього до витоку корпоративних даних залишається лише один крок – безпосередній злом і, як свідчить світова практика, він найчастіше буває успішним.

Слід зазначити, що соціальна інженерія є одним з найбільш багатоликих напрямків злому, що постійно «розвиваються». Оскільки люди – це основні «елементи» в будь-якій системі координат, отримавши ключ до яких, можна зламати будь-яку, складну систему захисту навіть без застосування технічних нововведень.

Захистом може стати уважне ставлення до контактів у разі персонального захисту, а також складання спеціальних інструкцій з безпеки для співробітників у межах приватної компанії або великої корпорації.

Райдужні таблиці

У більшості випадків паролі від облікових записів зберігаються в базах даних у зашифрованому вигляді або, як кажуть, у хешах. Хеш пароля є комбінацією символів, отриманою шляхом застосування до нього одного з поширених алгоритмів кодування, наприклад, sha-1 або md5, а також додаткових перетворень.

У разі перехоплення зловмисник для отримання пароля може скористатися вже готовими рішеннями, зібраними ним або його спільниками в так званих «райдужних» таблицях.

«Райдужні» таблиці (rainbow table) є різновидом пошукових таблиць для звернення хеш-функцій. Вони зібрані хеші найслабших, і навіть часто використовуваних паролів. Для формування задається список паролів, над якими потім виробляються криптографічні перетворення. Сам пароль та результати перетворень заносяться до таблиці у вигляді окремого запису. Перехоплений хеш порівнюється з наявними в таблиці і, у разі їхнього збігу, виписується пароль, що належить запису зі знайденим хешом. У цьому полягає суть аналізованої методики.

Для захисту від атаки можна піти двома шляхами - збільшити довжину пароля або скористатися способом шифрування із застосуванням так званої "солі".

Просте збільшення довжини кодового слова може «відсунути» злом на якийсь час, оскільки тепер зловмисникові доведеться формувати «райдужну» таблицю набагато більшого розміру. Проте рано чи пізно злом станеться.

Сіль модифікує вхідні дані хеш-функції і тому її використання практично виключає отримання початкового кодового слова. Насправді це означає додавання до пароля рядка випадкових символів.

Наведемо приклад формування хешу із «сіллю» для системи авторизації Інтернет-магазину.


function salt() {       
                 return substr(sha1(mt_rand()),0,22);
      } 
$salt = salt();
function newhash($password, $salt) {  
                                    return crypt($password, '$2a$10$'.$salt);
 }
$hash = newhash($_POST['pass'], $salt); 

Тут salt() – функція, що формує код "солі"; mt_rand - функція генерації найкращого випадкового значення; sha1 - алгоритм кодування; newhash() – функція, що формує результуючий хеш на основі пароля та «солі»; crypt() – криптографічна функція кодування даних; $password – введений користувачем пароль, над яким виконуються перетворення.

В результаті виконання представленого коду, хеш буде виглядати так:

$hash: $2a$10$67e905fb391b53b4ae0290ySLPYbZ0OGmPpUaImtu0i46IBt2H7Ey

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

Як створити пароль, який не зламають

При розгляді кожного з доступних методів злому ми вже вказували на можливі «заходи профілактики» щодо його запобігання кожній конкретній ситуації. Тепер нам залишається лише подати загальні рекомендації щодо створення пароля достатнього ступеня надійності.

Рекомендації такі:

  • Створювати по можливості довгий код із кількістю символів від 10 до 12;
  • Використовувати обидва регістри при створенні секретного коду ASCII діапазону;
  • Обов'язково вписувати спеціальні символи типу $, %, &, _, ! та інші;
  • Уникати смислового зв'язку між символами кодового слова;
  • Не пов'язувати код із інформацією про себе;
  • Не використовувати те саме кодове слово для всіх облікових записів;
  • Не зберігати паролі у кеші браузерів;
  • По можливості використовувати багатофакторну систему аутентифікації та захищені канали зв'язку.

Виконання наведених вище рекомендацій допоможе убезпечити себе від проникнення зловмисників у особисті облікові записи.

Створити надійний пароль


Close Screen
Yulia Lys
Статей: 37
Оцініть статтю:


Дякую за відгук
Рейтинг: 5 з 5 Голосів: 2