Различные методы защиты
Информация о паролях, занесенная в базу данных SAM, служит для аутентификации пользователей Windows NT/2000. При интерактивном или сетевом входе в систему введенный пароль сначала хешируется и шифруется, а затем сравнивается с 16-байтовой последовательностью, записанной в базе данных SAM. Если эти величины совпадают, пользователю разрешается вход в систему. Обычно в базе данных SAM хранятся в зашифрованном виде оба хешированных пароля. Однако в некоторых случаях ОС вычисляет только один из них. Например, если пользователь домена Windows NT/2000/2003 изменит свой пароль, работая на компьютере с Windows for Workgroups, то в его учетной записи останется только пароль Lan Manager. А если пользовательский пароль содержит более 14 символов или они не входят в так называемый набор поставщика оборудования (original equipment manufacturer, сокращенно OEM), то в базу данных SAM будет занесен только пароль Windows NT/2000/ХР.
Возможные атаки на базу данных SAM
Обычно основным объектом атаки являются административные полномочия. Их можно получить, узнав в хешированном или символьном виде пароль администратора системы, который хранится в базе данных SAM. Поэтому именно на базу данных SAM бывает направлен главный удар взломщика парольной защиты Windows NT/2000/ХР.
По умолчанию в Windows NT/2000/ХР доступ к файлу \winnt_root\System32\Config\SAM заблокирован для всех без исключения ее пользователей. Тем не менее, с помощью программы NTBACKUP любой обладатель права на резервное копирование файлов и каталогов Windows NT/2000/ХР может перенести этот файл с жесткого диска на магнитную ленту. Резервную копию реестра можно также создать утилитой REGBAK из состава Windows NT Resource Kit. Кроме того, несомненный интерес для любого взломщика представляют резервная копия файла SAM (SAM.SAV) в каталоге \winnt_root\System32\Config и сжатая архивная копия SAM (файл SAM._) в каталоге \winnt_root\Repair.
Также указанный файл можно получить, загрузившись с дискеты или CD-ROM и воспользовавшись программой NTFSDOS или аналогичной. В случае наличия загрузки двух операционных систем (например, Windows 98 и Windows 2000) процесс копирования файла SAM существенно упрощается.
При наличии физической копии файла SAM извлечь хранимую в нем информацию не представляет большого труда. Загрузив файл SAM в реестр любого другого компьютера с Windows NT/2000/ХР (например, с помощью команды Load Hive программы REGEDT32), можно детально изучить учетные записи пользователей, чтобы определить их значения PID и шифрованные варианты хешированных паролей. Зная PID пользователя и имея зашифрованную версию его хешированного пароля, компьютерный взломщик может попытаться расшифровать этот пароль, чтобы использовать его для получения сетевого доступа к другому компьютеру. Однако для интерактивного входа в систему одного лишь знания хешированного пароля недостаточно. Необходимо получить его символьное представление.
Для восстановления пользовательских паролей ОС Windows NT в символьном виде существуют специальные парольные взломщики. Они выполняют как прямой подбор паролей, так и поиск по словарю, а также используют комбинированный метод взлома парольной защиты, когда в качестве словаря задействуется файл с заранее вычисленными хешированными паролями, соответствующими символьным последовательностям, которые часто применяются в качестве паролей пользователей операционных систем. Одной из самых известных программ взлома паролей Windows NT/2000/ХР является LC4. На рисунке 1 приведено основное рабочее окно этой программы, предназначенной для работы на компьютерах с ОС Windows 95/98, Windows NT/2000/XP.
Однако следует понимать, что программой взлома можно воспользоваться так же и для проверки надежности ваших паролей.
Для этого необходимо:
" выбрать пункт меню Вычисление PwDump и Sniff в окне Параметры.
" Задается имя пользователя. (Имя пользователя Windows NT/2000/ХР может содержать до 20 символов верхнего или нижнего регистра, за исключением следующих: " / \ [ ] : ; | = , + * ? < > . и пробелов.)
" Задается пароль, который может содержать до 14 символов.
После задания имени и пароля следует нажать на кнопку вычислить. Результат можно сохранить в виде PwDump- или Sniff-файла.
Также существует задание параметров атаки по словарю:
" Обычное использование словаря;
" Записанные дважды слова;
" Обратный порядок символов слов;
" Усеченные до заданного количества символов слова;
" Слова без гласных, за исключением заглавной;
" Транслитерация русских букв латинскими по заданной таблице транслитерации;
" Замена раскладки локализации латинской раскладкой клавиатуры;
" Замена латинской раскладки клавиатуры раскладкой локализации;
" А также множество других параметров взлома.
Другим примером взломщика паролей является программа SAMInside ( http://www.insidepro.com )
Программа SAMInside выполняет следующие функции:
" Получение информации о пользователях из SAM-файлов Windows NT/2000/XP.
" Подбор паролей пользователей из SAM-файлов.
" Подбор паролей пользователей из SAM-файлов операционных систем Windows'2000/XP, зашифрованных системным ключом Syskey.
SAMInside является первой в мире программой, которая ломает защиту ключом Syskey.
Дополнительно включает в себя следующие возможности:
" Подбор паролей не только к LMHash, но и к NTHash.
" Работа с SAM-файлом, который используется в данный момент системой.
" Импорт хэшей из текстовых файлов, полученных в результате работы других программ (L0phtCrack, pwdump и др.).
" Генерация LMHash/NTHash по определенному паролю.
" Проверка введенного пароля на всех пользователях.
" Перебор по словарю.
" Отображение найденных паролей с верным регистром букв.
" Более удобная работа с хэшами пользователей.
Защита Windows NT/2000/ХР от парольных взломщиков
Вывод однозначен: одна из главных задач системного администратора Windows NT/2000/ХР состоит в защите информации, которая хранится в базе данных SAM, от несанкционированного доступа. С этой целью ему необходимо:
" ограничить физический доступ к компьютерам сети и, прежде всего, - к контроллерам доменов;
" установить пароли BIOS на включение компьютеров и на изменение их настроек BIOS;
" рекомендуется отключить загрузку компьютеров с гибких и компакт-дисков;
" для обеспечения контроля доступа к файлам и папкам Windows NT/2000/ХР системный раздел жесткого диска должен иметь формат NTFS;
" каталог \winnt_root\repair средствами ОС необходимо закрыть для доступа всех пользователей, включая администраторов, и разрешать к ней доступ только во время работы утилиты RDISK, которая создает в этом каталоге архивные копии системного реестра Windows NT/2000;
" следить за тем, где и как хранятся дискеты аварийного восстановления (Emergency Repair Disks) и архивные копии на магнитных лентах, если на последних присутствует дубликат системного реестра Windows NT/2000/ХР.
Дополнительно можно порекомендовать следующее:
Если компьютер с Windows NT/2000/ХР входит в домен, то по умолчанию имена и хешированные пароли последних десяти пользователей, регистрировавшихся на этом компьютере, сохраняются (кэшируются) в его локальном системном реестре (в разделе SECURITY\Policy\Secrets раздела HKEY_LOCAL_MACHINE). Чтобы отменить кэширование паролей на компьютерах домена, нужно с помощью утилиты REGEDT32 в раздел Microsoft\WindowsNT\CurrentVersion\Winlogon раздела HKEY_LOCAL_MACHINE добавить параметр CashedLogonsCount, установив его значение равным нулю, а тип - REG_SZ.
Для защиты базы данных SAM можно применить утилиту SYSKEY. Эта утилита позволяет включить режим дополнительного шифрования информации о паролях, которая хранится в базе данных SAM. Уникальный 128-битовый ключ для дополнительного шифрования паролей (так называемый ключ шифрования паролей - Password Encryption Key, сокращенно - PEK) автоматически сохраняется в системном реестре для дальнейшего использования.
Перед помещением в системный реестр ключ PEK шифруется при помощи другого 128-битового ключа, который называется системным ключом (System Key) и может храниться либо в системном реестре, либо в файле с именем STARTUP.KEY в корневом каталоге на отдельной гибкой дискете.
Можно не сохранять системный ключ на магнитном носителе (рисунок 3), и тогда каждый раз при запуске ОС он будет вычисляться с помощью алгоритма MD5 (Алгоритм хеширования MD5 очень похож на MD4 и по способу дополнения исходной битовой последовательности, и по методу ее обработки, и по размеру получаемой "выжимки" (те же 128 бит). Однако каждый 512-битовый блок подвергается не трем, как в MD4, а четырем циклам преобразований, и поэтому алгоритм MD5 работает несколько медленнее, чем MD4) на основе пароля, набираемого на клавиатуре в диалоговом окне утилиты SYSKEY. Последние два способа хранения системного ключа обеспечивают максимальную защиту паролей в базе данных SAM. Однако они приводят к невозможности автоматической перезагрузки ОС, поскольку для завершения процесса перезагрузки потребуется либо вставить дискету с системным ключом и подтвердить ее наличие в дисководе путем нажатия кнопки OK в появившемся диалоговом окне, либо вручную ввести с клавиатуры системный ключ.
Для повышения стойкости паролей пользователей операционной системы Windows NT/2000/ХР к взлому рекомендуется с помощью утилиты Диспетчер пользователей (User Manager) установить длину пользовательских паролей не менее 8 символов и активизировать режим устаревания паролей, чтобы пользователи периодически их обновляли (рисунок 4). Чем выше вероятность атак на парольную защиту Windows NT/2000/ХР, тем короче должен быть срок такого устаревания. А чтобы пользователи не вводили свои старые пароли повторно, необходимо включить режим хранения некоторого числа ранее использовавшихся паролей.
Также необходимо в локальной политике безопасности указать, что пароль должен отвечать требованиям сложности. Тогда с помощью политики безопасности можно будет следить за тем, чтобы каждый пользовательский пароль состоял не менее чем из 5 символов, не содержал в себе имени пользователя, включал символы, по крайней мере, трех наборов из четырех возможных, составленных из прописных букв, строчных букв, цифр и специальных символов (знаков препинания и т. д.).
В ходе исследования устойчивости паролей к взлому использовалось программное обеспечение для взлома Windows NT/2000/ХР SAMInside. Исследование производилось на компьютере AMD 2400 XP+. Объем применяемого словаря составил 9 мегабайт.
Выяснено следующее:
" Скорость перебора паролей составляет 5310986 паролей/сек
" Если пароль состоит из стандартных слов английского (русского) языка, то время взлома составляет до 2 минут (в зависимости от величины словаря).
" При применении паролей длиной 8 символов и составленных из цифр время взлома составляет 18 секунд.
" При применении паролей длиной 8 символов и составленных из цифр и букв английского алфавита время взлома составляет до 6 суток.
" При применении паролей длиной не менее 8 символов и составленных из букв, цифр и спецсимволов время соответственно увеличивается до 61 суток