Коли хакери або тестери проникнення зламають систему і хочуть отримати доступ до відкритих паролів із дампів бази даних, вони повинні спочатку зламати збережений хеш пароля. Багато зловмисників занурилися в цю концепцію: вони спробували будь-яку довільну атаку пароля, яку вони хотіли спробувати, з невеликою причиною. У цьому обговоренні буде продемонстровано деякі ефективні методи злому паролів і те, як поєднати статистичний аналіз паролів із інструментами для створення обмеженого за часом методу ефективного та успішного злому.
Зломання паролів — це вмираюча справа. Користувачам потрібно створювати більш складні паролі, і деякі бекенд-розробники почали використовувати такі механізми, як Bcrypt , щоб замінити стандартні хеш-функції. Генерація хешів Bcrypt займає більше часу, тому паролі стають важче зламати. Зломщикам потрібно дуже швидко генерувати хеш, щоб ефективно зламати паролі, тому Bcrypt є дуже потужним інструментом для боротьби з такими атаками. Щоб проілюструвати цей приклад, програма для злому паролів, створена з 25 кластерів графічних процесорів, запущена в 2012 році, змогла досягти швидкості генерації хешів NTLM у 350 мільярдів хешів на секунду, тоді як швидкість генерації хешів Bcrypt становить 71 000. Використовуючи це як модель порівняння, для кожного згенерованого хеша Bcrypt можна згенерувати 5 мільйонів хешів NTLM. Зіткнувшись з алгоритмом Bcrpyted, хакери повинні робити більш обчислювальні здогадки про паролі і не можуть покладатися на застосування грубої сили проти кожної можливості.
Примітка: якщо зловмисник знає, що довжина пароля настільки коротка, що злом ключового простору з силою не займе багато часу, немає необхідності робити кроки інкрементної атаки.
Ефективність часу стала ключовим фактором успішного злому паролів. Хоча було б добре перезаписати весь критичний простір пароля користувача, час, необхідний для цього, часто неможливий. Тому при зломі важливо спочатку спробувати найбільш економічну атаку, а якщо це не вдалося, перейти до більш повільної криптографічної атаки, яка охоплює більше ключового простору. Найшвидший спосіб - це проста атака словника, заснована на загальних паролях користувачів та попередніх дампах паролів. Звідти слід спробувати маніпулювати словником, щоб додати в кінці цифри чи символи або змінити букви. Це називається гібридною атакою або атакою на основі правил. Далі ви можете спробувати скористатися можливостями машинного навчання для створення можливих паролів. Гарним прикладом є ланцюг Маркова. Об'єднавши звичайні елементи, які існують в англійській мові для формування слів (наприклад, «ing», «er», «qu»), можна сформувати гарне здогадання про пароль, наприклад, наведений нижче. Хоча саме цей пароль легко зламати будь-яким способом, для спрощення всіх векторів атак ми будемо використовувати цей пароль. Password1234Password1234
Нарешті, цілеспрямована насильницька атака, яка називається масковою атакою, охоплює всі ключові простори даного пароля на основі криптографічної структури. Під «структурою» пароля я маю на увазі тип і порядок символів, які використовуються для створення пароля. Наприклад, «структура» з великими літерами, за якою йдуть 7 малих літер, а потім 4 цифри (позначаються як ). Password1234ullllllldddd
малі літери , великі літери , символи , числа(l)(u)(s)(d)
Отже, якщо зловмисник вирішить використовувати цю структуру для створення всіх можливостей комбінації символів, він або вона врешті-решт знайде пароль. Тоді питання для зловмисника стає: під час атаки на набір хешів, яку структуру слід націлити в першу чергу? Password1234
Щоб допомогти відповісти на це запитання, я провів деякий статистичний аналіз популярних криптографічних дампів, щоб побачити, чи існують криптографічні структури, які є більш поширеними, ніж інші криптографічні структури, і наскільки ця структура правильна. Розмір вибірки з понад 34 мільйони публічно оприлюднених паролів включає такі відомі парольні дампи, як RockYou, LinkedIn, phpBB.
На малюнку нижче показано частоту структури маски для кожної унікальної маски. Червона лінія означає лінію 50%, яка з'являється після 13-ї найчастішої маски.
Це означає, що на перші 13 унікальних структур маски припадає 50% вибіркового пароля. Структура понад 20 мільйонів паролів у вибірці знаходиться в перших 13 масках. Ці результати досить шокують з точки зору поширеності структурованих паролів. Інші 50% знаходяться в межах довгого правого хвоста, який скорочено на цьому малюнку. Насправді з 260 500 унікальних масок на цій картинці показано лише 400. Концепція цієї універсальної структурної криптографії неймовірна; Але це не дивно, коли ви думаєте про те, як користувачі створюють і запам'ятовують свої паролі. Виходячи з аналітичних даних, є ряд логічних факторів, які допомагають пояснити, як це можливо. Коли користувача просять вказати пароль, що містить велику літеру, він використовується як перший символ понад 90% випадків. Коли запитують цифри, більшість користувачів додають дві цифри в кінець пароля (ймовірно, рік закінчення навчання). Наступним найпопулярнішим варіантом є закінчення пароля чотирма цифрами (можливо, минулого або цього року). У цьому випадку наступне найпопулярніше число має одну цифру в кінці, а в кінці – три. Структурні спільності, подібні до цього, дозволяють зловмиснику передбачити, яка структура пароля користувача, швидше за все, буде.
Використовуючи ці структурні знання, можна сміливо припустити, що користувач, швидше за все, встановить свій пароль than (випадкові літери), навіть якщо всі вони починаються з 9 літер і мають 9 літер. Отже, припустимо, що, враховуючи криптографічну структуру, якщо ми побачимо послідовні букви, це, швидше за все, слово. Це дуже корисне припущення для крекерів, оскільки воно усуває велику кількість ключового простору. Потім це стає гібридною атакою, яка використовує статистичну значущість загальної криптографічної структури. potatoespwivwdhpp
Як правило, як тестери проникнення, ми можемо не встигнути зламати всі хеші, навіть якщо ми зламаємо набір хешів. Однак їх знищення може допомогти покращити доступ до системи та принести більш корисні відкриття для клієнтів. Тому при зломі пароля може бути корисно визначити, скільки часу буде виділено для злому набору хеш-значень. Використовуючи структури, виявлені в попередньому аналізі, зловмисник може визначити 10 популярних структур, які він або вона хоче охопити, виходячи з вимог до складності пароля, відсортованих за найшвидшим часом завершення. Нарешті, зловмисник може обмежити свій метод за часом, витративши не більше години на виконання злому. Це було виявлено під час нещодавнього тесту проникнення для отримання хеша. Нижче наведено знімок результатів cracker на основі процесора.
У цьому випадку найшвидше завершена структура , яку ми визначаємо як велику літеру, за якою слідують три малі літери ("W" означає "Слово"), а потім чотири цифри. У хеш-наборі 69 паролів, які відповідають цій структурі, і мій стандартний ЦП здатний пройти всі можливості цієї структури за одну хвилину. Ми зупинили злом через 62 хвилини, і злом створив 221 унікальний хеш злому, який відповідав 491 обліковому запису, що призвело до 11% витоків. Причиною великої різниці в кількості зламаних паролів і витоків облікових записів є те, що налаштування Office, як правило, змушують людей використовувати звичайні паролі. Якщо зловмисник визначає, що в середовищі використовується загальний пароль, всі користувачі з однаковим паролем також будуть під загрозою. U(W3)dddd
Хоча гібридні атаки або атаки на основі правил (наприклад) можуть швидше зламати деякі з цих паролів, структура паролів атаки дозволяє нам охопити більше ключового простору. Цей метод є ефективним наступним кроком, якщо атака Faster виявиться невдалою для знищення цільового хеша. Крім того, важливо пам'ятати, що цей приклад робиться на досить посередньому процесорі, і виконання тієї ж атаки на потужному графічному процесорі може скоротити цей час до кількох секунд. Тому точні терміни менш важливі, ніж ефективне виконання теорії. best64
допомагає нам загалом атакувати загальні криптографічні структури; Однак існують деякі інструменти, які допоможуть знайти конкретну програму. Такі інструменти, як CeWL , можуть сканувати слова з веб-сторінок і використовуватися для створення списків слів або словників, спеціально для компаній. Це працює, оскільки компанії, як правило, використовують паролі, пов'язані з їхньою галуззю, компанією або роботою. Крім того, оскільки ми визначили, що часто використовувані паролі популярні в робочому середовищі, можна також використовувати вже зламані паролі як основу для інших, що може бути схожим. Наприклад, якщо ми виявимо, що "" є паролем користувача, ми можемо помістити "" у новий список слів, помістити його в набір правил, а потім виявити, що хтось інший має пароль "". Ця концепція використання зламаного базового слова (наприклад, '') і модифікації його навколишніми символами дуже ефективна при зломі хеш-значень, скинутих із корпоративного середовища, що можна простежити до концепції повторного використання пароля. Згідно з тестом на проникнення, який ми провели, це найкраще підходить для злому останніх 20% незламаних хешів. AcmeCorp1234AcmeCorpAcmeCorp@2015AcmeCorp
Також важливо обрізати словник так, щоб усі вгадані паролі відповідали вимогам, визначеним програмою, щоб не витрачати час на вгадування паролів, які неможливо вгадати через довжину або склад символів.
Починаючи з найшвидшої атаки, охоплюючи найменший простір ключів (стандартна словникова атака) до найповільнішого та найбільшого простору ключів (чиста груба сила) є найбільш ідеальним прогресом у розгляді часу, виділеного на атаку. Тому зловмисник повинен реалізувати стандартний підхід, який враховує це. Якщо обліковий запис, який зловмисник хоче зламати, буде завершено на першому етапі, можливо, не буде причин продовжувати використовувати інші атаки; Однак у багатьох випадках може бути недостатньо простої словникової атаки, якщо є цільовий обліковий запис, або зловмисник просто хоче зламати якомога більше облікових записів, тому може знадобитися гібридна атака та цілеспрямована насильницька атака з використанням статистичної структури. Тому побудова методів має вирішальне значення для успішного злому, який може включати методи, згадані раніше, а також деякі автоматизовані процеси. Останні інструменти, такі як PRINCE, можуть допомогти полегшити зломання паролів. Важливо розробити смугу інструментів, як, наприклад, PRINCE спробував у методі, але розуміння функцій, що стоять за інструментами, а не повністю покладатися на них, зробить злом більш ефективним.
Проводячи аналіз за допомогою цих паролів, можна визначити найпопулярніші структури з урахуванням бажаної складності. Тому розробники, ймовірно, повинні реалізувати деякі елементи керування, щоб запобігти користувачам використовувати деякі з цих дуже популярних структур, щоб згладити криву попереднього графіка. Однак проблема з цією ідеєю полягає в тому, що без простої структури користувачам може бути важко запам'ятати свій пароль. Я рекомендую використовувати менеджер паролів, який вимагає двофакторної автентифікації. Ці програми будуть генерувати та зберігати всі ваші паролі для вас, тому пам'ять не є проблемою. Паролі, які вони генерують, структурно випадкові і можуть використовуватися завжди, поки програма дозволяє це. Як я вже згадував раніше, шифрування паролів є ще одним дуже ефективним способом уповільнення перспектив розвитку зловмисника. Нарешті, впровадження політики в офісі, яка допомагає користувачам зрозуміти небезпеку спільного використання паролів або їх повторного використання, є успішним кроком у правильному напрямку, навіть якщо користувачі не завжди їх дотримуються. Хоча вони, швидше за все, не будуть дотримуватися цього весь час, це ефективний засіб контролю.
Взлом пароля може бути розпливчастим поняттям. Оскільки складність злому зростає, необхідні цілеспрямовані атаки на основі ефективності, і слід встановити індивідуальні методи злому. Не варто вкладати гроші, щоб в кінцевому підсумку збільшити швидкість генерації хешів. Таким чином, використання статистики та інструментів як засобу атаки для впровадження методу та спрощеного процесу може полегшити зломання пароля. Розробники можуть розробляти засоби контролю для вирішення цієї ситуації, а користувачі можуть використовувати безпечний менеджер паролів, щоб мінімізувати ефективність цих атак; Однак такі реалізації поки не дуже популярні. В даний час статистичні атаки на паролі ефективні як з точки зору кількості тріщин, так і ефективності часу з'єднання. Подумайте про свій власний пароль і запитайте себе, як швидко вони можуть бути зламані залежно від структури пароля та того, які засоби керування у вашому офісі можуть призвести до того, що зловмисник зламає обліковий запис користувача.