Взлом пароля

Взлом пароля — в криптоанализе и компьютерной безопасности представляет собой процесс восстановления паролей из данных, которые были сохранены или переданы с помощью компьютерной системы. Общий подход состоит в том, чтобы подбором угадать пароль. Другой распространённый подход заключается в том, чтобы сказать, что вы «забыли» пароль, а затем изменить его.

Целями взлома пароля могут являться: помощь пользователю в восстановлении забытого пароля (хотя установка нового пароля представляет меньшую угрозу безопасности, но требует привилегий системного администрирования); получение несанкционированного доступа к системе; профилактическая мера, когда системные администраторы проверяют насколько легко взламываются пароли. В файловой системе взлом пароля используется для получения доступа к цифровым доказательствам, для которых судья получил доступ, но для обычных пользователей доступ ограничен

Время, необходимое для подбора пароля

Время взлома пароля связано с битовой прочностью (прочностью пароля), которая является мерой информационной энтропии пароля. Большинство методов взлома пароля требуют компьютерно произвести много пробных паролей, каждый из которых должен быть проверен. Одним из примеров является метод грубой силы (brute-force), при котором компьютер подбирает всевозможные ключи или пароли, пока один из них не подойдёт. Более распространённые методы взлома паролей, такие как атака словарём, проверка по шаблону, замена списка слов и т. д. пытаются уменьшить количество необходимых попыток и, как правило, применяются до метода грубой силы. С повышением прочности пароля экспоненциально увеличивается количество возможных паролей для перебора при восстановлении пароля и уменьшается вероятность того, что пароль будет найден в каком-либо словаре для взлома.

Возможность взлома паролей с использованием компьютерных программ также зависит от количества проверяемых паролей в секунду. Если хеш целевого пароля известен атакующему, это число может быть достаточно большим. Если нет, скорость зависит от того, установлен ли лимит скорости аутентификации (как часто может вводиться пароль), либо от временных задержек, капчи, или принудительной блокировки после некоторого числа неудачных попыток. Другая ситуация, когда возможно быстрое угадывание, — если пароль используется для формирования криптографического ключа. В таких случаях злоумышленник может быстро проверить, успешно ли проверяемый пароль декодирует зашифрованные данные. Например, один коммерческий продукт может проверить 103,000 WPA-PSK паролей в секунду.

Индивидуальные настольные компьютеры могут проверить более ста миллионов паролей в секунду, используя утилиты для взлома паролей, запущенных на CPU и миллиарды паролей в секунду при использовании утилит, использующих GPU. Рассмотрим John the Ripper. Выбранный пользователем пароль из восьми знаков с числами, в смешанном регистре, и с символами, по оценкам, достигает 30-битной надёжности, в соответствии с NIST. 2^30 — это один миллиард перестановок и потребуется в среднем 16 минут, чтобы взломать его. Когда обычные настольные компьютеры объединяются для взлома, как это может быть сделано при ботнетах, возможности взлома пароля значительно расширяются. В 2002-м distributed.net успешно подобрало 64-битный ключ RC5 за 4 года, используя более 300000 различных компьютеров в разное время, и генерируя в среднем более 12 миллиардов ключей в секунду. Графические процессоры могут ускорить взлом паролей на коэффициент с 50 до 100 и более для компьютеров общего назначения. С 2011-го коммерческие продукты имеют возможность тестирования до 2,800,000,000 паролей в секунду на стандартном настольном компьютере с использованием мощного графического процессора. Такое устройство может взломать 10-символьный пароль в одном регистре за один день. Следует отметить, что работа может быть распределена на несколько компьютеров для дополнительного ускорения пропорционально числу доступных компьютеров с сопоставимыми GPU.

