10 шагов к безопасности
Множество «экспертов по безопасности» потрясают готовыми таблицами для взлома паролей и убеждает нас, что любой пароль Windows можно разгадать за две секунды. Эти знатоки утверждают, что безопасность Windows — фикция. В данной статье описывается 10 мер, которые можно предпринять для защиты пароля, чтобы потенциальные взломщики трудились целый день и так и не разгадали паролей Windows.
Но прежде чем браться за дело, имеет смысл познакомиться с механизмом аутентификации с применением пароля и приемами взломщиков. Таким образом можно не только освоить способы защиты, но и понять угрозу.
Аутентификация с использованием пароля
Для аутентификации в Windows используется много типов учетных данных (например, кэш Credential Manager, доверительные отношения, секреты Local Security Authority, LSA), но 10 приведенных в этой статье рекомендаций предназначены специально для паролей регистрации Windows. Тем не менее полученные уроки применимы и к другим формам аутентификации (например, смарт-картам, биометрическим методам) и другим типам учетных данных.
Чтобы пройти аутентификацию, пользователи должны представить уникальный сетевой идентификатор (т. е. имя регистрации) и пароль. Пользователь при вводе пароля, предположительно известного только ему одному, подтверждает, что имя принадлежит ему, и имеет право запросить доступ к защищенным ресурсам. Пароль, назначаемый в первый раз, хранится в специальной базе данных. В Windows существует только две базы данных аутентификации: SAM и Active Directory (AD). База данных SAM используется для локальной регистрации и регистрации в доменах Windows NT. База данных AD используется для регистрации в доменах Windows 2000 и более поздних.
Когда пользователь вводит свой пароль, процесс регистрации Windows (winlogon.exe, msgina.dll) преобразует чисто текстовый пароль в хешированный эквивалент. Хороший хеш выдает уникальное, стабильное значение для данного пароля. Из одного хеша не должно происходить двух паролей. Кроме того, лицу, не знающему исходного пароля, трудно получить исходное чисто текстовое значение из правильно подготовленного хэша.
Иногда в хеш вводят случайную величину, чтобы два пароля не могли иметь одинаковое хешированное значение (этот метод не применяется в Windows). Благодаря рандомизации хеш становится надежнее, и для разгадывания пароля требуются дополнительные вычисления, поэтому отсутствие дополнительного элемента случайности следует отнести к недостаткам Windows.
Хеширование паролей в Windows
В базах данных SAM и AD пароли хранятся в хешированной форме, в предположении, что в случае взлома базы данных пароли не станут немедленно доступны взломщику. В Windows 98 с полным набором исправлений и в более новых операционных системах возможны хеши паролей двух типов: LAN Manager (LM) и NT. Хеш паролей LM был изобретен в компании IBM и начал применяться в Microsoft более десяти лет назад. Алгоритм хеширования LM оказался очень слабым, и взломать его легко. Любой умелый взломщик паролей преобразует хеш LM в исходный простой текст за считанные секунды.
Впоследствии Microsoft разработала алгоритм хеширования NT для операционной системы NT. Его можно взломать, но сделать это гораздо труднее, чем в случае с хешем LM. Если пароль достаточно длинный и сложный (более подробно об этом будет рассказано ниже), то потребуются дни и месяцы, чтобы преобразовать хеш NT в оригинальный простой текст. К сожалению, по умолчанию в NT и более поздних версиях Windows хранятся оба хешированных значения каждого пароля. Простой запрет хранения хешей LM существенно повышает защищенность пароля сети.
Протоколы аутентификации
В Windows 2000 и более поздних версиях могут использоваться четыре протокола аутентификации: LAN Manager, NTLM, NTLMv2 и Kerberos. Первоначально применялся протокол LAN Manager, и если взломщик перехватит данные аутентификации LAN Manager, передаваемые по сети, то разгадать пароль не составит труда. Вместе с NT был выпущен протокол NTLM, но впоследствии в нем были обнаружены изъяны. Затем Microsoft разработала NTLMv2 для Windows 2000. Эта версия выдержала испытание временем и была перенесена в NT и Windows 9x. Взломщикам паролей нелегко воспользоваться трафиком NTLMv2. Для регистрации в доменах Windows 2000 и более поздних используется довольно надежный протокол Kerberos с хешем NT.
В LAN Manager, NTLM и NTLMv2 используется аутентификация типа запрос-ответ. Передавая учетные данные для проверки, пользователи или компьютеры не посылают пароль или его хеш в службу аутентификации (т. е. SAM или AD). Вместо этого сервер генерирует случайное значение, называемое «запросом», и посылает его клиенту. Клиент производит математические манипуляции с запросом, используя хеш как константу, и возвращает результаты, именуемые «ответом». Те же вычисления на сервере выполняются над ответом и, если результат вычисления совпадает с ответом клиента, подлинность клиента подтверждается.
В Kerberos используется иная форма аутентификации на основе предварительного обмена пакетами. В ходе этой процедуры процесс регистрации Windows преобразует пароль пользователя в секретный ключ для шифрования временной метки, которая затем пересылается на сервер. Временная метка используется протоколом Kerberos для отражения атаки с записью и последующим «воспроизведением» учетных данных.
Протокол аутентификации определяет математическую процедуру, используемую клиентом и сервером в процессе ответ-запрос. В компьютерах с Windows 2000 и более поздними версиями операционной системы должны использоваться Kerberos и по крайней мере любой другой протокол аутентификации. Как и хеши паролей, все протоколы аутентификации активизируются по умолчанию. Если клиент подключается к серверу, то сервер и клиент могут согласовать протокол аутентификации. Взломщик может настроить Windows на использование слабого протокола LAN Manager или NTLM, если они не отключены. Инструменты и методы взломщиков паролей описаны во врезке «Типы атак против пароля».
10 способов предотвратить взлом пароля
Знание принципов работы протоколов аутентификации и методов разгадывания паролей полезно. Теперь необходимо принять меры для защиты сети. Выполнив 10 рекомендаций, приведенных в данной статье, можно надежно защитить компьютеры от атак со взломом пароля. Рекомендации расположены в порядке убывания важности.
1. Отключение хеша пароля LM. Большинство программ взлома паролей работает исключительно с хешем паролей LM. Блокировать хранение хешей пароля LM можно с помощью трех методов.
- Использовать пароли длиной не менее 15 символов. Если длина пароля более 14 символов, система не может генерировать хеш паролей LM.
- Отключить хранение хеша паролей LM в масштабах всей системы с использованием Group Policy или Local Security Policy. Следует перейти в раздел Computer Configuration Windows SettingsSecurity 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 SYTEMCurrentControlSetControlLsa. В меню Edit нужно выбрать пункт Add Key и ввести с клавиатуры NoLMHash. Затем необходимо нажать клавишу Enter, выйти из редактора реестра и перезапустить компьютер. Для активизации параметра требуется изменить пароль.
- Вставить в пароль специальный символ Unicode. Определенные символы Unicode блокируют генерацию хеша пароля LM. Список символов Unicode, имеющих такое действие, приведен в табл. 1 главы 3 руководства "Microsoft Windows 2000 Security Hardening Guide" (http://www.microsoft.com/technet/security/ prodtech/windows2000/win2khg/03osinstl.mspx).
2. Применение длинных, сложных паролей. Пароли должны иметь длину не менее 15 символов и по крайней мере некоторые элементы сложности. По умолчанию в компьютерах с Windows XP и более новыми операционными системами активизированы сложные пароли (вопрос о том, насколько высок уровень сложности паролей Microsoft, остается открытым). При использовании пароля длиной более 14 символов создание кэша паролей LM блокируется, и большинство инструментов разгадывания паролей, в том числе большинство расчетных таблиц, оказываются бесполезными. А для разгадывания сложного пароля неэффективными будут большинство таблиц, которые не позволяют раскрыть сложные хеши паролей NT за приемлемый период времени. Ситуация может измениться по мере совершенствования методов взлома паролей.
3. Отключение аутентификации LAN Manager и NTLM. Большинство анализаторов паролей успешно действуют только против процедур аутентификации LAN Manager и NTLM. После исчерпывающего тестирования, позволяющего убедиться, что такая мера не нарушит производственную среду, следует запретить использование протоколов аутентификации LAN Manager и NTLM. Сделать это можно с помощью редактора реестра или объекта Group Policy Object (GPO). Необходимо перейти к Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesSecurity OptionsNetwork 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 ConfigurationWindows SettingsSecurity SettingsLocal PoliciesPassword Policy и присвоить параметру Maximum password age значение, превышающее 90 дней. Затратив достаточно времени, можно раскрыть любой пароль с помощью любой программы разгадывания, взлома или расчетной таблицы. Но если пароль сложен и имеет длину не менее 15 символов, то для его взлома большинству хакеров потребуется более 90 дней. Подойдет любой интервал смены пароля, но не следует менять пароли слишком часто, чтобы пользователи не начали записывать свои пароли на бумаге.
6. Защита процесса загрузки. Для защиты от физической атаки следует использовать параметры BIOS, запретив загрузку с любого устройства, кроме первичного жесткого диска, а затем защитить BIOS с помощью пароля. Этот прием предотвратит (или, по крайней мере, задержит) локальные, физические атаки с разгадыванием пароля, в том числе сброс паролей и извлечение хешей паролей.
7. Переименование учетных записей с широкими полномочиями. Полезно переименовать учетные записи с широкими полномочиями, такие как Administrator, присвоив им имена, отличные от выбираемых по умолчанию. Смена хорошо известных имен учетных записей с большими полномочиями — эффективная защита от многих программ автоматизированного отгадывания паролей.
8. Дополнительная защита учетных записей с широкими полномочиями. Пароли учетных записей с наибольшими полномочиями должны быть самыми длинными и сложными на предприятии, с минимальным интервалом изменения.
9. Активизация предупредительных сообщений на экране регистрации. Активизация предупредительных сообщений на экране регистрации предотвращает многие попытки разгадывания паролей методом грубой силы, поскольку такие автоматизированные программы, как TSGrinder, не ожидают предупредительного сообщения. Активизировать экранные предупреждения можно с помощью Group Policy, переместившись по консольному дереву в Computer ConfigurationWindows SettingsSecurity SettingsLocal Policies Security Options и дважды щелкнув на Interactive logon: Message text for users attempting to log on (и связанной с ней функции Interactive logon:Message title for users attempting to log on).
10. Регулярный аудит паролей. И наконец, следует регулярно проводить проверки, пытаясь взломать пароли своей организации с использованием некоторых инструментов, перечисленных во врезке «Типы атак на пароль». Сделать это нужно раньше взломщиков. Результаты можно использовать в качестве теста соответствия, чтобы помочь конечным пользователям, не соблюдающим правил, исправить свои ошибки.
Не слушайте «экспертов»
Выполнив 10 простых рекомендаций, можно надежно защитить компьютеры сети от атак со взломом пароля, даже тех, которые проводятся так называемыми экспертами по безопасности Windows.
Роджер А. Граймз - Консультант по безопасности. roger@banneretcs.com
Типы атак на пароль
Чтобы понять методы защиты от атаки против пароля, необходимо познакомиться с наиболее распространенными типами нападений. Вооружившись этими знаниями, можно применить инструменты и методы взлома паролей для регулярной проверки собственных паролей и определить уязвимые места, которые нужно устранить.
Угадывание пароля
Самый распространенный тип атаки — угадывание пароля. Взломщики могут угадывать пароли локально или дистанционно, вручную и с применением автоматических методов. Иногда угадать пароль проще, чем кажется на первый взгляд. В настройках большинства сетей не требуются длинные и сложные пароли, и взломщику достаточно найти лишь один слабый пароль, чтобы получить доступ к сети. Не все протоколы аутентификации одинаково эффективны против попыток угадывания паролей. Например, процедура аутентификации LAN Manager нечувствительна к регистру символов, поэтому при отгадывании пароля не приходится учитывать регистр букв.
Многие инструменты взлома автоматизируют процесс, вводя пароль за паролем. Некоторые широко распространенные инструменты отгадывания: Hydra (ссылки для загрузки инструмента можно получить по адресу http://www.thc.org) для отгадывания любых паролей, в том числе HTTP, Telnet и Windows; TSGrinder (http://www.hammerofgod.com/download.htm) для атак методом «перебора» против соединений Terminal Services и RDP; SQLRecon (http://www.sqlsecurity.com/DesktopDefault.aspx?tabid=26) для атаки методом «перебора» против процедуры аутентификации SQL.
В автоматизированных программах угадывания и взлома пароля используется несколько подходов. Метод «перебора» отнимает больше всего времени и является наиболее эффективным. При этом перебираются все возможные комбинации символов для пароля при заданном наборе символов (например, abcda | ABCDa | 1234a | !@#$) и максимальной длине пароля.
Словарные атаки проводятся в предположении, что большинство паролей состоит из целых слов, дат и чисел, взятых из словаря. Для инструментов на базе словарных атак требуется входной словарный список. Из Internet можно загрузить различные бесплатные и коммерческие базы данных со специализированными словарями (например, английский словарь, спорт и даже лексика «Звездных войн»).
При гибридном методе угадывания паролей предполагается, что администраторы сети требуют от пользователей, чтобы пароль хотя бы слегка отличался от термина из словаря. Правила гибридного угадывания отличаются в разных инструментах, но в большинстве смешиваются символы нижнего и верхнего регистров, добавляются цифры в конце пароля, слова вводятся в обратном порядке или с грамматическими ошибками, используются такие символы, как @!#. Гибридный режим реализован в программах John the Ripper (http://www.openwall.com/john) и Cain & Abel (http://www.oxid.it).
Сброс пароля
Нередко взломщикам бывает проще сбросить пароль, чем угадать его. Многие программы угадывания пароля в действительности сбрасывают пароль. В большинстве случаев взломщик загружается с гибкого диска или компакт-диска, чтобы обойти обычные средства защиты Windows. Большинство программ сброса пароля содержат загрузочную версию Linux, которая монтирует тома NTFS и помогает обнаружить и сбросить пароль администратора.
Широко используемый инструмент сброса пароля — бесплатная программа Петера Нордаль-Хагена (http://home.eunet.no/~pnordahl/ntpasswd). Популярный коммерческий продукт — Winternals ERD Commander 2005, один из инструментов пакета Winternals Administrator?s Pak (http://www.winternals.com/Products/ AdministratorsPak/#erdcommander2005). Следует помнить, что большинство инструментов сбрасывают локальные пароли администратора только в локальных базах данных SAM и непригодны для сброса паролей в Active Directory (AD).
Взлом паролей
Сброс пароля — эффективный подход, когда нужен лишь доступ к блокированному компьютеру, но попытки сброса пароля привлекают нежелательное внимание. Обычно взломщики предпочитают узнавать пароли, не сбрасывая их. Взлом пароля заключается в преобразовании захваченного хеша пароля (или другой секретной формы текстового пароля или пакетов «запрос-ответ») в чисто текстовый оригинал. Чтобы раскрыть пароль, взломщику необходимы такие инструменты, как экстракторы для разгадывания хеша, расчетные таблицы для поиска чисто текстовых паролей и анализаторы паролей для извлечения данных об аутентификации.
Разгадывание хеша. Некоторые инструменты взлома паролей обеспечивают как извлечение, так и взлом хеша пароля, но большинству необходим хеш LM, чтобы начать процесс взлома. Некоторые инструменты пригодны для хешей NT. Самый широко распространенный экстрактор хеша паролей Windows — семейство программ Pwdump. За несколько лет было выпущено много версий Pwdump, текущая версия — Pwdump4. Загрузить Pwdump4 можно по адресу http://pr.openwall.net/dl/pwdump/pwdump4.zip.
Чтобы извлечь хеши паролей с помощью 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 (http://www.antsight.com/zsl/rainbowcrack). Метод защиты от расчетных таблиц — отключить хеши LM и использовать длинные, сложные пароли.
Анализ паролей. Некоторые программы взлома паролей анализируют трафик аутентификации между клиентом и сервером и извлекают хеши паролей, или достаточную информацию для начала процедуры взлома. Cain & Abel анализирует трафик аутентификации и взламывает извлеченные хеши. Другие программы анализа и взлома паролей — ScoopLM (http://www.securityfriday.com/tools/ScoopLM.html) и KerbCrack (http://ntsecurity.nu/toolbox/kerbcrack), которые работают с трафиком аутентификации Kerberos. Ни одна из этих программ не годится для взлома трафика аутентификации NTLNv2.
Захват паролей
Многие взломщики захватывают пароли, просто устанавливая для регистрации нажатий на клавиши «троянских коней» или одно из многих физических устройств контроля над клавиатурой. Компания Symantec сообщает, что 82% самых широко используемых вредоносных программ крадут конфиденциальную информацию. Большинство крадет пароли. За 99 долл. любой желающий может купить клавиатурный регистратор, который записывает более 2 млн. нажатий на клавиши. Физическое устройство длиной менее 2,5 см легко вставить между шнуром клавиатуры и портом компьютера. Кроме того, не составляет труда перехватывать пароли из беспроводных клавиатур даже на расстоянии квартала.