Шлюз Microsoft Forefront Threat Management предоставляет возможность настраиваемого контроля HTTP-трафика в форме фильтра HTTP. Фильтр HTTP на уровне приложения проверяет HTTP-команды и данные, проходящие через компьютер Forefront TMG, и пропускает только совместимые запросы. Это существенно повышает безопасность веб-серверов за счет того, что они отвечают только на допустимые запросы. Кроме того, такой способ фильтрации позволяет контролировать клиентский доступ в Интернет. Фильтрацию HTTP можно применять в двух основных сценариях.

Фильтрация HTTP зависит от правила: для каждого конкретного правила можно настроить свои условия фильтрации. Например, можно использовать фильтрацию HTTP для блокирования определенной одноранговой службы общего доступа к файлам для одного списка пользователей, но разрешить эту службу для другого списка. Когда содержимое блокируется параметром фильтра HTTP в правиле, происходит ошибка «502 Ошибка прокси-сервера», и пользователь получает сообщение «Запрос был отклонен фильтром HTTP». Настройка политики фильтрации HTTP для правила включает следующие этапы.

С чего начать. Чтобы настроить фильтрацию HTTP для правила, в дереве консоли управления Forefront TMG щелкните узел Политика веб-доступа. В области сведений щелкните правой кнопкой правило и выберите команду Настроить HTTP.

Настройка блокировки заголовков и URL-адресов

  1. На вкладке Общие настройте следующие параметры.

  2. В поле Максимальная длина заголовков (байт) укажите максимальное количество байтов для URL-адреса и HTTP-заголовка запроса HTTP, при превышении которого происходит блокировка. Этот параметр применяется ко всем правилам, то есть его изменение в одном правиле отражается на всех остальных правилах. Уменьшение допустимого размера заголовка снижает риск атак, требующих длинных и сложных заголовков, таких как атаки переполнения буфера и некоторые атаки в виде «отказ в обслуживании». При установке слишком низкого значения максимальной длины заголовка могут пострадать некоторые надежные приложения, использующие длинные заголовки. Рекомендуется сначала установить ограничение в 10 000 байт и увеличивать его только в том случае, если будут блокироваться надежные приложения.

  3. Снимите флажок Разрешить любую длину полезных данных, чтобы включить блокировку запросов с превышением числа байтов, указанного в поле Максимальная длина полезных данных (байт). Ограничение полезных данных запроса приведет к уменьшению объема данных, который пользователь может разместить на данном веб-узле в сценарии веб-публикации. Чтобы определить необходимое ограничение, оцените максимальный размер файла для допустимого сообщения, основываясь на данных по использованию узла, и укажите это значение в качестве допустимой длины полезных данных. При этом любое сообщение, длина которого превышает указанное значение, будет рассматриваться как потенциальная атака.

  4. В поле Максимальная длина URL-адреса (байт) введите максимально допустимую длину URL-адреса. Все запросы с длиной URL-адреса, превышающей указанное значение, будут блокироваться.

  5. В поле Максимальная длина запроса (байт) введите максимально допустимую длину запроса. Все запросы с длиной, превышающей указанное значение, будут блокироваться. Запрос - это часть URL-адреса, следующая после вопросительного знака (?). Если были выявлены случаи атак на основе длинных строк запросов, можно ограничить допустимую длину запроса. По умолчанию максимальная длина запроса составляет 10 240. Длинные запросы и URL-адреса являются известными векторами атаки для вирусов-червей в Интернете. Эти вирусы отправляют длинный запрос GET и используют URL для внедрения своих полезных данных.

  6. Выберите параметр Проверять нормализацию, чтобы включить блокировку запросов с URL-адресами, содержащими переключенные знаки после нормализации. Веб-серверы получают URL-закодированные запросы. Это означает, что определенные знаки могут быть заменены символом процента (%) с некоторым последующим числом. Например, «%20» соответствует пробелу, следовательно, запрос на узел http://myserver/My%20Dir/My%20File.htm полностью аналогичен запросу на узел http://myserver/My Dir/My File.htm. Нормализация - это процесс декодирования URL-закодированных запросов. Поскольку знак % может быть URL-закодирован, атакующий может отправить на сервер тщательно подготовленный запрос, изначально обработанный двойной кодировкой. В этом случае службы IIS могут принять запрос, который иначе отклонили бы как недопустимый. При выборе параметра «Проверять нормализацию» фильтр HTTP нормализует URL-адрес дважды. Если URL-адрес после первой нормализации отличается от URL-адреса после второй нормализации, фильтр отклоняет запрос. Это позволяет избежать атак на основе запросов с двойной кодировкой. Рекомендуется использовать функцию «Проверять нормализацию», однако следует учесть, что она может заблокировать допустимые запросы, содержащие знак %.

  7. Выберите параметр Блокировать символы расширенного набора, чтобы включить блокировку URL-адресов, содержащих символы из расширенного набора. Чаще всего это символы из языков, в которых недостаточно 8 бит для представления знаков языка, и поэтому используется 16-битное представление. Например, URL-адреса, содержащие символы из двухбайтового набора (DBCS) или набора Латиница-1, будут блокироваться. Это позволяет блокировать некоторые атаки на веб-серверы, на которых запущены службы IIS, однако при этом также могут оказаться заблокированными запросы и ответы, содержащие символы одного из нескольких языков, требующих расширенного набора знаков. Параметр «Блокировать символы расширенного набора» может отразиться на таких сценариях, как публикация Outlook Web Access, публикация Microsoft Windows SharePoint Portal Server, и любом другом сценарии, в котором запрос GET передает параметр, включающий символ из двухбайтового набора.

  8. Выберите параметр Блокировать запросы, содержащие исполняемое содержимое Windows, чтобы включить блокировку ответов, содержащих исполняемое содержимое Windows (это ответы, начинающиеся на «MZ»).