Несмотря на свои возможности, настольные процессоры медленнее во взломе паролей, чем специально построенные машины, предназначенные для взлома пароля. В 1998 the Electronic Frontier Foundation (EFF) собрали выделенный взломщик паролей, использующий FPGA, в отличие от CPU. Их машина, Deep Crack, сломала 56-битный ключ DES за 56 часов, тестируя около 90 млрд ключей в секунду. В 2010, the Georgia Tech Research Institute разработали метод использования GPGPU для взлома паролей, придумывая минимально безопасную длину пароля в 12 символов.

Легко запомнить, трудно отгадать

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

Кроме того, более жёсткие требования к надёжности пароля, например наличие как строчных, так и прописных букв и цифр или изменение его ежемесячно, увеличивают вероятность того, что пользователи разрушат систему.

В книге Джеффа Яна и др. «Запоминаемость и безопасность паролей» рассматривается влияние советов, данных пользователям о выборе хорошего пароля. Авторы обнаружили, что пароли, составленные по первым буквам какой-либо фразы, так же просты в запоминании, как обычные пароли, и при этом также трудны для взлома, как произвольно сгенерированные пароли. Комбинирование двух несвязанных слов также является неплохим методом. Выработка собственного «алгоритма» для генерации неочевидных паролей — ещё один хороший способ. В свете последних улучшений всё больше людей замечают изменения в обеспечении секретности паролей.

Вместе с тем, просьба к пользователям запомнить пароль, состоящий из смешанных строчных и прописных символов похожа на просьбу запомнить последовательность бит: трудно запомнить и лишь ненамного сложнее взломать (например, если пользователь поменяет регистр одного символа в семисимвольном пароле, взломать будет всего в 128 раз сложнее). Просьба же к пользователям использовать и буквы, и цифры часто приводит к простым заменам (таким как 'E' → '3' и 'I' → '1'), хорошо известным взломщикам. Аналогично ввод пароля на одну строку выше на клавиатуре — также известный атакующим прием.

Инциденты

16 июля 1998-го CERT сообщил об инциденте, при котором злоумышленник нашёл 186 126 зашифрованных паролей. К тому времени как это обнаружили, он уже взломал 47 642 из них.

В декабре 2009-го был отмечен случай взлома сайта Rockyou.com, что привело к освобождению 32 миллионов паролей. Злоумышленник затем выложил пароли (без какой-либо другой идентификационной информации) в интернет. Пароли хранились в открытом виде в базе данных и были извлечены через уязвимость с помощью SQL-инъекции. The Imperva Application Defense Center (ADC) сделала анализ паролей на прочность. В июне 2011-го NATO(North Atlantic Treaty Organization, Организация Североатлантического договора) была взломана, что привело к обнародованию имён и фамилий, имён пользователей и паролей более чем 11 000 пользователей их электронного книжного магазина. Эти данные были извлечены в рамках операции AntiSec, движения, которое включает в себя Anonymous, LulzSec, а также другие группы взлома и отдельные лица.

