Создатели инициативы Microsoft Trustworthy Computing обещали клиентам безопасность по умолчанию. Но Microsoft — компания большая и, может быть, клиентам придется еще долго ждать, пока результаты глобальных перемен станут заметны. Признаться, я скептически относился к заявлениям о том, что Microsoft усиливает защиту Web-сервера Microsoft Internet Information Services (IIS) 6.0 в Windows Server 2003. Возможно, и вы были не склонны им верить, однако похоже, что компания выполнила свои обещания. Итак, уважаемые читатели, позвольте мне рассказать о нововведениях, которые я считаю десятью основными усовершенствованиями в системе безопасности IIS 6.0, и предложить вам свою оценку этих нововведений.
10. Windows 2003 отключает IIS 6.0 при выполнении модернизации до уровня новой операционной системы, если в системе IIS 5.0 не запускалась программа IIS Lockdown. Если происходит модернизация Windows 2000 Server, на которой установлен сервер IIS 5.0, до уровня Windows 2003, и IIS Lockdown прежде не использовалась для укрепления сервера, новая операционная система по умолчанию отключит IIS 6.0.
Поскольку Windows 2000 Server устанавливает систему IIS 5.0 по умолчанию, имеется множество серверов IIS 5.0, о существовании которых многие просто не подозревают. О наличии этих забытых серверов свидетельствуют «подвиги» червя CodeRed, которые нам все еще приходится наблюдать время от времени. Большинство пользователей уже установили модули коррекции на всех серверах IIS 5.0, где это было необходимо, а остальные серверы доверены попечению операторов, которые либо не знают, либо и знать не хотят о том, что эксплуатируют зараженные серверы. Если такие операторы будут модернизировать свои «незаштопанные» серверы до уровня Windows 2003, они отключат IIS, и тогда для остальных пользователей Internet станет чуть более безопасным.
Итак, если вы планируете модернизировать сервер IIS 5.0, и при этом не запускали на нем программу IIS Lockdown, и если вы хотите активизировать IIS 6.0, нужно действовать в соответствии с одной из следующих рекомендаций.
Запустите программу IIS Lockdown на сервере IIS 5.0.
В разделе реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesW3SVC создайте параметр RetainW3SVCStatus. При этом неважно, какое значение будет иметь добавленный параметр; главное, чтобы он присутствовал в реестре.
В файле ответов для автоматической модернизации нужно установить переключатель DisableWebServiceson
Upgrade=False.
Если выполняется модернизация системы до уровня Windows 2003 и выясняется, что сервер IIS 6.0 отключен, его можно активизировать. Для этого следует открыть консоль Services и выбрать для параметра IIS Admin Service значение Automatic startup. Затем требуется перезагрузить компьютер или в окне командной строки ввести: net start w3svc
9. По умолчанию IIS 6.0 обеспечивает «сквозную» аутентификацию для виртуальных каталогов. Когда в среде IIS 6.0 создается виртуальный каталог для доступа к содержимому удаленного совместно используемого ресурса, мастер Virtual Directory Creation Wizard предусматривает режим Always use the authenticated user?s credentials when validating access to the network directory, который выбирается по умолчанию (в версиях IIS 5.0 и 4.0 такой режим не предусмотрен).
Но раз сервер IIS 6.0 передает далее учетные данные пользователя, появляется возможность задействовать разрешения NTFS для предоставления доступа к удаленному контенту с гораздо большей степенью детализации, нежели при работе с предыдущими версиями IIS. Однако при этом необходимо использовать надлежащий метод аутентификации: базовая и должным образом сконфигурированная система аутентификации Kerberos обеспечивает регистрацию, которую IIS 6.0 может делегировать (то есть пропустить), однако ни аутентификация с применением Windows NT LAN Manager (NTLM), ни анонимный доступ не генерируют регистрационных данных, которые Web-сервер может передать дальше. Аутентификация пользователей должна быть организована таким образом, чтобы работал механизм сквозной аутентификации.
8. Система Windows 2003 обеспечивает преобразование одних протоколов аутентификации в другие. Сервер IIS 6.0 может использовать эту функцию Windows 2003 для осуществления сквозной аутентификации. В среде Windows 2003 Active Directory (AD) сервер IIS 6.0 может преобразовывать маркеры аутентификации в маркеры «в стиле Kerberos» вне зависимости от того, какой метод аутентификации клиента используется. Так, в среде Windows 2003 при аутентификации клиента на сервере IIS 6.0 может применяться аутентификация по NTLMv2; при этом, когда сервер от имени клиента вступит в контакт с другими сетевыми ресурсами, он сможет преобразовать регистрационные данные в маркер аутентификации в стиле Kerberos. Протокол Kerberos — это самое безопасное средство развертывания сетевых средств аутентификации на серверах Microsoft, и функция преобразования протоколов позволяет применять его для аутентификации пользователей без оглядки на то, какие регистрационные маркеры они задействуют для получения доступа к серверу IIS 6.0.
7. Windows 2003 позволяет ограничивать делегирование управления сервером IIS. Реализованная в Windows 2003 функция ограниченного делегирования прекрасно дополняет средства сквозной аутентификации и преобразования протоколов. Компьютер, права управления которым делегированы в лесу Windows 2000 AD, где используется протокол Kerberos, имеет такие права в масштабах всего леса. Однако, возможно, пользователь не захочет, чтобы сервер IIS передавал учетные данные всем компьютерам соответствующего леса. На серверах Windows 2003 можно для осуществления процедуры делегирования устанавливать доверительные отношения «компьютер-компьютер», тем самым избегая ситуации, в которой правами управления сервером IIS будут наделены слишком многие. Более подробную информацию по этой теме можно найти в статье Microsoft «Kerberos Protocol Transition and Constrained Delegation».
6. Сервер IIS 6.0 обладает совместимостью с усовершенствованным процессором http.sys, который лучше анализирует HTTP-запросы и наделен другими полезными функциями. Важная часть архитектуры сервера IIS 6.0 — это процесс прослушивания (listener) в режиме ядра http.sys. Драйвер устройства http.sys получает все запросы URL от пользователей и анализирует их. За время, прошедшее с момента выхода в свет версии IIS 5.0, специалисты Microsoft значительно лучше освоили механизмы анализа URL, поэтому в процессоре http.sys реализованы более эффективные средства контроля соблюдения правил, определяющих, какой URL можно считать сформированным должным образом. Этот процессор более точно обрабатывает искаженные запросы, в результате чего уровень защиты заметно повышается. Когда http.sys отвергает запрос из-за того, что тот составлен с нарушением правил, процессор отправляет ответ в соответствии с требованиями и прерывает соединение.
В таблице приводится список параметров реестра, влияющих на то, каким образом процессор http.sys анализирует указатели URL и принимает контент от клиента. Если этих параметров нет в разделе реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSet Services HTTPParameters, их следует создать. Полный набор параметров реестра, выпущенных Microsoft для процессора http.sys, приводится в статье «INF: Http.sys Registry Settings for IIS» (http://support.microsoft.com/?kbid=820129).
При передаче ядру задач на анализ, прием и маршрутизации указателей URL приложениям возникает проблема: как регистрировать запросы, которые http.sys отвергает или не может передать соответствующей прикладной программе? Для ее решения создатели IIS 6.0 предусмотрели дополнительный файл httperr.log. Администраторы могут использовать его для поиска причин неполадок и для решения задач, связанных с организацией защиты данных. В этот файл регистрации событий вносятся записи, касающиеся конкретных событий и ошибок, возникающих вследствие временных отключений связи. Информацию об этом файле можно найти в статье Microsoft «INFO: Error Logging in HTTP API» (http://support.microsoft.com/?kbid=820729).
В дополнение к описанным усовершенствованиям синтаксический анализатор http.sys наделен и такими функциями, которые ранее обеспечивали фильтры Internet Server API (ISAPI), например compression.dll и sspifilt.dll в ранних версиях сервера IIS (Sspifilt.dll обеспечивает функции Secure Sockets Layer-SSL).
5. Рабочие процессы от имени учетной записи System не выполняются. В версиях IIS 5.0 и IIS 4.0 идентификатором процессов внутренних приложений является учетная запись System, поскольку они выполняются как внутренние процессы вместе с Inetinfo (основной процесс IIS), который запускается от имени этой учетной записи. Такая ситуация создает серьезную угрозу безопасности, ибо, если злоумышленник предпримет атаку с использованием переполнения буферов или запустит враждебные приложения, обращающиеся к функции RevertToSelf, он сможет получить привилегии учетной записи System.
Сервер IIS 6.0 может функционировать в двух режимах: режим IIS 6.0 (в Microsoft его называют режимом изоляции рабочих процессов) и режим эмуляции IIS 5.0 (именуемый в Microsoft режимом изоляции IIS 5.0). В режиме IIS 6.0 приложения используют не учетную запись System, а идентификатор процессов новой встроенной учетной записи Network Services. Эта запись, которая является хорошо известным идентификатором безопасности на всех серверах Windows 2003, может задействовать ресурсы других систем, но не имеет административных прав на серверах. Следовательно, стандартная конфигурация IIS 6.0 не имеет известных «лазеек», которые существуют при работе в контексте System.
4. В стандартном Web-сайте нет «точек входа» для взломщиков. В системе IIS 6.0 все еще имеется стандартный Web-сайт, но виртуальные каталоги IISAdmin, IISHelp, Scripts, MSADC и Printers в ней уже не используются. В результате на стандартном Web-сайте исключается возможность непосредственного доступа к таким каталогам, как http://servername/scripts.
Дело не только в том, что в пакете IIS 6.0 существенно упрощена структура Web-сайта, но и в том, что сайт теперь имеет лишь статический контент. В случае локального обращения к Web-сайту в системе IIS 5.0 пользователь получает справочные файлы IIS с помощью приложения Active Server Pages (ASP). А в системе IIS 6.0 справочные файлы представляют собой обычные файлы (а не Web-приложения), и при обращении к файлам iisstart.htm и pagerror.gif, представленным в стандартном Web-сайте (других файлов там нет), на мониторе отображается страница Under Construction.
3. В пакете IIS 6.0 упрощена структура каталога Inetpub и более рационально организована система стандартных разрешений на доступ к папкам. Подвергшаяся упрощающей модернизации и усиленная конфигурация стандартного Web-узла дополняется усовершенствованной и усиленной структурой каталогов диспетчера IIS Manager. По умолчанию папка Inetpub сервера IIS 6.0 включает лишь две папки: wwwroot и Adminscripts.
Однако наличие папки Adminscripts (которая содержит файлы synciwam.vbs и adsutil.vbs) не означает, что пользователи могут напрямую обращаться к ней, так как диспетчер IIS Manager не имеет ассоциированного виртуального каталога. Кроме того, разрешения NTFS ограничены разрешениями Full Control для System и Administrators.
Стандартно используются следующие разрешения на доступ к папке Inetpub:
Administrators — Full Control
System — Full Control
IIS_WPG (включает новую учетную запись Network Services) — List Folder Content, Read & Execute, Read
Users — List Folder Content, Read & Execute, Read
Internet Guest Account — Deny Write.
Перечисленные разрешения составляют минимальный набор, вполне достаточный для многих сетей. Понятно, что разрешение Execute вызывает наибольшее число вопросов, но стандартные настройки Web Service Extensions (см. пункт 2) в значительной степени смягчают отрицательные последствия неправильного назначения разрешения Execute.
2. Расширения Web Service Extensions блокируют запуск по умолчанию любой прикладной программы. Если вы решите установить IIS из раздела Application Server в пункте Add/Remove Windows Components панели управления Add/Remove Programs и при этом не выберете других компонентов Application Server, сервер IIS 6.0 будет предоставлять лишь статический контент. Узел Web Service Extensions предварительно сконфигурирован таким образом, чтобы запуск любых исполняемых модулей блокировался. Поэтому, чтобы запускать какую-либо программу, нужно указывать полный путь доступа к ней. Скажем, если понадобится запускать ASP, необходимо дать разрешение на выполнение программы C:winntsystem32inetsrvasp.dll. Сказанное относится и к WWW Distributed Authoring and Versioning (WebDAV), и к ASP.NET, и к языку Perl, и ко всем прочим процессорам сценариев, а также к непосредственно вызываемым исполняемым модулям. Это ограничение имеет очень важное значение в контексте защиты данных. Даже если предоставить пользователям группы Everyone разрешение Full Control, касающееся структуры файлов всего Web-сервера, злоумышленник не сможет запустить какой-либо исполняемый модуль по URL, если только в списке Web Service Extensions не будет указан полный маршрут доступа к данному двоичному файлу.
Запрет на запуск исполняемых модулей заблокировал бы все атаки против IIS 5.0, направленные на стандартные сценарии и на WebDAV. Хотя эти сценарии установлены и в системе IIS 6.0, они могут быть доступны только при выдаче особой санкции. Разумеется, в нагрузку к этим замечательным расширениям Web Service Extensions следует вопрос, который, как мне представляется, пользователи IIS 6.0 будут задавать чаще прочих: «Почему мои приложения не запускаются?»
1. Сервер IIS 6.0 по умолчанию не устанавливается. Если не считать Windows 2003, Web Edition, члены семейства Windows 2003 стандартно не устанавливают IIS 6.0. На момент выпуска Windows 2000 специалисты Microsoft склонялись к тому, чтобы этот сервер устанавливался в активизированном состоянии. И хотя разработчики действовали из лучших побуждений, оказалось, что если оборудовать каждый сервер средствами для анонимного доступа, последствия будут катастрофическими. В результате имидж корпорации пострадал, но, мне кажется, версия IIS 6.0 свидетельствует о том, что в компании произошли существенные внутренние изменения, принесшие ощутимую пользу всем нам.
Бретт Хилл (brett@iisanswers.com) - консультант, преподаватель технических курсов. Имеет сертификаты MCSE, MCT, MCP+Internet и A+/Network+. Поддерживает сайт http://www.IISAnswers.com