Настройка HTTP-методов (команд)

На вкладке Методы настройте следующие параметры.

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

  2. Чтобы добавить метод, нажмите кнопку Добавить. В диалоговом окне Метод введите метод, который требуется добавить. HTTP-методы (также называются HTTP-командами) представляют собой инструкции, отправляемые в сообщении запроса, уведомляющего HTTP-сервер о действии, которое необходимо выполнить с указанным ресурсом. В качестве примера блокировки методом можно привести блокировку размещения, при которой внутренние клиенты не могут размещать данные на внешней веб-странице. Это очень удобно для безопасных сетевых сценариев, когда требуется предотвратить размещение на веб-узле важной информации. Также такая блокировка удобна при веб-публикации: она позволяет предотвратить размещение злоумышленниками вредоносного материала на веб-узле.

  3. Чтобы удалить существующий метод, выберите его из списка и нажмите кнопку Удалить.

  4. Чтобы изменить существующий метод, выберите его из списка и нажмите кнопку Изменить.

Настройка блокировки расширений HTTP

На вкладке Расширения выполните следующие действия.

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

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

  3. Чтобы добавить расширение, нажмите кнопку Добавить. В диалоговом окне Расширение введите расширение, которое необходимо добавить.

  4. Чтобы изменить существующее расширение, выберите его из списка и нажмите кнопку Изменить.

  5. Чтобы удалить существующее расширение, выберите его из списка и нажмите кнопку Удалить.

Чаще всего блокировка расширений используется для блокировки исполняемых (.exe) файлов.

Настройка блокировки заголовков

На вкладке Заголовки выполните следующие действия.

  1. Нажмите кнопку Добавить, чтобы добавить заголовок, который требуется блокировать. Затем в диалоговом окне Заголовок выберите в разделе Искать в один из параметров: Заголовки запросов или Заголовки ответов. Введите имя заголовка. Разрешаются все заголовки, кроме тех, которые отображаются в списке Разрешать все заголовки, кроме следующих.

  2. Чтобы изменить заголовок, выберите его в списке и нажмите Изменить. Чтобы снять блокировку с заголовка, находящегося в списке блокировки, выберите его и нажмите кнопку Удалить.

  3. В поле Заголовок сервера укажите способ возврата заголовка сервера в ответе. Заголовок сервера - это заголовок ответа, содержащий информацию об имени серверного приложения и сведения о версии программы, например HTTP: Server = Microsoft-IIS/6.0. Доступны следующие параметры.

    • Отправить исходный заголовок. В ответе возвращается исходный заголовок.

    • Вырезать заголовок из ответа. В возвращаемом ответе отсутствует заголовок.

    • Изменить заголовок в ответе. Выбрав этот параметр, в поле Изменить на введите значение, которое будет отображаться в ответе. Рекомендуется изменять заголовки серверов. Значение, отображаемое в ответе, может быть любым, так как заголовки серверов редко используются клиентами.

  4. В разделе Заголовок VIA укажите способ пересылки заголовка VIA в запросе или его возврата в ответе. Заголовки VIA позволяют включить прокси-серверы, содержащиеся в пути запроса, также и в путь ответа. Каждый сервер в пути запроса может добавить собственный заголовок VIA. Каждый отправитель в пути ответа удаляет собственный заголовок VIA и пересылает ответ на сервер, указанный в следующем заголовке VIA в стеке. Например, эту функцию можно использовать для предотвращения разглашения имени сервера Forefront TMG в ответе. Доступны следующие параметры.

    • Отправить заголовок по умолчанию. Будет использоваться заголовок по умолчанию.

    • Изменить заголовок в запросе и ответе. Заголовок VIA будет заменен измененным заголовком. Выбрав этот параметр, в поле Изменить на введите заголовок, который будет отображаться вместо заголовка VIA.

Настройка заблокированных подписей

На вкладке Подписи укажите, следует ли разрешить или заблокировать запросы, в заголовках или теле которых содержатся определенные подписи. Для этого выполните следующие действия.

