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


Обеспечение безопасности публичных сервисов – главная задача системных администраторов в борьбе с хакерами. Здесь в ход идут все средства, в том числе и специальные утилиты.

ИЗВЕСТНО, ЧТО СЕРВЕРЫ вэб-приложений являются одними из любимых объектов атак хакеров. Причина заключается в том, что эти серверы вынесены в открытое интернет-пространство и организовать с ними непосредственный контакт не составляет труда. Вот почему администраторы серверов такого типа обязаны постоянно следить за уровнем защищенности объектов.

Новый, уже ставший популярным, продукт компании Microsoft Internet Information Server шестой версии позволяет решать скрипты и настройки, актуальные для более раннего IIS, и 6-я версия этого сервера не сможет корректно их унаследовать. Для тех случаев, когда использование IIS 5 является оправданным, всегда остается возможность прирменять в Microsoft инструменты, повышающие устойчивость этого сервера.

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


Чтобы закрыть эту брешь, Microsoft разработала утилиту UrlScan, функциональность которой автоматически включена в IIS 6. Назначение этого инструмента состоит в создании некоторой программной прослойки между самой строкой запроса вэб-адреса, посылаемого браузером клиента и синтаксическим анализатором сервера. UrlScan будет предварительно обрабатывать строку запроса и исключать из нее нелегитимные символьные выражения, предавая после в сервер уже безопасный код. 


Взять утилиту можно с сайта
http://www.microsoft.com/downloads. После ее установки, в папке %windir%\system32\inetsrv\urlscan будет размещен файл конфигурации, в котором нужно будет описать необходимые правила фильтрации. Таким образом UrlScan.ini это единственное средство конфигурации этой утилиты безопасности, что нехарактерно для данного разработчика, делающего упор на средства GUI.


Что касается ini-файла, то он состоит из двух логических частей. Первая это список разрешенных и запрещенных функций. Синтаксис этой части включает название функции и соответствующее ему число "0" или "1", запрещающее или разрешающее использовать эту функцию. Еще значения "1" и "0" могут быть использованы для исключения из списка по умолчанию определенной функции.

 

Пример опции urlscan.ini


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


- UseAllowVerbs. Обычно для работы вэб-страницы, достаточно чтобы обрабатывались запросы "GET", "HEAD" и "POST". Тогда, когда на сервере поддерживается сервис WebDAV(обмен документами через вэб-интерфейс), необходимыми запросами будут также "PROPFIND", "MOVE". Общий же набор вэб-запросов намного шире. И дать возможность использовать все их в команде запроса это значит значительно развязать руки хакеру. Смысл UseAllowVerbs в том, будет ли разрешено использовать все команды из HTTP протокола или только некоторые определенные. По умолчанию значение этой опции "1" и это означает, что будет учитываться список выражений приведенный в опции AllowVerbs. Иначе актуальным становиться опция DenyVerbs.


- UseAllowExtensions. Эта опция работает в связке с Allow(Deny)Extensions. Она используется для описания расширений файлов, к которым может быть инициировано обращение по адресной строке. Дело в том, что большинство типов файлов обрабатываются внутренними процессами вэб-сервера и присутствие их расширений в адресной строке не является оправданным. Например, такие типы файлов как .exe", ".bat", ".cmd", ".com", ".htr" нужны только внутри IIS. К сожалению, по умолчанию данная опция имеет значение "0", что разрешает задавать в адресной строке эти и другие расширения файлов, а занчит и получить к ним доступ. Правильнее будет сбросить значение в "0", а в сопряженной опции AllowExtension явно задать список расширений, которые могут присутствовать в URL-запросе. Среди них обычно могут быть ".asp", ".aspx", ".cer", ".cdx", ".asa", ".html", ".js", ".htm", ".jpg", ".jpeg", ".gif". А вообще, чтобы быть уверенным в правильности данного перечисления, можно заглянуть в журнал запросов вэб-сервера и извлечения из него необходимых значений.


- NormalizeUrlBeforeScan. Прежде чем стать частью непосредственного процесса доступа к объектам вэб-страницы, запрос может быть некоторым образом преобразован. Его строка может быть конвертирована в символы UTF а также в шаблоны URL-строки. Наиболее часто встречающемся случаем есть, например, преобразование символа пробела в последовательность "%20". Опасность этого механизма в неоднозначной трактовке последовательности символов – это может быть шаблон или строка в своем естественном виде. Для более точной интерпретации запросов мы можем использовать указанную опцию, в которой определяется следует ли нормализировать(преобразовать в URL-шаблон) все строки запроса. Рекомендуется устанавливать ее значение в "1" чтобы всегда сводить строку в канонический вид. К сожалению, из-за неоднозначного подхода различных приложений к трактовке строк, это полностью не гарантирует вашу систему от сбоев в работе.


- VerifyNormalization. Когда сервер получает строку запроса, то он не может быть уверен, что в цепочке преобразований данная последовательность символов не является результатом двойного кодирования. Это вполне возможно, если учесть что кодирование может проводить как клиент пославший запрос, так и сам сервер. Установив значение VerifyNormalization в "1" мы заставляем UrlScan два раза подряд декодировать URL-строку. Если первый и второй результат отличаются между собой, то запрос отбрасывается.


