Где NT хранит пароли

WINDOWS 2000 MAGAZINE #02/99
Марк Джозеф Эдвард
Дэвид Лебланк

Наверняка вы знаете о том, что пароли служат ключами к большинству "дверей" в сети. А известно ли вам, где Windows NT 4.0 хранит эти пароли? Их можно обнаружить во многих интересных местах. И для того, чтобы обеспечить надежную защиту системы, необходимо располагать полной информацией о них.

Для хранения и обработки таких атрибутов пользователя, как пароли в ОС NT, используется SAM (Security Accounts Manager - администратор учетных данных в системе защиты). SAM размещает всю информацию в базе данных SAM, поэтому можно сказать, что NT защищена от взлома настолько же, насколько защищены данные SAM. Взломать систему безопасности SAM непросто, только если не знать обо всех местах, где можно найти базу данных SAM. Эта статья поможет вам защитить некоторые важные области данных системы NT и отыскать участки системы, которые требуют дальнейшего конфигурирования для обеспечения более высокого уровня безопасности.

Ключи реестра SAM

NT хранит постоянно используемую копию базы данных SAM на жестком диске. Вы можете получить доступ к этой базе данных через реестр системы (HKEY_LOCAL_MACHINE, ключ SAM), написав программу или используя редактор реестра (например, regedt32.exe). В принципе, пользователи не имеют доступа к ключу реестра SAM непосредственно из редактора реестра, так как NT предоставляет права доступа к данному ключу только системной учетной записи SYSTEM. Однако пользователи, имеющие административные привилегии, могут воспользоваться трюком NT и обеспечить доступ из пользовательской среды с правами SYSTEM.

Блокировка службы Планировщика NT (NT Scheduler). Упомянутый выше трюк состоит в использовании службы Планировщика NT для запуска редактора реестра на системной консоли в некоторое заранее определенное время. По умолчанию, Планировщик NT при выполнении заданий использует права учетной записи SYSTEM. Поэтому любая программа, запущенная Планировщиком, имеет полный набор системных привилегий, включая доступ к базе данных SAM. Чтобы защититься от данной опасности, приходится действовать жесткими методами, так как для этого необходимо заблокировать службу Планировщика NT. Блокировка данной службы не всегда возможна в связи с тем, что она может потребоваться для запуска обычных заданий. Если вы не в состоянии заблокировать службу Планировщика, постарайтесь сконфигурировать ее таким образом, чтобы она работала от имени учетной записи пользователя (права пользователя - это необходимый минимум для выполнения запланированных заданий).

Использование технологии системного ключа (system key). Для обеспечения защиты SAM вы также можете применить предлагаемую Microsoft технологию системного ключа. Данная технология впервые появилась в составе дополнений (hotfix) к пакету обновления NT Service Pack 2 (SP2), но широкую известность она получила, когда вошла в состав SP3. (О сервисном пакете SP3 читайте статью Service Pack 3 Is Really Security Pack 3 в журнале Windows NT Magazine, август 1997.) Технология системного ключа применяется для защиты NT и ее паролей посредством шифрования базы данных SAM и требует использования ключа шифра при загрузке операционной системы.

Можно использовать один из трех вариантов системных ключей.