11 июля 2011-го серверы Booz Allen Hamilton, большой американской консалтинговой фирмы, выполняющей существенный объём работ для Пентагона, были взломаны Anonymous`ом и подверглись утечке в один день. «Утечка, названная 'Военный Кризисный Понедельник' включает 90 000 логинов военнослужащих, в том числе сотрудников Центрального командования США, командования специальных операций США, морской пехоты, различных объектов ВВС, Национальной безопасности, Государственного департамента по персоналу, и, похоже, частных подрядчиков сектора». Эти пароли были захешированы с помощью SHA-1, и позже были расшифрованы и проанализированы командой ADC в Imperva, подтверждая, что даже военнослужащие используют ярлыки и способы обойти требования к паролям.

18 июля 2011-го Microsoft Hotmail запретила пароль «123456».[1]

Предотвращение взлома

Лучшим способом предотвращения взлома паролей является обеспечение того, чтобы злоумышленники не могли получить доступа даже к хешированному паролю. Например, в операционной системе Unix, хеши паролей первоначально хранились в общедоступном файле /etc/passwd. На современных Unix (и подобных) системах, с другой стороны, они хранятся в файле /etc/shadow, которая доступна только для программ, работающих с повышенными привилегиями (например, «системными» привилегиями). Это создаёт дополнительные сложности злоумышленнику, который, в первую очередь, должен получить хеши паролей. К сожалению, многие распространённые сетевые протоколы передают пароли в открытом виде или используют слабые схемы запросов/ответов.

В современных Unix системах заменили традиционную функцию хеширования crypt() на основе DES на более сложные методы, такие как bcrypt и scrypt. Другие системы также стали внедрять эти методы. Например, в Cisco IOS первоначально использовался обратимый шифр Виженера для шифрования паролей, теперь же используется шифрование md5 с 24 битовой солью, когда используется команда «enable secret» (включить секрет). Эти новые методы используют большие значения соли, которые предотвращают от массового нападения на несколько учётных записей одновременно. Алгоритмы также гораздо медленнее исполняются, что резко увеличивает время, требуемое для проведения успешной автономной атаки.

Многие хэши используемые для хранения паролей, как, например, из семейства MD5 и SHA, предназначены для быстрого вычисления и эффективной реализации на аппаратном уровне. Как результат, они неэффективны в предотвращении взлома паролей, особенно при использовании таких методов, как радужные таблицы. Использование алгоритмов растяжения ключа, таких как PBKDF2, для формирования хеша паролей может значительно снизить скорость, с которой пароли могут быть проверены.

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

В 2013 году был объявлен долгосрочный конкурс для выбора нового стандартного алгоритма хеширования паролей.

Для исключения возможности взлома пароля или, по крайней мере, для усложнения данного процесса необходимо придерживаться при его выборе следующих правил:

  1. Длина пароля и количество используемых в нём символов должны предотвращать взлом методом полного перебора (оптимальная длина – не менее 6 символов, при этом в пароле должны быть использованы буквы, цифры и знаки пунктуации).
  2. В качестве пароля не рекомендуется использовать какие-либо осмысленные слова или их сочетания.
  3. В качестве пароля не следует использовать сведения, имеющие отношения к личной жизни пользователя.

Способы предотвращения взлома пароля

1. Отключение хеша пароля LM. Большинство программ взлома паролей работает исключительно с хешем паролей LM. Блокировать хранение хешей пароля LM можно с помощью трёх методов.

Использовать пароли длиной не менее 15 символов. Если длина пароля более 14 символов, система не может генерировать хеш паролей LM. Отключить хранение хеша паролей LM в масштабах всей системы с использованием Group Policy или Local Security Policy. Следует перейти в раздел Computer Configuration\ Windows Settings\Security Settings\ Local Policies, выбрать Security Options и дважды щёлкнуть на пункте Network Security: Do not store LAN Manager hash value on next password change. Щёлкните на кнопке Enabled, а затем на кнопке OK. Или же можно отредактировать реестр. Следует открыть редактор реестра (например, Regedt32.exe) и перейти в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. В меню Edit нужно выбрать пункт Add Key и ввести с клавиатуры NoLMHash. Затем необходимо нажать клавишу Enter, выйти из редактора реестра и перезапустить компьютер. Для активизации параметра требуется изменить пароль. Вставить в пароль специальный символ Unicode.

2. Применение длинных, сложных паролей. Пароли должны иметь длину не менее 15 символов и по крайней мере некоторые элементы сложности. По умолчанию в компьютерах с Windows XP и более новыми операционными системами активизированы сложные пароли (вопрос о том, насколько высок уровень сложности паролей Microsoft, остаётся открытым). При использовании пароля длиной более 14 символов создание кэша паролей LM блокируется, и большинство инструментов разгадывания паролей, в том числе большинство расчётных таблиц, оказываются бесполезными. А для разгадывания сложного пароля неэффективными будут большинство таблиц, которые не позволяют раскрыть сложные хеши паролей NT за приемлемый период времени. Ситуация может измениться по мере совершенствования методов взлома паролей.

3. Отключение аутентификации LAN Manager и NTLM. Большинство анализаторов паролей успешно действуют только против процедур аутентификации LAN Manager и NTLM. После исчерпывающего тестирования, позволяющего убедиться, что такая мера не нарушит производственную среду, следует запретить использование протоколов аутентификации LAN Manager и NTLM. Сделать это можно с помощью редактора реестра или объекта Group Policy Object (GPO). Необходимо перейти к Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Network Security: LAN Manager Authentication level и активизировать режим Send NTLMv2 response only/refuse LM & NTLM.

4. Блокировка учётных записей. Блокировка учётных записей остановит или по крайней мере существенно замедлит большинство атак с разгадыванием пароля. Рекомендуется установить блокировки со следующими параметрами.

Порог блокировки учётной записи следует установить таким образом, чтобы число неудачных попыток ввода пароля не превышало пяти. Сбрасывать счётчик блокировки (параметр Reset account lockout counter after) через 1 минуту (минимальное возможное значение). Установить длительность блокировки (параметр Account lockout duration) равным 1 минуте. Опасения вызывает «червь», вызывающий отказы в обслуживании (DoS), но если «червь» разгадывает пароли, используя имена входа всех пользователей, то лучше блокировать даже законных пользователей, пока «червь» не будет остановлен. После того как угроза «червя» будет устранена, все учётные записи пользователей активизируются в течение 60 секунд.

5. Принудительная замена паролей с разумной частотой. Из Group Policy или Local Security Policy следует перейти в Computer Configuration\Windows Settings\Security Settings\Local Policies\Password Policy и присвоить параметру Maximum password age значение, превышающее 90 дней. Затратив достаточно времени, можно раскрыть любой пароль с помощью любой программы разгадывания, взлома или расчётной таблицы. Но если пароль сложен и имеет длину не менее 15 символов, то для его взлома большинству хакеров потребуется более 90 дней. Подойдёт любой интервал смены пароля, но не следует менять пароли слишком часто, чтобы пользователи не начали записывать свои пароли на бумаге.

6. Защита процесса загрузки. Для защиты от физической атаки следует использовать параметры BIOS, запретив загрузку с любого устройства, кроме первичного жёсткого диска, а затем защитить BIOS с помощью пароля. Этот приём предотвратит (или, по крайней мере, задержит) локальные, физические атаки с разгадыванием пароля, в том числе сброс паролей и извлечение хешей паролей.

7. Переименование учётных записей с широкими полномочиями. Полезно переименовать учётные записи с широкими полномочиями, такие как Administrator, присвоив им имена, отличные от выбираемых по умолчанию. Смена хорошо известных имён учётных записей с большими полномочиями — эффективная защита от многих программ автоматизированного отгадывания паролей.

8. Дополнительная защита учётных записей с широкими полномочиями.Пароли учётных записей с наибольшими полномочиями должны быть самыми длинными и сложными на предприятии, с минимальным интервалом изменения.

9. Активизация предупредительных сообщений на экране регистрации.Активизация предупредительных сообщений на экране регистрации предотвращает многие попытки разгадывания паролей методом грубой силы, поскольку такие автоматизированные программы, как TSGrinder, не ожидают предупредительного сообщения. Активизировать экранные предупреждения можно с помощью Group Policy, переместившись по консольному дереву в Computer Configuration\Windows Settings\Security Settings\Local Policies\ Security Options и дважды щёлкнув на Interactive logon: Message text for users attempting to log on (и связанной с ней функции Interactive logon:Message title for users attempting to log on).

10. Регулярный аудит паролей. И наконец, следует регулярно проводить проверки, пытаясь взломать пароли своей организации с использованием некоторых инструментов, перечисленных во врезке «Типы атак на пароль». Сделать это нужно раньше взломщиков. Результаты можно использовать в качестве теста соответствия, чтобы помочь конечным пользователям, не соблюдающим правил, исправить свои ошибки.

Типы атак на пароль

Угадывание пароля

Самый распространённый тип атаки — угадывание пароля. Взломщики могут угадывать пароли локально или дистанционно, вручную и с применением автоматических методов. Иногда угадать пароль проще, чем кажется на первый взгляд. В настройках большинства сетей не требуются длинные и сложные пароли, и взломщику достаточно найти лишь один слабый пароль, чтобы получить доступ к сети. Не все протоколы аутентификации одинаково эффективны против попыток угадывания паролей. Например, процедура аутентификации LAN Manager нечувствительна к регистру символов, поэтому при отгадывании пароля не приходится учитывать регистр букв.

Многие инструменты взлома автоматизируют процесс, вводя пароль за паролем. Некоторые широко распространённые инструменты отгадывания: Hydra [1] для отгадывания любых паролей, в том числе HTTP, Telnet и Windows; TSGrinder [2] для атак методом «перебора» против соединений Terminal Services и RDP; SQLRecon [3] для атаки методом «перебора» против процедуры аутентификации SQL.

В автоматизированных программах угадывания и взлома пароля используется несколько подходов. Метод «перебора» отнимает больше всего времени и является наиболее эффективным. При этом перебираются все возможные комбинации символов для пароля при заданном наборе символов (например, abcda | ABCDa | 1234a | !@#$) и максимальной длине пароля.

Словарные атаки проводятся в предположении, что большинство паролей состоит из целых слов, дат и чисел, взятых из словаря. Для инструментов на базе словарных атак требуется входной словарный список. Из Internet можно загрузить различные бесплатные и коммерческие базы данных со специализированными словарями (например, английский словарь, спорт и даже лексика «Звездных войн»).

При гибридном методе угадывания паролей предполагается, что администраторы сети требуют от пользователей, чтобы пароль хотя бы слегка отличался от термина из словаря. Правила гибридного угадывания отличаются в разных инструментах, но в большинстве смешиваются символы нижнего и верхнего регистров, добавляются цифры в конце пароля, слова вводятся в обратном порядке или с грамматическими ошибками, используются такие символы, как @!#. Гибридный режим реализован в программах John the Ripper[4] и Cain & Abel [5].

Сброс пароля

Нередко взломщикам бывает проще сбросить пароль, чем угадать его. Многие программы угадывания пароля в действительности сбрасывают пароль. В большинстве случаев взломщик загружается с гибкого диска или компакт-диска, чтобы обойти обычные средства защиты Windows. Большинство программ сброса пароля содержат загрузочную версию Linux, которая монтирует тома NTFS и помогает обнаружить и сбросить пароль администратора.

Широко используемый инструмент сброса пароля — бесплатная программа ntpasswd [6] Петера Нордаль-Хагена. Популярный коммерческий продукт —Winternals ERD Commander, один из инструментов пакета Winternals Administrator’s Pak [7]. Следует помнить, что большинство инструментов сбрасывают локальные пароли администратора только в локальных базах данных SAM и непригодны для сброса паролей в Active Directory (AD).

Взлом паролей

Сброс пароля — эффективный подход, когда нужен лишь доступ к блокированному компьютеру, но попытки сброса пароля привлекают нежелательное внимание. Обычно взломщики предпочитают узнавать пароли, не сбрасывая их. Взлом пароля заключается в преобразовании захваченного хеша пароля (или другой секретной формы текстового пароля или пакетов «запрос-ответ») в чисто текстовый оригинал. Чтобы раскрыть пароль, взломщику необходимы такие инструменты, как экстракторы для разгадывания хеша, расчётные таблицы для поиска чисто текстовых паролей и анализаторы паролей для извлечения данных об аутентификации.

Разгадывание хеша. Некоторые инструменты взлома паролей обеспечивают как извлечение, так и взлом хеша пароля, но большинству необходим LM-хеш, чтобы начать процесс взлома. Некоторые инструменты пригодны для хешей NT. Самый широко распространённый экстрактор хеша паролей Windows — семейство программ Pwdump. За несколько лет было выпущено много версий Pwdump, текущая версия — Pwdump4 [8].

Чтобы извлечь хеши паролей с помощью Pwdump, необходимо иметь административный доступ к локальному или удалённому компьютеру и возможность использовать NetBIOS для подключения к ресурсу admin$. Существуют способы обойти последнее условие, но при работе только с одним инструментом оно обязательно. При успешном запуске Pwdump4 извлекаются хеши паролей LM и NT, и, если функция отслеживания истории паролей Windows активна — все хеши более старых паролей. По умолчанию Pwdump выводит хеши паролей на экран, но можно направить вывод в файл, а затем переслать в программу взлома паролей.

Многие инструменты взлома паролей принимают хеши в формате Pwdump. В таких инструментах процесс взлома обычно начинается с генерации ряда предположительных паролей, которые затем хешируются, и хеши сравниваются с извлечённым хешем.

Типичные программы взлома паролей — John the Ripper и Cain & Abel. Выпускаются версии John the Ripper для UNIX и Windows. Это очень быстрый инструмент, работающий из командной строки, который поставляется с модулем расширения для распределённых вычислений. Cain & Abel обеспечивает взлом более 20 типов хешей паролей, в том числе LM, NT, Cisco и RDP.

Расчётные таблицы. Современные программы взлома паролей генерируют все возможные пароли и их хеши в данной системе и вводят результаты в таблицу преобразования, именуемую расчётной. Извлекая хеш из целевой системы, взломщик может просто обратиться к расчётной таблице и отыскать чисто текстовый пароль. Некоторые программы (и Web-узлы) за пару секунд взламывают любые хеши LM с использованием расчётной таблицы. Можно приобрести очень большие таблицы, размеры которых составляют от сотен мегабайтов до сотен гигабайтов, или генерировать собственную с использованием Rainbow Crack [9]. Метод защиты от расчётных таблиц — отключить хеши LM и использовать длинные, сложные пароли.

Анализ паролей

Некоторые программы взлома паролей анализируют трафик аутентификации между клиентом и сервером и извлекают хеши паролей, или достаточную информацию для начала процедуры взлома. Cain & Abel анализирует трафик аутентификации и взламывает извлечённые хеши. Другие программы анализа и взлома паролей — ScoopLM [10] и KerbCrack [11], которые работают с трафиком аутентификации Kerberos. Ни одна из этих программ не годится для взлома трафика аутентификации NTLNv2.

Захват паролей

Многие взломщики захватывают пароли, просто устанавливая для регистрации нажатий на клавиши «троянских коней» или одно из многих физических устройств контроля над клавиатурой. Компания Symantec сообщает, что 82% самых широко используемых вредоносных программ крадут конфиденциальную информацию. Большинство крадёт пароли. За 99 долл. любой желающий может купить клавиатурный регистратор, который записывает более 2 млн. нажатий на клавиши. Физическое устройство длиной менее 2,5 см легко вставить между шнуром клавиатуры и портом компьютера. Кроме того, не составляет труда перехватывать пароли из беспроводных клавиатур даже на расстоянии квартала.

Программное обеспечение

Есть много утилит для взлома паролей, наиболее популярные из них: Cain and Abel, John the Ripper, Hashcat, Hydra, DaveGrohl и ElcomSoft. Многие пакеты для программно-технической экспертизы также включают функциональность для взлома паролей. Большинство этих пакетов используют смесь стратегий взлома, с методом грубой силы и атаками по словарю, оказавшимися наиболее продуктивными, однако наиболее успешные пакеты программного обеспечения являются частными и не публикуются. Увеличение доступности компьютерной мощности и новое автоматизированное ПО с дружественным интерфейсом для взлома пароля для многих систем защиты приводит к использованию их скрипт-кидди.

Примечания

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.