Ограничение доступа к компонентам сети. Различные неполадки и сбои
Скачать 288.21 Kb.
|
Проверка подлинности в HTTPПротокол НТТР/1.0 описан в RFC1945, формат MIME (Multipurpose Internet Mail Extensions) — в RFC1521. В январе 1997 года в виде RFC2068 опубликовано предложение по разработке нового стандарта HTTP/1.1, который должен существенно повысить производительность информационного обмена между клиентом и сервером. Текущая версия протокола HTTP рассчитана в основном на анонимный доступ к серверу. Вместе с тем предусмотрена и возможность контроля доступа механизмами проверки подлинности типа вызов-ответ. Сервер HTTP из состава Windows NT может использовать две таких схемы: Basic и Windows NT Challenge-Response. Механизм Basic в HTTPКлиент запрашивает сервер, указывая универсальный идентификатор ресурса URI. Сервер обнаруживает, что для доступа к ресурсу требуется идентификация пользователя, возвращает клиенту код ответа 401 (Unauthorized) и включает в сообщение строку заголовка, где указывается схема проверки подлинности, принимаемой сервером (Basic), и название области сети. в которую входит данный сервер. Все серверы в пределах одной области проверяют подлинность по одному списку пользователей. Клиент может сделать следующий запрос к серверу, указав в первой строке запроса тот же идентификатор ресурса URL, но включив в сообщение строку заголовка, в которой передается имя и пароль пользователя, записанные через двоеточие и закодированные методом BASE64 (3 исходных байта кодируются 4 символами алфавита BASE64). Таким образом, по схеме Basic пароль пользователя передается по сети в открытом виде. Механизм Windows NT Challenge-Response в HTTPВторая схема проверки подлинности, которая может использоваться для доступа клиента Internet Explorer к Интернет-серверу IIS, называется NTLM. Суть данной схемы состоит в том, что сервер в строке заголовка WWW-Authenticate передает клиенту «вызов» — последовательность 8 случайных байтов. Клиент применяет имеющийся у него хешированный пароль пользователя в качестве ключа шифрования и в заголовке Authorization возвращает серверу «ответ». В ответ включается имя пользователя, домен и зашифрованный паролем «вызов». Этой информации серверу достаточно, чтобы проверить подлинность пользователя и решить, передавать ли ему запрошенный ресурс. Преимущество этого механизма в том, что во время проверки подлинности пароль по сети не передается. Однако применять его в глобальной сети Интернет вряд ли целесообразно. Во-первых, из клиентов HTTP в настоящее время его поддерживает только Microsoft Internet Explorer (начиная с версии 2). А во-вторых, он все же уязвим для изощренных атак, описанных ниже. Альтернативный подход: механизм Basic + протокол SSLПротокол SSL (Secure Sockets Layer) предложен корпорацией Netscape для защиты от несанкционированного доступа передаваемых по Интернету данных путем их шифрования. С точки зрения архитектуры, SSL «встраивается» между модулями HTTP и TCP как на клиентском, так и на серверном компьютере. Поступающий от клиента HTTP-запрос сначала шифруется модулем SSL и в таком виде передается по каналу TCP. На сервере модуль SSL расшифровывает поступившие по каналу TCP данные и передает их HTTP-серверу. Ответ сервера в процессе передачи его клиенту подвергается аналогичным преобразованиям. Контроль допустимых операцийРассмотренные выше средства контроля доступа основаны на идентификации и проверке подлинности пользователя, олицетворении его сервером и применении для защиты информации стандартных средств операционной системы. В дополнение к этому Интернет-сервер содержит средства ограничения допустимых операций протокола. Администратор Интернет-сервера явно указывает папки файловой системы Windows NT, доступные по протоколам FTP, Gopher и HTTP, формируя отдельно для каждой из этих служб список виртуальных каталогов (virtual directories). Объявляя папку виртуальным каталогом IIS, администратор открывает доступ по сети ко всем файлам в этой и вложенных в нее папках. Для каждого виртуального каталога можно указать тип допустимых для него операций. Заметьте: рассматриваемые ограничения относятся ко всем обращающимся через виртуальный каталог пользователям. Виртуальные каталоги могут быть вложены друг в друга, и эта вложенность не обязательно соответствует вложенности папок. Используя это средство, можно установить различные разрешения на подкаталоги виртуального каталога. Только помните: папка, имя которой длиннее 8 или содержит недопустимые для DOS символы, имеет в действительности два имени, и клиент в запросе может указать любое из них. Операциями FTP являются считывание и запись информации. FТР-клиент выполняет операцию считывания по командам dir, get и mget. Операциям записи соответствуют команды клиента put, mput, delete, rename. По умолчанию все виртуальные каталоги FТР-сервера открыты только на чтение. Чтобы разрешить клиентам передавать файлы на сервер, администратору надо установить флажок Write в окне свойств соответствующего виртуального каталога. Для службы HTTP в окне свойств каждого виртуального каталога администратор системы может разрешить или запретить выполнение по запросу клиентов операций Read и Execute. Выполняемые приложения IIS (CGI, ISAPI), открывая большие возможности для создания нетривиальных информационных систем, одновременно представляют угрозу для системы безопасности сервера. Если приложение доступно через Интернет-сервер, его может запустить любой пользователь, располагающий стандартным клиентом HTTP. Поэтому администратору следует очень внимательно относиться к установке приложений IIS. Множество известных взломов защиты серверов HTTP связаны с эксплуатацией ошибок при администрировании Web-узла или ошибок установленных на нем приложений. Microsoft рекомендует обычные и исполняемые файлы помещать в разные виртуальные каталоги, в свойствах виртуальных каталогов с обычными файлами разрешать только операцию Read, а с исполняемыми файлами — только Execute. Если в последнем случае разрешить обычное считывание, у клиентов появляется шанс получить копию исполняемого файла или сценария, а это — первый шаг к выявлению в этой программе ошибок и последующей их эксплуатации. Тщательно контролируйте папки, объявленные виртуальными каталогами с разрешением исполнения приложений, и их подпапки. Установленные на них разрешения NTFS должны открывать их на запись лишь ограниченному кругу пользователей. Если приложениям требуется разрешение на запись в какие-либо файлы, лучше сделать так, чтобы эти файлы располагались в отдельной папке, недоступной через Интернет. Появление в виртуальных каталогах с приложениями файлов с расширениями .exe, .com, .dll — очень тревожный признак. В реестре операционной системы периодически проверяйте список интерпретаторов сценариев, а также значение параметра HKEY_LOCAL_MACHINE\SYSTEM\Current-ControlSet\Services\W3SVC\Parameters\Filter DLLs, в котором перечисляются дополнительные библиотеки, подключаемые к Интернет-серверу. Среди операций сервера HTTP есть еще одна, не упоминавшаяся ранее — Browse. Что сделает Интернет-сервер, если в запросе указано имя папки, а не файла? По умолчанию — будет искать в этой папке файл default.htm и возвратит клиенту его содержимое. Но если такого файла нет, он может составить индекс, т.е. перечислить имеющиеся в ней файлы и подпапки. Для информационных систем, созданных по типу WWW, это излишняя операция, поскольку доступ к отдельным файлам осуществляется по гипертекстным связям. Поэтому по умолчанию этот параметр всегда отключен. Однако иногда разработчики Web-узлов, публикуя большое количество файлов, не утруждают себя созданием и поддержанием в актуальном состоянии гипертекстного индекса. В этом случае удобно воспользоваться средством автоматического составления индекса папки. Во второй и третьей версиях IIS оно включается установкой флажка Browsing в окне свойств службы WWW Интернет-сервера на вкладке Directories. Возможные атакиСервер IIS для проверки подлинности использует базу учетных записей Windows NT. С одной стороны, это позволяет легко регулировать доступ к ресурсам системы. С другой — при определенных условиях злоумышленник может узнать пароль, указанный пользователем в процессе проверки сервером IIS его подлинности. В таком случае этот пароль можно применить не только для доступа через IIS, но и для любых других операций в сети. Перехват пароляПри проверке подлинности по протоколам FTP и HTTP (Basic) пароль пользователя передается по сети открытым текстом. Любой злоумышленник, способный перехватить пакеты, идущие от клиента к серверу, легко узнает этот пароль. Поэтому применять эти механизмы не рекомендуется. Подбор пароляМеханизм проверки подлинности NTLM несколько более защищен. Однако. перехватив пару «вызов-ответ», злоумышленник может применить программу простого перебора и восстановить пароль пользователя. Возможность этой атаки усугубляется тем, что, во-первых, Internet Explorer для Windows 95 и Windows NT 4 передает на сервер имя и пароль пользователя, даже не оповещая последнего об этом. А во-вторых, по сети передается результат шифрования, основанный на пароле LAN Manager, который защищен сравнительно слабо. Использование хешированного пароляЧтобы пройти проверку подлинности на IIS, клиенту не нужно знать исходный пароль пользователя, достаточно иметь 16-байтовый хешированный пароль. Получить его можно с помощью программы PWDump. Тем самым еще раз подчеркнем: база учетных записей компьютеров нуждается в защите. Атака Man-in-the-MiddleАтака на механизм «вызов-ответ», называемая Man-in-the-Middle, может быть с минимальными изменениями проведена по протоколу HTTP. 1. Пользователь Internet Explorer пытается получить доступ к WEB-серверу злоумышленника. Тот идентифицирует «жертву» и инициирует проверку подлинности по механизму NTLM. 2. Злоумышленник издает запрос на атакуемый сервер в домене жертвы, чтобы открыть сессию SMB. 3. Сервер генерирует злоумышленнику ответ, содержащий случайный «вызов». 4. Система злоумышленника транслирует этот же «вызов» по протоколу HTTP. 5. Internet Explorer, применив пароль пользователя, формирует «ответ» и передает его на проверку злоумышленнику. 6. Злоумышленник транслирует «ответ» пользователя атакуемому серверу и, естественно, получает к нему доступ. Самое неприятное в этой атаке то, что пользователь может даже не подозревать, что сведения о нем переданы на сервер в Интернете. Рекомендации по защите сервера IISТиповые потребности организацииРассматриваемая нами типовая организация обычно нуждается в IIS для предоставления пользователям Интернета доступа к Web-серверу организации по протоколам HTTP и FTP. Механизм аутентификации не нужен, так как нет потребности ограничивать доступ к ресурсам Web-сервера ни из Интернета, ни из внутренней сети организации. Для обеспечения таких потребностей достаточно IIS 3, входящего в состав NT Service Pack 3 и выше. Если требуются дополнительные возможности (например, поддержка IIS), лучше установить IIS 4, который доступен в составе бесплатно распространяемого Windows NT Option Pack. Инсталляция сервера IISЕсли IIS не был установлен в процессе инсталляции Windows NT, то его можно инсталлировать, запустив файл inetins.exe из директории %SystemRoot%\system32. Так как Web-сервер нашей типовой организации размещен в локальной сети, для его работы через прокси-сервер необходимы некоторые специальные настройки: 1. На компьютере, выполняющем роль Web-сервера, должен быть инсталлирован WinSock Proxy client. 2. Необходимо создать текстовый файл wspcfg.ini и поместить его в директорию с файлом inetinfo.exe (%SystemRoot%\system32\inetsrv). Содержимое файла wspcfg.ini: [inetinfo] ServerBindTcpPorts=21,20,80 LocalBindTcpPorts=20 KillOldSession=1 Persistent=1 Forcecredentials=1 3. Если используется разграничение доступа в Интернет, необходимо создать специальную учетную запись, от имени которой будет происходить авторизация службы Web-сервера в MS Proxy Server’e (например, “InetInfo”). Далее, необходимо с помощью утилиты CredTool, входящей в состав WinSock Proxy Client, указать файлу inteinfo.exe действовать от имени этой учетной записи. Для нашего примера это будет команда credtool –w –n inetinfo –c InetInfo domain password 4. В свойствах WinSock необходимо создать два протокола:
5. Разрешить работать через эти протоколы учетной записи, от имени которой действует служба IIS («InetInfo»). 6. Инсталлировать заплатку с сервера Microsoft (http://support.microsoft.com/support/kb/articles/Q236/0/01.ASP). Настройка службы WWWОсновные настройки приведены на рисунках выше. Следует обратить внимание, что для папки /Scripts следует установить только разрешение Execute, для остальных – Read. Настройка службы FTPКак это принято в Интернет, рекомендуется в FTP-директории создать папки pub и incoming. Из папки pub посетитель может только читать информацию, а в папку incoming – только записывать. Для этого необходима довольно сложная комбинация разрешений NTFS и IIS. Настройки IIS приведены на рисунках ниже. В них предполагается, что компьютер имеет имя EKSERVER и созданный по умолчанию пользователь, которым олицетворяется IIS-анонимный пользователь, называется IUSR_EKSERVER. Разрешения NTFS для пользователя IUSR_EKSERVER приведены в списке: Для папки ftproot – Read (RX)(RX); Для папки incoming – Special Access (RW)(W); 3. Для папки pub – Read (RX)(RX). Дополнительные меры защитыНе рекомендуется Web-дизайнерам и Web-программистам давать доступ к WWW-директориям по протоколу FTP. Вместо этого лучше сделать ее доступной по внутренней сети и работать только оттуда. Рекомендуется отслеживать и хранить лог-файлы IIS в течение длительного времени. Быть может, эти файлы годичной давности помогут доказать вам, что атака на Bank of New York с вашего сервера была произведена не вами, а кем-то, кто ранее сумел взломать его. При наличии невысокоскоростного канала в Интернет рекомендуется ограничить максимальную скорость доступа к Web-серверу, чтобы какая-то часть канала всегда была доступна вашим пользователям. По этой же причине (а также в зависимости от мощности Web-сервера) лучше ограничить максимальное число FTP и HTTP-соединений. Разделы реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSFTPSVC\Parameters\Virtual Roots рекомендуется открыть для полного доступа только ОС и администраторам. Отслеживать появление в каталогах IIS неизвестных файлов, особенно с расширениями com, exe, dll в папках с разрешением Execute. Следить, чтобы удаленный пользователь не мог по протоколу FTP, закачав в папку incoming большое количество информации, переполнить жесткий диск Web-сервера. |