Более подробно о каждом из этих вариантов можно прочитать в статье Microsoft: Windows NT System Key Permits Strong Encryption of the SAM (http://support.microsoft.com/support/kb/articles/q143/4/75.asp).

Хотя системный ключ и помогает защитить SAM, прежде чем броситься в бой и начать его устанавливать, следует осознать несколько важных моментов. Нужно иметь в виду, что после установки syskey.exe на компьютере не существует возможности его удаления. Следовательно, необходимо очень внимательно отнестись к вопросу выбора оптимального для вашей системы метода хранения ключа. Непосредственно после установки syskey.exe нужно сформировать новую дискету ERD (Emergency Repair Disk). В противном случае вы не сможете полностью восстановить систему, если это потребуется.

Одно из реальных преимуществ использования системного ключа состоит в том, что если взломщикам удастся получить копию вашей базы данных SAM, они не смогут вытащить оттуда действующие хэш-коды паролей. У них не будет возможности применить для расшифровки паролей такие утилиты как L0phtCrack от L0pht Heavy Industries. Но следует заметить, что системный ключ не сможет остановить тех пользователей, которые имеют административные привилегии. Эти пользователи могут выгрузить базу данных SAM в формате, пригодном для взлома такими инструментами, как L0phtCrack; поэтому нужно очень аккуратно назначать административные права. Например, утилита Pwdump2 успешно получает хэш-коды паролей из базы данных SAM, даже если используется технология системного ключа. Следует учитывать потенциальную опасность, которую представляют подобные инструменты.

Другим преимуществом технологии системного ключа является возможность обнаруживать попытки такого малоизвестного способа взлома, при котором для получения доступа к системе применяются загрузочные диски. Конечно, такой метод взлома возможен только в том случае, если вы можете загрузиться с системного диска NT. Однако если это удается сделать, то взломщик может перенести базу данных SAM в другое место и затем перезагрузить компьютер. В процессе перезагрузки NT обнаруживает отсутствие базы данных SAM и создает новую базу, которая содержит только двух пользователей: Administrator и Guest, причем оба имеют пустые пароли. Очевидно, что теперь взломщик может зарегистрироваться в системе как Administrator, введя пустой пароль, сделать все, что ему нужно, затем перезагрузиться со своего системного диска и вернуть оригинальную копию базы данных SAM на прежнее место.

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

Аудит SAM

При любых обстоятельствах предусмотрительный администратор должен активизировать аудит базы данных SAM, чтобы своевременно обнаруживать какие-либо подозрительные действия. Разумеется, аудит предполагает, что вы будете регулярно и тщательно просматривать журнал событий. Процедура установки аудита SAM описана по шагам в колонке "Установка аудита системы безопасности". Также эта процедура описывается в статье Microsoft Enable Auditing of Microsoft Windows NT Server Password Registry (http://support.microsoft.com/support/kb/articles/q186/ 3/74.asp). Вы можете активизировать аудит базы данных SAM, однако он не будет выполняться, если кто-то загрузит систему с другой копии ОС.

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

Активизация такого уровня аудита может привести к накоплению очень большого количества записей в журнале событий. Дело в том, что в процессе нормальной работы OC регулярно происходят обращения системы к ключам SAM. Поэтому следует установить параметры настройки журнала событий так, чтобы он мог вмещать достаточное количество записей. Также следует настроить программы мониторинга журнала событий, которые вы будете использовать.

Утилиты, выполняющиеся с правами привилегированных пользователей, таких как Administrator или SYSTEM, могут свободно манипулировать журналом событий и записями в нем. Сообразительные взломщики могут легко удалить все следы своей деятельности.

SAM на различных носителях информации

NT может помещать базу данных SAM на различные носители информации, включая дискеты, магнитные ленты и жесткие диски. Копирование базы на дискету или ленту требует определенных действий со стороны пользователя, такая операция не является частью обычной работы NT. В процессе ежедневного функционирования NT может размещать базу данных SAM в двух каталогах на жестком диске: %systemroot%\repair и %systemroot%\system32\config. Хотя каталог \config и содержит рабочую копию базы данных SAM, используемую "живой" системой, к этой базе нельзя получить доступ (например, для копирования) из таких программ, как Windows Explorer (Проводник), пока работает ОС. Это связано с тем, что системный процесс Local Security Authority (LSA) (lsass.exe) захватывает файл базы данных SAM для монопольного использования.

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

Каталог \repair содержит ту же информацию, что и дискета ERD, создаваемая утилитой rdisk.exe и используемая для восстановления системы. И каталог \repair, и дискета ERD содержат копии базы данных SAM, поэтому они должны быть надежно защищены. Дискета ERD должна храниться в столь же безопасном месте, что и ленты с архивами данных.

Для защиты каталога \repair назначайте права таким образом, чтобы злоумышленники не могли получить доступ к данному каталогу и содержащимся в нем файлам, в особенности к файлу sam._, в котором находится база данных SAM. Чтобы защитить файлы в каталоге \repair, используйте утилиту calcs.exe, входящую в состав Microsoft Windows NT Server 4.0 Resource Kit или другую аналогичную программу. Выполните следующие действия.

В окне Command Prompt перейдите в каталог %systemroot% (обычно это C:\winnt) и выполните команду:

cacls repair /g administrators:F system:F /t

Либо вы можете, используя программу Windows Explorer, сделать следующее.

  1. Откройте Windows Explorer.
  2. Перейдите в каталог repair (обычно это C:\winnt\repair), нажмите правую клавишу мыши и выберите в открывшемся меню Properties.
  3. Выберите закладку Security.
  4. Выберите Permissions.
  5. Отметьте Replace Permissions on Subdirectories и Replace Permissions on Existing Files.
  6. Удалите из списка всех пользователей, кроме Administrators и SYSTEM.
  7. Убедитесь, что и Administrators, и SYSTEM имеют права Full Control.
  8. Нажмите OK.

Теперь вы назначили пользователям Administrators и SYSTEM права Full Control на данный каталог и все файлы, которые в нем содержатся. Поскольку режим редактирования ACL выбран не был, права всех остальных пользователей удалены системой.

В зависимости от конфигурации системы помимо каталогов \repair и \config NT может записывать информацию, имеющую отношение к SAM, в следующие файлы: pagefile.sys, memory.dmp или user.dmp. NT использует файл pagefile.sys как дополнительное пространство для организации виртуальной памяти, которое добавляется к физической памяти, установленной в компьютере. Файл memory.dmp создается при аварийном завершении работы операционной системы, если в конфигурации NT выбран режим записи образа памяти на диск. Файл user.dmp создается при аварийном завершении работы какой-либо прикладной программы, если в конфигурации программы Dr. Watson выбран режим записи образа памяти в файл.

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

Чтобы уменьшить опасность, связанную с использованием файлов user.dmp и memory.dmp, вам необходимо предпринять одно из следующих действий:

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

Чтобы отключить создание файлов user.dmp программой Dr. Watson запустите утилиту drwtsn32.exe, отключите параметр Create Crash Dump File и закройте программу.

Чтобы отключить в параметрах настройки NT создание файла memory.dmp, запустите в Панели Управления (Control Panel) программу System и выберите закладку Startup/Shutdown.

Затем отключите параметр Write debugging information to. Если вам все же необходимо иметь образы памяти на момент аварийного завершения работы NT, постарайтесь настроить параметры ОС и программы Dr. Watson таким образом, чтобы файлы, содержащие образ памяти, помещались в защищенный каталог, доступный только администраторам.

Что касается файла pagefile.sys, то его открывает и защищает от попыток непосредственного доступа со стороны взломщиков только операционная система. Однако следует упомянуть прошлогодний инцидент, когда клиентская служба NetWare для Windows NT помещала в память пароли пользователей NetWare в открытом виде. Эти пароли могли быть записаны в файл pagefile.sys при переписывании соответствующей страницы памяти на диск. Любой человек, имеющий копию файла pagefile.sys и текстовый редактор, мог без труда получить пароли. Разработчики Novell решили эту проблему. Теперь, прежде чем поместить пароли в pagefile, они шифруются с использованием недокументированного API-интерфейса. Однако взломщики могут пробить эту защиту. Так, изобретательные российские программисты нашли способ расшифровки информации, получаемой из файла pagefile.sys. Чтобы защититься от подобных атак, настраивайте NT таким образом, чтобы файл pagefile.sys удалялся при завершении работы системы. (Как это сделать, мы расскажем далее.) И не забывайте о необходимости физической защиты компьютера с целью предотвращения нежелательного доступа к файлу pagefile.sys.

Да, вы можете сконфигурировать NT так, чтобы pagefile удалялся при нормальном завершении работы системы. Но таким способом вы обеспечите защиту только от тех взломщиков, которые копируют или изменяют файл, загрузившись с другой копии ОС (т. е. используя загрузочный диск или загрузив NT из другого системного каталога). Большинство взломщиков понимают, что в таком случае у них есть возможность получения доступа к системе путем перемещения базы данных SAM, следовательно, взлом файла pagefile.sys становится бессмысленным

Несмотря на это, в ситуациях, когда условия эксплуатации системы требуют установки и использования нескольких копий ОС, удаление файла pagefile при нормальном завершении работы можно считать достаточной мерой безопасности. Следует иметь в виду, что если NT сконфигурирована так, чтобы удалять pagefile во время завершения работы системы, то неизбежна некоторая задержка в процессе начальной загрузки и останова ОС. Однако эта задержка несущественна, если принять во внимание уровень безопасности, которого мы в результате достигаем. Для того чтобы включить режим удаления файла pagefile.sys во время нормального завершения работы ОС, следует модифицировать (или создать) в системном реестре параметр ClearPageFileAtShutdown (типа REG_SZ) в ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management, присвоив ему значение 1.

Хэш-коды паролей в памяти

По умолчанию, NT кэширует необходимые для регистрации атрибуты для 10 последних пользователей, входивших в систему интерактивно. Это делается для того, чтобы пользователь смог зарегистрироваться, даже если вы отключите компьютер от сети, или контроллер домена окажется недоступным. NT обеспечивает определенную защиту кэшируемой информации. Однако если ваши задачи требуют более высокого уровня безопасности, вы можете полностью отключить кэширование, чтобы исключить попытки атак на данные в кэш-памяти. Нужно учитывать, что кэшируемые данные содержат хэш-коды других хэш-кодов паролей. Поэтому их очень сложно взломать и использовать для несанкционированного входа в систему. Мы не можем вспомнить ни одного случая использования хакерами таких данных из кэш-памяти. Чтобы отключить кэширование, установите в 0 значение параметра реестра CachedLogonsCount (типа REG_DWORD) в ключе HKEY_ LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ Winlogon.

SAM в сети

ОС Windows NT использует протокол SMB (Server Message Block - блок серверных сообщений), разработанный совместно фирмами Microsoft, IBM и Intel. Данный протокол определяет алгоритмы функционирования файловой службы в сетевой среде. Нетрудно предположить, что во время сеанса SMB по сети должны передаваться пакеты, содержащие информацию конфиденциального характера. Среди прочего эти пакеты обычно включают в себя зашифрованные данные протокола NTLM, передаваемые NT во время фазы аутентификации.

Взломщики, используя существующие сетевые анализаторы, могут легко перехватывать данные, передаваемые по сети. Задача перехвата нужных пакетов и получения из них информации о паролях всегда считалась нелегкой. Но ситуация в корне изменилась с появлением продукта SMB Packet Capture, выпущенного компанией L0pht Heavy Industries. Это сетевой анализатор, который тесно интегрирован с программой L0phtCrack. Имея в своем распоряжении L0phtCrack, можно легко "выхватывать" из сети хэш-коды паролей, передаваемые в соответствии с протоколом SMB.

Встроенный в L0phtCrack сетевой анализатор незаметно перехватывает хэш-коды паролей и запоминает их с целью расшифровки. После расшифровки паролей злоумышленнику ничего не стоит добраться до любого сетевого ресурса, к которому имел доступ соответствующий пользователь. Вот так! Риск здесь очевидный, но и методы защиты просты.

Для защиты от подобных атак нужно использовать протокол NTLMv2, поставляемый в составе пакетов обновления SP4 и SP5, либо применять механизм создания виртуальных частных сетей (VPN - Virtual Private Network) типа Microsoft PPTP. Протокол NTLMv2 позволяет защитить данные, передаваемые по внутренней локальной сети, а PPTP обеспечивает защиту информации, передаваемой через такие "небезопасные" сети, как, например, Internet. Если вы реализуете PPTP, то обязательно установите последние сервисные пакеты, включая дополнения и исправления к ним (hotfix). Мы предупреждаем вас об этом, потому что в свое время PPTP-соединение считалось очень ненадежным. Microsoft внесла необходимые корректировки, устраняющие недостатки PPTP. Но эти корректировки будут вам недоступны, если вы не установите hotfix к пакету SP3 или более позднему пакету.

Следует иметь в виду, что при отсутствии в вашей системе механизма VPN и технологии подписей SMB взломщик может использовать сеанс SMB для получения несанкционированного доступа в систему. Microsoft реализовала технологию подписей SMB в пакете обновления SP3 и также включила ее во все последующие пакеты обновления. При использовании подписей пакетов SMB операционная система проверяет подлинность каждого пакета, прежде чем принять его к исполнению. Однако реализация подписей SMB не всегда безопасна. Для получения более подробной информации обязательно прочитайте статью Microsoft How to Enable SMB Signing in Windows NT (http://support.microsoft.com/support/kb/articles/q161/3/72.asp).

Для борьбы со средствами взлома типа L0phtCrack можно запретить NT посылать в сеть хэш-коды паролей, формируемые по протоколу LAN Manager (LM). Хэш-коды LM являются более простыми, чем коды NTLM, так как NTLM позволяет задействовать пароли, учитывающие регистр. Также NTLM допускает возможность применения дополнительных символов клавиатуры. Это расширяет диапазон символов ключа шифрования на 26. Заметим, что сложные пароли труднее поддаются расшифровке даже при наличии таких инструментов, как L0phtCrack.

Целесообразно включать в пароль символ "возврат каретки", так как L0phtCrack не умеет нормально обрабатывать этот символ. Чтобы вставить "возврат каретки", нажмите клавиши Alt+0+1+3 на цифровой панели клавиатуры.

Для решения описываемой проблемы Microsoft реализовала в составе дополнений и исправлений к сервисному пакету SP3 новый ключ реестра. Он был включен во все сервисные пакеты, вышедшие после SP3. Новый параметр реестра, LMCompatibilityLevel, имеет тип REG_DWORD и размещается в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa.

При использовании NTLMv2 можно установить значение этого параметра равным 0, 1, 2, 3, 4 и 5. Если это значение равно 0, то NT при аутентификации сетевого соединения передает по сети пароли как в формате NTLM, так и в формате LM (этот метод аутентификации обеспечивает совместимость с другими системами и используется в NT по умолчанию). Если значение равно 1, то NT передает оба типа хэш-кодов только тогда, когда этого требует сервер. Если значение равно 2, то хэш-коды паролей в формате LM не используются ни при каких обстоятельствах. Если значение равно 3, применяется только аутентификация по протоколу NTLMv2. Значение параметра, равное 4, запрещает контроллеру домена использовать аутентификацию LM, а значение 5 указывает на необходимость применять при аутентификации только протокол NTLMv2. Наиболее безопасной является установка значения этого параметра равным 2. Но следует иметь в виду, что системы, поддерживающие только протокол LM (т. е. Windows 95 и Windows for Workgroups), не смогут установить соединение с данной системой NT. Полный перечень особенностей конфигурации описан в статье Microsoft How to Disable LM Authentication on Windows NT (http://support.microsoft.com/support/kb/articles/q147/7/06.asp). Заметим, что при установке пакета обновления SP4 данный ключ реестра способен принимать шесть различных значений.

Еще один способ взлома системы может иметь место, если взломщик располагает возможностью физического доступа к компьютеру. Используя такие средства, как NT Locksmith или ERD Commander (оба можно найти на http://www.wininternals. com), ничего не стоит получить доступ в систему с правами любого пользователя. Для защиты от этого метода взлома следует принять меры, препятствующие физическому доступу к компьютеру.

Можно немного расслабиться

В этой статье мы представили основные идеи и особенности конфигурации, которые следует учитывать при установке и сопровождении ОС Windows NT и ее системы безопасности. Также мы упомянули несколько вопросов, связанных с приложениями NT (см. колонки "Безопасность приложений BackOffice" и "Безопасность прикладных программ"), которые проливают свет на потенциальные проблемы и могут способствовать поиску путей защиты паролей от несанкционированного доступа.

Эта статья должна помочь вам несколько разгрузить свой мозг. Но не слишком расслабляйтесь. Вам по-прежнему необходимо держать систему под контролем. Продолжайте следить за журналами событий!

Об авторах

Марк Джозеф Эдвардс - сетевой инженер с 16-летним опытом работы. Он является автором книги Internet Security with Windows NT (издательство 29th Street Press). С ним можно связаться по электронной почте по адресам mark@ntshop.net или mje@winntmag.com.
Дэвид Лебланк более пять лет занимается вопросами безопасности Windows NT, является старшим технологом группы по компьютерной безопасности корпорации Microsoft. C ним можно связаться по электронной почте по адресу dleblanc@mindspring.com.

Установка аудита системы безопасности

  1. Войдите в систему с административными правами.
  2. Запустите программу User Manager. Выберите в меню: Policies, Audit и отметьте Audit These Events.
  3. Выделите для аудита (по минимуму) события с успешным (Success) и неудачным (Failure) результатом выполнения; включите аудит попыток входа в систему и выхода из нее (Logon, Logoff). Закройте диалоговое окно, чтобы активизировать аудит системы.
  4. Откройте программу Services в Панели Управления (Control Panel), установите для службы Планировщика NT (NT Scheduler) режим запуска от имени системы (System account). Запустите (или перезапустите) службу Планировщика.
  5. Откройте командное окно DOS и проверьте текущее системное время.
  6. Прибавьте к текущему времени 1-2 минуты (так, если время 11:30, используйте 11:32) и введите следующую команду:
      at 11:32 /interactive "regedt32.exe"

    Эта команда вставляет в список Планировщика событие, по которому в 11:32 на консоли будет запущена утилита regedt32 с правами SYSTEM.

  7. Дождитесь 11:32, когда Планировщик NT запустит редактор реестра. При этом вы получите доступ ко всему реестру, включая базу данных SAM. Будьте внимательны при редактировании реестра - ошибка может вывести из строя систему.
  8. Выберите HKEY_LOCAL_MACHINE, найдите дерево SAM и выделите его в левой панели экрана.
  9. Выберите в меню: Security, Auditing.
  10. В диалоговом окне Auditing выберите Add, Show Users.
  11. Добавьте учетную запись SYSTEM, группу Domain Admins, все учетные записи пользователей, имеющих административные права, а также все остальные учетные записи, которым присвоены следующие права (User Rights):
  12. Отметьте: Audit Permission on Existing Subkeys
  13. Отметьте Success и Failure для следующих полей:
  14. Нажмите кнопки OK, Yes.
  15. Повторите шаги с 10 по 14 для ключа SECURITY, если это необходимо. Это не требуется, если вам нужно активизировать аудит только тех ключей, которые содержат пароли.
  16. Выйдите из редактора реестра.
  17. Остановите службу Планировщика и измените его конфигурацию так, чтобы он работал от имени пользователя, которое употреблялось ранее (до шага 4). Если вы не применяете в обычной работе системы Планировщик NT, то просто остановите его или, еще лучше, заблокируйте (вариант disabled).

Безопасность приложений BackOffice

Многие прикладные программы, работающие в среде Windows NT, используют пароли, которые хранятся не в базе данных SAM. Такие приложения, как Microsoft Outlook, Internet Explorer (IE), Internet Information Server (IIS), SQL Server, - размещают пароли в различных областях системы. Нужно иметь представления обо всех этих областях и принимать меры для предотвращения нежелательного доступа в систему.

Одно из наиболее распространенных приложений в NT - Internet Explorer. Сам IE не требует ввода паролей, однако этого требуют многие узлы, доступ к которым осуществляется с помощью IE. Слабый дизайн Web-узлов обычно приводит к появлению проблем в области безопасности. В особенности это происходит, когда необходимые для входа на сайт имена пользователей и пароли размещаются в специальных модулях настройки клиентов, называемых cookies.

Срок жизни модулей настройки клиентов можно программировать, следовательно, можно указать, что он истекает немедленно.Тогда эти данные будут оставаться в памяти только в тот период, когда они используются в текущей работе с узлом, и никогда не будут записаны на диск. Модули, содержащие имена пользователей и пароли, срок жизни которых не истек, NT сразу же записывает в каталог %systemroot%\profiles\username\cookies.

Любой, кому доступен этот каталог, имеет доступ ко всем данным, хранящимся в модулях настройки клиентов, включая такую информацию, как имена пользователей и пароли. Злонамеренный оператор Web-узла, знающий, где нужно искать соответствующую информацию, сможет найти ее в каталоге cookies. И пользователь ничего не будет знать об этом. Эта ситуация не является дырой в системе безопасности IE. Это просто особенность алгоритмов работы HTML Cookies.

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

Клиент Outlook во время обычной работы нигде не хранит в системе паролей в открытом текстовом виде. Однако если вы работаете с сервером по протоколу POP3, то пароли передаются по сети в явном виде. Такие пароли можно легко перехватить с помощью сетевого анализатора пакетов. Протокол POP3 требует передачи открытых паролей, поэтому Microsoft ничего не может сделать для решения этой проблемы. Но несмотря на это, для приема почтовых сообщений можно использовать вместо POP3 протокол APOP (Authenticated Post Office Protocol). Этот протокол работает с зашифрованными паролями.

SQL Server при аутентификации пользователей хранит пароли в системном реестре. Соответствующие ключи реестра очень слабо защищены. Например, когда вы регистрируете SQL-сервер с использованием SQL Executive, имя пользователя и пароль для этого сервера записываются в реестр, в дерево HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer. И любой сообразительный пользователь, имеющий право непосредственной регистрации с консоли сервера, может легко получить пароли SQL-серверов. Поэтому будьте внимательны при назначении пользователям прав регистрации на серверах с локальной консоли. Желательно также запретить удаленный доступ к реестру на всех системах NT, где это возможно. Но это следует очень аккуратно планировать, так как многим системам управления сетью и многим программам установки необходимо использовать удаленный доступ к реестру.

Недавно было обнаружено, что при установке пакета Microsoft BackOffice Server пароли пользователей остаются записанными на диск в явном виде в областях файловой системы, доступных обычному пользователю. Во время инсталляции создается файл reboot.ini в каталоге \program files\microsoft backoffice. Если пользователь в процессе установки Backoffice 4.0 выбирает установку продуктов SQL Server, Exchange Server или Microsoft Transaction Server (MTS), то программа установки запрашивает имя и пароль для пользователей, необходимые для работы данных продуктов.

Если подробнее, то программа установки запрашивает имена и пароли пользователей, от имени которых работают SQL Executive, Exchange Services и MTS Remote Administrator, и сохраняет эту информацию в виде открытого текста в файле reboot.ini. После завершения установки программе не удается удалить этот файл. Позаботьтесь о том, чтобы не предоставлять излишних прав доступа системам BackOffice. Если вы имеете достаточно надежную систему безопасности, то вряд ли вы столкнетесь с описанной проблемой. Но, несмотря на это, обязательно удалите вручную этот файл после завершения установки BackOffice 4.0. Более подробная информация по этой проблеме изложена в статье Microsoft BackOffice Installer Tool Does Not Delete Password Cache File (http://support.microsoft.com/support/kb/articles/q217/0/04.asp).


Безопасность прикладных программ

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

Многие программные продукты имеют уязвимые места с точки зрения безопасности. Одним из таких продуктов является СУБД Oracle. Эта СУБД хранит в системе конфиденциальную информацию в виде открытого текста.

Отсюда вытекает мораль: необходимо обеспечивать защиту собственными силами, отслеживая состояние системы до, во время и после установки новых программ, в особенности если эти программы не являются широко известными коммерческими продуктами. Отслеживать состояние системы удобно при помощи утилиты Sysdiff, входящей в состав пакета Microsoft Windows NT Workstation 4.0 Resource Kit. Посредством Sysdiff вы можете создать образ системного реестра перед установкой новых продуктов и затем сравнить его с реально используемым реестром после установки программ. Утилита Sysdiff отображает все различия между двумя образами реестра. В качестве альтернативного варианта можно использовать утилиту Regmon (ее можно найти на Web-сайте Sysinternals: http://www.sysinternals.com). Данная утилита позволяет наблюдать за доступом к реестру в реальном времени.

Что касается файловой системы, вы можете сделать сравнение ее состояния до и после установки. Это поможет выявить, какие файлы были удалены или добавлены во время установки нового продукта. Чтобы сделать такое сравнение, можно использовать утилиту Windiff из набора Resource Kit. Это делается следующим образом.

Прежде чем установить новый программный продукт, откройте окно DOS и перейдите в корневой каталог диска, с которым вы собираетесь работать (например, C:\). Чтобы создать текстовый файл, содержащий полную структуру файлов и каталогов, введите команду

dir /S > directory1.txt

Эта команда создает файл directory1.txt, включающий в себя список всех каталогов и файлов, расположенных на текущем диске. Создайте такие файлы для всех дисков, имеющихся у вас в системе, назначая разные имена файлов для каждого диска. После завершения установки нового программного продукта точно так же создайте еще один набор файлов, назначая другие имена файлов. Затем, используя утилиту Windiff, выполните сравнение структур каталогов, содержащихся в соответствующих созданных файлах. В результате Windiff отобразит все каталоги и файлы, которые были удалены, добавлены или модифицированы во время установки. Обязательно прочитайте справочный файл Windiff, который содержит подробные инструкции по работе с данной утилитой.

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