- AllowHighBitCharacters. Символы в строке запроса могут выходить за границы таблицы ASCII. Это могут быть символы национального алфавита или UTF символы. С точки зрения безопасности рекомендуется использовать только стандартные символы из первой половины ASCII таблицы. Но для этого требуется при создании вэб-сайта в названиях файлов и директорий использовать только английскую кодовую таблицу.


- AllowDotInPath. Во многих случаях, путь в доступа к ресурсу в URL-строчке имеет относительный характер и содержит несколько последовательностей выражения "../". Нужно заметить, что при некотором везении, используя в строке запроса несколько относительных переходов с использованием "../", хакер может преодолеть границы файлового пространства  вэб-сервера и попасть в системную область. Для предотвращения такой опасности достаточно установить значение данного параметра в 0, что впрочем, как правило делается программой автоматически. При этом, UrlScan станет отвергать строки запроса, содержащие "../". Имейте в виду, что такое радикальное средство, может привести к неработоспособности некоторые сайты, использующие для описания ресурсов относительные пути.


- RemoveServerHeader. Обычно в ответ на запрос клиента, сервер отвечает строкой имеющей некоторый набор опций. Среди таких может быть опция "Server:", которая в своем содержании несет информацию о деталях архитектуры вэб-сервера. Как известно, инвентаризация ресурсов это один из первых этапов взлома систем. Поэтому является полезным скрывать данные об устройстве и даже версии ОС интернет-сервера. Это помогает сделать UrlScan, если в ее установках использовать "0" как значение опции RemoveServerHeader. Для справедливости чледует заметить, что у злоумышленника все-таки остаются другие способы определить вид ПО используемого на вашем сервере. Но все таки, описанный метод, является очень действенным для защиты от вирусов-червяков.


- AllowLateScanning. С помощью этой опции можно определить приоритетность выполнения фильтров UrlScan в общем процессе обработки запросов. Если установить данную опцию как "0", то тогда фильтры UrlScan будут иметь самый высокий уровень и будут в первую очередь инспектировать URL-строки. И только после этого  строки будут предоставляться вэб-серверу для дальнейшей обработки. Данная опция не может быть задействована в IIS 6.0, в котором реализована другая логика лексической обработки строк. Кроме того, активация (установка в "1") этой опции может понадобиться, если на сервере работает так же FrontPage.


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

 

- UseFastPathReject. Это более быстрый метод отсылки к клиенту сообщений об ошибках, чем использование RejectResponseUrl. Например, если установить описываемую опцию в "1", сервер в качестве ошибочного сообщения будет использовать код 500.

 

- AlternateServerName. Эта опция включается в обработку при условии RemoveServerHeader = 0. В этом случае для формирования строки ответа "Server:" будет задействовано значение AlternateServerName. С помощью этого приема, можно предоставить злоумышленнику неправдивую информацию о версии вэб-сервера.


- DenyUrlSequences. Эта опция позволяет задать список недопустимых символов в строке запросов. Установленный по умолчанию список отвергаемых символов: "..", "./", "\", ":", "%","&". Рекомендуется также дополнить этот перечень другими "бессмысленными" для строки запроса символами, например, "#", "<", ">" и др.


Отношение опций UrlScan 2.5 и встроенных возможностей IIS 6.0

Мы говорили, что последняя версия Internet Information Server во многом не нуждается в поддержке безопасности с помощью отдельных утилит, таких как UrlScan. Мы можем привести соотношение опций UrlScan и тех настроек безопасности которые реализуются конфигурацией IIS 6.0.

 


В статье использованы материалы:

2006.05.12
19.03.2009
В IV квартале 2008 г. украинский рынок серверов по сравнению с аналогичным периодом прошлого года сократился в денежном выражении на 34% – до $30 млн (в ценах для конечных пользователей), а за весь календарный год – более чем на 5%, до 132 млн долл.


12.03.2009
4 марта в Киеве компания Telco провела конференцию "Инновационные телекоммуникации", посвященную новым эффективным телекоммуникационным технологиям для решения задач современного бизнеса.


05.03.2009
25 февраля в Киеве компания IBM, при информационной поддержке "1С" и Canonical, провела конференцию "Как сохранить деньги в условиях кризиса?"


26.02.2009
18-19 февраля в Киеве прошел юбилейный съезд ИТ-директоров Украины. Участниками данного мероприятия стали ИТ-директора, ИТ-менеджеры, поставщики ИТ-решений из Киева, Николаева, Днепропетровска, Чернигова и других городов Украины...


19.02.2009
10 февраля в Киеве состоялась пресс-конференция, посвященная итогам деятельности компании "DiaWest – Комп’ютерний світ" в 2008 году.


12.02.2009
С 5 февраля 2009 г. в Киеве начали работу учебные курсы по использованию услуг "электронного предприятия/ учреждения" на базе сети информационно-маркетинговых центров (ИМЦ).


04.02.2009
29 января 2009 года в редакции еженедельника "Computer World/Украина" состоялось награждение победителей акции "Оформи подписку – получи приз!".


29.01.2009
22 января в Киеве компания "МУК" и представительство компании Cisco в Украине провели семинар для партнеров "Обзор продуктов и решений Cisco Small Business"

 

 
 
Copyright © 1997-2008 ИД "Комиздат".