Возможные атаки на базу SAM
Обычно основным объектом атаки являются административные полномочия. Их можно получить, узнав в хешированном или символьном виде пароль администратора системы. Этот пароль хранится в базе данных SAM. Поэтому именно на нее обычно направлен главный удар взломщика Windows NT/2000.
Извлечь информацию из копии файла SAM не составляет труда. Загрузив файл SAM в реестр любого другого компьютера с Windows NT/2000 (например, с помощью команды Load Hive программы REGEDT32), можно детально изучить учетные записи пользователей, определить их значения RID и шифрованные варианты хешированных паролей. Зная RID пользователя и имея зашифрованную версию его хешированного пароля, взломщик может расшифровать этот пароль и использовать его для получения сетевого доступа к другому компьютеру.
Однако для интерактивного входа в систему знания одного лишь хешированного пароля недостаточно. Необходимо получить его символьное представление.
Для восстановления пользовательских паролей Windows NT в символьном виде существуют специальные парольные взломщики. Они выполняют как прямой подбор паролей, так и поиск по словарю, а также используют комбинированный метод взлома парольной защиты, когда в качестве словаря используется файл с заранее вычисленными хешированными паролями, соответствующими символьным последовательностям, наиболее часто применяемым пользователями в качестве паролей.
Одной из самых известных программ взлома паролей Windows NT/2000 является LOphtCrack .
Вывод очевиден: одна из главных задач системного администратора Windows NT/2000 состоит в защите базы данных SAM от несанкционированного доступа. С этой целью ему необходимо:
1) ограничить физический доступ ко всем компьютерам сети и, прежде всего, к контроллерам доменов;
2) установить пароли BIOS на включение компьютеров и на изменение их настроек BIOS;
3) рекомендуется отключить загрузку компьютеров с дискет и CD;
4) для контроля доступа к файлам и папкам Windows NT/2000 системный раздел жесткого диска должен иметь формат NTFS;
5) необходимо закрыть каталог \winnt_root\repair для доступа всех пользователей, включая администраторов, и разрешать к нему доступ только для утилиты RDISK, которая создает в этом каталоге архивные копии системного реестра Windows NT/2000;
6) строго регламентировать правила хранения дискет аварийного восстановления (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, входящую в состав Windows NT Service Pack 3. Эта утилита позволяет включить режим дополнительного шифрования информации о паролях, которая хранится в базе SAM. Уникальный 128-битовый ключ (так называемый ключ шифрования паролей - Password Encryption Key, PEK) автоматически сохраняется в системном реестре и может быть использован в дальнейшем.
Перед помещением в системный реестр ключ PEK шифруется при помощи другого 128-битового ключа, который называется системным (System Key) и хранится либо в системном реестре, либо в файле STARTUP.KEY, расположенном в корневом каталоге на отдельной дискете.
Сохранять системный ключ на магнитном носителе не обязательно. В этом случае он будет вычисляться каждый раз при запуске ОС с помощью алгоритма MD5** - на основе пароля, вводимого с клавиатуры в диалоговом окне утилиты SYSKEY.
Последние два способа хранения системного ключа обеспечивают максимальную защиту паролей, находящихся в базе SAM. Однако они исключают возможность автоматической перезагрузки ОС: для завершения перезагрузки требуется либо вставить дискету с системным ключом и подтвердить ее наличие в дисководе путем нажатия кнопки OK в появившемся диалоговом окне, либо ввести системный ключ вручную с клавиатуры.
Для повышения стойкости паролей пользователей Windows NT/2000 следует установить длину пользовательских паролей не менее 8 символов и активизировать режим устаревания паролей, вынуждающий пользователей регулярно их обновлять. Для этого применяется утилита Диспетчер пользователей (User Manager). Чем выше вероятность попытки взлома парольной защиты, тем чаще должны меняться пароли. А чтобы пользователи не вводили старые пароли повторно, необходимо включить режим хранения некоторого числа ранее использовавшихся паролей.