Security Account Manager
SAM (англ. Security Account Manager) Диспетчер учётных записей безопасности — RPC-сервер Windows, оперирующий базой данных учетных записей.
SAM выполняет следующие задачи:
- Идентификация субъектов (трансляции имен в идентификаторы (SID'ы) и обратно);
- Проверка пароля, авторизация (участвует в процессе входа пользователей в систему);
- Хранит статистику (время последнего входа, количества входов, количества некорректных вводов пароля);
- Хранит настройки политики учетных записей и приводит их в действие (политика паролей и политика блокировки учетной записи);
- Хранит логическую структуру группировки учетных записей (по группам, доменам, алиасам);
- Контролирует доступ к базе учетных записей;
- Предоставляет программный интерфейс для управления базой учетных записей.
База данных SAM хранится в реестре (в ключе HKEY_LOCAL_MACHINE\SAM\SAM), доступ к которому запрещен по умолчанию даже администраторам.
SAM-сервер реализован в виде DLL-библиотеки samsrv.dll, загружаемой lsass.exe. Программный интерфейс для доступа клиентов к серверу реализован в виде функций, содержащихся в DLL-библиотеке samlib.dll.
История
В системе Windows NT 4 не использовалось шифрование для хранящихся в SAM NTLM-хешей паролей. Также, для совместимости с предыдущими версиями Windows, была оставлена поддержка протокола LM. Шифрование, применявшееся тогда в базе SAM, было настолько слабо, что пароли извлекались из системы простейшими хакерскими утилитами.
Ситуация улучшилась с выходом Service Pack 3 для Windows NT 4. Начиная с этой версии, в базе SAM стало применяться стойкое 128-битное шифрование Syskey для защиты хешей паролей. Если в NT4 SP3 пользователю нужно было включать Syskey самостоятельно (командой syskey в консоли), то уже в Windows 2000/XP это шифрование включено по умолчанию.
Механизм Syskey затрудняет взлом базы SAM, содержащей LM-хеши и NTLM-хеши паролей пользователей, так как теперь они хранятся в зашифрованном виде. И без ключа шифрования взлом потребует больших затрат вычислительных ресурсов.
К сожалению, по умолчанию, ключ шифрования Syskey хранится в ветви реестра SYSTEM и предоставляется автоматически во время загрузки. Поэтому, для взлома хешей требуется не только файл SAM, а еще и файл SYSTEM, в котором хранится ключ шифрования.
Кроме этого, возможны и другие режимы работы механизма Syskey:
Режим 1. Ключ хранится в реестре и предоставляется автоматически во время загрузки.
Режим 2. Ключ хранится в реестре, но заблокирован паролем, который необходимо ввести во время загрузки.
Режим 3. Ключ хранится на съемном диске, который должен быть предоставлен во время загрузки.
Использование режимов 2 и 3 делает систему Windows более защищенной, т.к. не позволяет хакеру извлечь хеши паролей, получив физический доступ к выключенному компьютеру.
См. также
Литература
- Alex Atsctoy. Самоучитель хакера: подробное иллюстрированное руководство. — M.: Лучшие книги, 2005. ISBN 5-93673-036-0