В данной статье я расскажу об HTTP-фильтре сервера ISA
2006. Я покажу, как использовать это фильтр для защиты сети от
некоторых типов атак при публикации Web-серверов. Также вы
увидите, как можно предотвратить использование пользователями
протокола Universal Firewall Bypass (Универсальный обход
брандмауэра) (HTTP) для обхода брандмауэра сетевым трафиком
таких приложений, как Microsoft Live Messenger, Yahoo
Messenger и подобных, у которых есть функция использования
HTTP вместо их встроенных протоколов.
Начнем с основ Web-фильтра сервера ISA 2006.
Что такое Web-фильтр
Web-фильтр сервера ISA 2006 – это набор динамических
библиотек (Dynamic Link Libraries - DLL), основанных на модели
IIS ISAPI (Internet Server Application Programming Interface –
Программный интерфейс приложений Интернет-сервера).
Web-фильтр сервера ISA 2006 будет загружаться из фильтра
Web-прокси. Если Web-фильтр загружен, вся информация будет
передаваться в фильтр Web-прокси. Фильтр Web-прокси отвечает
за определение типов событий, которые нужно отслеживать.
Фильтр web-прокси знает о каждом наступлении такого
события.
Ниже на рисунке показана работа HTTP-фильтра в сервере ISA
2006.
Рисунок 1: HTTP-фильтр сервера ISA 2006
Работа web-фильтра
Web-фильтр сервера ISA 2006 отвечает за следующее:
- Сканирование и изменение HTTP-запросов
- Анализ сетевого трафика
- Сканирование и изменение HTTP-ответов
- Блокирование определенных HTTP-ответов
- Шифрование и сжатие данных
и так далее.
Важное замечание: HTTP-фильтр сервера ISA 2006
– это особое исключение в правилах для установки Maximum
Header length (Максимальная длина заголовка). Максимальная
длина заголовка такая же, как и для всех правил сервера с
определениями протокола HTTP.
Внимание: HTTP-фильтр сервера ISA 2006 также
может фильтровать и трафик HTTPS, но только в вариантах
обратной публикации web-серверов с использованием
HTTPS-сопряжения. Если вы хотите использовать проверку
исходящего трафика HTTPS с помощью HTTP-фильтра, следует
использовать программное обеспечение сторонних
производителей.
Настройка HTTP-фильтра
Для настройки HTTP-фильтра щелкните правой кнопкой по
правилу, содержащему определение протокола HTTP, и выберите из
контекстного меню пункт Configure HTTP (Настроить HTTP).
Рисунок 2: Основные настройки HTTP-фильтра
сервера ISA 2006
Request Header (Заголовок запроса):
Maximum Headers length (bytes) (Максимальная длина
заголовков (байт)):
Максимальная длина заголовков – это максимальное число байт
в заголовке URL и HTTP для HTTP-запроса до того, как
ISA-сервер заблокирует запрос.
Request Payload (Загрузка заголовков):
Maximum payload length (bytes) (Длина максимальной загрузки
(байт)):
С помощью данного параметра можно ограничить максимальный
размер (в байтах) информации, которую пользователь может
отослать с помощью метода HTTP POST при публикации
Web-серверов.
URL-Protection (Защита URL):
Maximum URL Length (Bytes) (Максимальная длина URL (байт)):
Максимальная длина разрешенного URL
Maximum Query length (Bytes) (Максимальная длина запроса
(байт)): Максимальная длина URL в HTTP-запросе
Verify normalization (Проверка нормализации)
Данный параметр можно выбрать для указания того, что запрос
с адресом URL, содержащим потерянные символы после
нормализации, будет блокирован. Нормализация – это процесс
декодирования кодированных запросов URL. После декодирования
URL будет снова нормализовано для гарантии того, что никакой
процесс не использует ни один из символов для кодирования URL.
Если HTTP-фильтр находит разницу в URL после второй
нормализации, запрос отклоняется.
Block High bit character (Блокирование символов старшего
байта)
При выборе данного параметра URL, содержащие двухбайтовую
комбинацию символов (Double Byte Characters - DBCS) или
символы кодировки Latin1, будут блокированы. Включенный
параметр блокирует языки, требующие для отображения всех
специальных символов более 8 бит.
Исполняемые файлы
Block responses containing Windows executable content
(Блокировать ответы, содержащие исполняемые файлы Windows).
Данный параметр блокирует скачивание и выполнение все
исполняемых файлов, например EXE-файлов.
Далее рассмотрим настройку разрешенных или заблокированных
HTTP-методов.
Рисунок 3: HTTP-методы
В данном примере мы блокируем все команды HTTP POST, так
что никто не сможет загрузить содержимое на внешние сайты.
Рисунок 4
Блокирование исполняемых файлов
С помощью данного параметра можно заблокировать или
разрешить некоторые расширения файлов в определенном правиле
сервера.
Рисунок 5: Использование сервера ISA 2006 для
блокировки некоторых расширений файлов
Блокирование содержимого с сомнительным расширением
Данный параметр дает возможность блокирования всех
расширений, которые сервер не может определить.
В нашем примере мы блокируем доступ к файлам с расширением
.EXE.
Рисунок 6: Блокирование файлов с расширением
.EXE
Управление заголовком HTTP
Когда web-клиент посылает запрос на web-сервер или
web-сервер отвечает на запросы, первой частью ответа является
запрос или ответ HTTP. После запроса или ответа HTTP клиент
или сервер отсылает заголовок HTTP. Поле заголовка запроса
позволяет клиенту отсылать дополнительную информацию серверу.
Заголовок HTTP содержит информацию о браузере, операционной
системе, деталях авторизации и т.п. Заголовок клиента
использует атрибут User-Agent, который определяет, какое
приложение отвечает за запрос.
С помощью HTTP-фильтра можно блокировать определенные
заголовки HTTP.
Рисунок 7: Вкладка Header (Заголовок) свойств
HTTP-фильтра
Значения поля Server Header (Заголовок сервера) дают
администраторам возможность контролировать удаление
HTTP-заголовка из запроса или изменение заголовка HTTP в
запросе, а также другие возможности.
В следующем примере мы используем описанную возможность для
блокирования сети Kazaa, информация о которой располагается в
заголовке.
Рисунок 8: Блокирование Kazaa
Подписи HTTP-фильтра
Подпись HTTP может находиться в теле и заголовке HTTP.
Подписи HTTP можно использовать для запрета выполнения
определенных приложений. Для поиска необходимой подписи HTTP
вы должны знать подпись, использующуюся приложением. В
Интернете можно найти документы, которые дадут вам информацию
об определенных подписях HTTP, но можно воспользоваться и
программой-сканером сети. Ниже в статье я опишу использование
сканера сети для этой цели.
Важно: Фильтрация подписей HTTP в сервере ISA
2006 работает только в том случае, если для запросов и ответов
используется кодировка UTF-8.
Рисунок 9: Блокирование подписей HTTP
Ниже показано, как блокировать доступ для протокола Windows
Live Messenger.
Рисунок 10: Блокирование Windows Live
Messenger
Важно: Сервер ISA 2006 проверяет только первые
100 байт тела запроса или ответа. Есть возможность увеличения
этого количества, но это выльется в уменьшение
производительности сервера.
Сообщение об ошибке HTTP при блокировании HTTP-фильтром
содержимого
Рисунок 11: Сообщение HTTP-фильтра о доступе
Как найти определенные заголовки HTTP
Для определения неизвестных вам подписей HTTP можно
воспользоваться сканером сети, например Windows Netmon
3.0.
Ниже на рисунке показан пример результата сканирования сети
программой Microsoft Netmon 2.0, но вы можете использовать и
другие средства, например Wireshark (ранее называлось
Ethereal).
Рисунок 12: Отслеживание HTTP в Netmon
В данном примере показан тип запроса (GET), заголовок
запроса HTTP (HTTP/1.1), атрибут User-Agent (Mozilla/4.0) и
подпись (MSIE 6.0).
HTTPFILTERCONFIG.VBS
Для импорта и экспорта настроек HTTP-фильтра можно
воспользоваться средством HTTPFILTERCONFIG.VBS из набора
средств разработки сервера ISA 2006, которое находится в папке
C:\PROGRAMME\MICROSOFT ISA SERVER 2006
SDK\SDK\SAMPLES\ADMIN.
Рисунок 13: Средство HTTPFILTERCONFIG.VBS
Заключение
В данной статье я рассказал, как работает HTTP-фильтр
сервера ISA 2006. HTTP-фильтр – это прекрасное средство для
блокирования опасного содержимого для защиты от вредных
программ, троянов или червей. Также фильтр можно использовать
и для блокирования определенных подписей HTTP. Блокирование
подписей дает администратору возможность запретить работу
приложений наподобие Windows Live Messenger, которые могут
использовать HTTP при блокировании их обычного протокола
ограничениями брандмауэра.