Смекни!
smekni.com

Комплексная защита типовой локальной вычислительной сети (стр. 11 из 12)

Проверка подлинности в 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.