На вкладке Заголовки выполните следующие действия.

  1. Нажмите кнопку Добавить, чтобы добавить заблокированную подпись. Затем в диалоговом окне Подписи выполните следующие действия.

    • В поле Искать в укажите место отображения подписи: в URL-адресе, теле или заголовке запроса либо в теле или заголовке ответа.

    • В поле Заголовок HTTP введите имя заголовка, если выбрана соответствующая подпись.

    • В поле Подпись введите строку подписи. Подписью может быть любая строка в заголовке или теле запроса. Рекомендуется выбирать строки, которые являются максимально уникальными - это гарантирует блокировку только нужных запросов или ответов. Например, если в качестве подписи добавить букву «a», блокироваться будут все запросы и ответы, содержащие эту букву. Аналогично при использовании подписи «Mozilla» будет блокироваться большинство веб-обозревателей. Наиболее типичны следующие подписи: User-Agent: adatum-software-abc.

    • В разделе Диапазон байтов укажите значения в полях От и До, если выбран тип подписи в теле запроса или ответа. По умолчанию Forefront TMG проверяет только первые 100 байтов в теле запроса или ответа. Увеличение этого значения может снизить производительность системы.

  2. Подписи можно включать и отключать посредством расположенных рядом с ними флажков. Щелкните Отображать только включенные строки поиска, чтобы в списке отображались только включенные подписи.

  3. Чтобы изменить заблокированную подпись, выберите ее в списке Блокировать содержимое, содержащее данные подписи и нажмите кнопку Изменить.

  4. Чтобы разрешить заблокированную подпись, выберите ее в списке Блокировать содержимое, содержащее данные подписи и нажмите кнопку Удалить.

Определение подписей

Можно определить подпись для блокировки определенного трафика путем наблюдения за сетевым трафиком следующим образом.

Важно.
Поскольку некоторые средства наблюдения за сетевым трафиком могут представлять угрозу безопасности, рекомендуется использовать эти средства только в лабораторной, а не в рабочей среде.
  1. Добавление средств наблюдения за сетью Windows Это действие выполняется в разделе «Средства управления и наблюдения» дополнительных компонентов Windows.

  2. Чтобы открыть сетевой монитор после установки, нажмите кнопку Пуск, затем выберите Администрирование и Сетевой монитор. Если появится сообщение с предложением выбрать сеть, закройте его.

  3. В диалоговом окне Выбор сети разверните уровень Локальный компьютер. Если внутренние клиенты расположены во внутренней сети Forefront TMG по умолчанию, выберите вариант Внутренняя, чтобы включить отслеживание подписей, используемых этими клиентами. Это позволит блокировать доступ клиентов к определенным Интернет-службам путем использования отслеживаемых подписей.

  4. Сетевой монитор будет записывать все пакеты из внутренней сети. Результаты можно отфильтровать после записи; либо можно создать фильтр перед началом работы монитора. Чтобы создать фильтр заранее, выберите в меню пункт Запись, а затем Фильтр (либо нажмите клавишу F8). В диалоговом окне Фильтр записи выберите запись INCLUDE *ANY < - > *ANY и нажмите кнопку Изменить.

  5. Щелкните Изменить адрес, затем в разделе Добавить выберите Адрес. В диалоговом окне Выражение адреса щелкните Изменение адресов.

  6. В диалоговом окне База данных адресов нажмите кнопку Добавить, чтобы открыть диалоговое окно Информация адреса.

  7. В диалоговом окне Информация адреса укажите имя клиентского компьютера. Введите IP-адрес клиентского компьютера в поле Адрес, а затем в списке Тип выберите «IP». Далее нажмите кнопку ОК и Закрыть, чтобы закрыть диалоговое окно База данных адресов.

  8. Убедитесь, что в разделе Выражение адреса выбран параметр Включить. В столбце Станция 2 выберите только что созданный клиент. Оставьте значение в поле Направление по умолчанию (оба направления), выберите в качестве пункта назначения в столбце Станция 1 компьютер Forefront TMG, а затем нажмите кнопку ОК.

  9. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Фильтр записи.

  10. В случае большого объема трафика между двумя данными компьютерами может потребоваться увеличить буфер записи. Выберите в меню команду Запись, а затем Параметры буфера. В диалоговом окне Параметры буфера записи увеличьте значение в поле Размер буфера. Нажмите кнопку ОК.

  11. Закройте в клиенте все приложения, кроме того, для которого требуется записать подпись.

  12. В меню Сетевой монитор выберите Запись и нажмите «Начать» (или нажмите клавишу F10).

  13. Запустите приложение на клиентском компьютере. Например, войдите в Windows Live™ Messenger или AOL Instant Messenger.

  14. В меню Сетевой монитор выберите Запись и нажмите Остановить и просмотреть (или нажмите сочетание клавиш F11). Проверьте записанные пакеты. Обычно четвертый пакет (следующий после пакетов подтверждения SYN, SYNACK и ACK) является пакетом HTTP-запроса с клиентского компьютера и содержит искомую информацию, хотя может понадобиться поиск и в последующих пакетах.

  15. Чтобы просмотреть сведения пакета, дважды щелкните его. Найдите уникальную подпись, связанную с приложением, которое требуется заблокировать. Если пакет был тщательно проанализирован сетевым монитором, в области сведений (центральная область) можно просмотреть и выбрать отдельно любые заголовки, а также просмотреть подпись полностью в области Hex (нижняя область). Если пакет не проанализирован, подпись нужно найти в области Hex.