Фильтры проверки прикладного уровня ISA Firewall Stateful (Часть 2)

Опубликовано: 9 Апреля, 2023

Если вы пропустили первую часть этой серии статей, пожалуйста, прочтите Фильтры проверки ISA Firewall Stateful Application Layer (Часть 1).

подпишитесь на рассылку обновлений статей ISAServer.org в режиме реального времени

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

Веб-фильтры брандмауэра ISA используются для передачи HTTP-, HTTPS- и FTP-туннелируемых (веб-прокси) соединений через брандмауэр ISA. В этом разделе мы обсудим следующие веб-фильтры:

  • Фильтр безопасности HTTP
  • Транслятор ссылок ISA Server
  • Фильтр веб-прокси
  • Фильтр SecurID
  • Фильтр проверки подлинности на основе форм OWA

Фильтр безопасности HTTP (фильтр HTTP)

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

Фильтр безопасности HTTP тесно связан с фильтром веб-прокси. Когда фильтр веб-прокси привязан к протоколу HTTP, все соединения, исходящие через брандмауэр ISA с портом назначения TCP 80, подвергаются глубокой проверке на прикладном уровне фильтром безопасности HTTP.

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

В этом разделе мы обсуждаем:

  • Обзор настроек фильтра безопасности HTTP
  • Ведение журнала фильтра безопасности HTTP
  • Отключение фильтра безопасности HTTP для веб-запросов
  • Экспорт и импорт настроек фильтра безопасности HTTP
  • Исследование заголовков HTTP для потенциально опасных приложений
  • Пример политик безопасности HTTP-фильтров
  • Часто блокируемые сигнатуры приложений
  • Опасности SSL-туннелирования

Обзор настроек фильтра безопасности HTTP

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

  • Общий
  • Методы
  • Расширения
  • Заголовки
  • Подписи

Вкладка «Общие»

На вкладке Общие вы можете настроить следующие параметры:

  • Максимальная длина заголовка
  • Длина полезной нагрузки
  • Максимальная длина URL-адреса
  • Проверить нормализацию
  • Блокировать символы старшего бита
  • Блокировать ответы, содержащие исполняемый контент Windows

Изображение 24075
фигура 1

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

Во фрейме Request Payload у вас есть возможность разрешить любую длину полезной нагрузки или установить конкретную максимальную длину полезной нагрузки. Полезная нагрузка — это часть связи HTTP, которая не является частью заголовка HTTP или структуры команды. Например, если вы разрешаете пользователям публиковать контент на вашем веб-сайте (форма заказа или дискуссионный форум), вы можете установить ограничение на длину их сообщений, сняв флажок Разрешить любую длину полезной нагрузки и введя пользовательское значение в поле Текстовое поле Максимальная длина полезной нагрузки (байты). Опять же, вы можете обсудить требования вашего веб-сайта с администратором вашего веб-сайта или веб-программистом, чтобы получить конкретные сведения о требованиях к максимальной длине полезной нагрузки для ваших защищенных веб-сайтов.

Во фрейме защиты URL есть несколько опций. Параметр «Максимальная длина URL-адреса (байты)» позволяет вам установить максимальный URL-адрес, который пользователь может отправить через брандмауэр ISA при выполнении запроса через брандмауэр для веб-сайта. Эксплойты могут отправлять чрезмерно длинные URL-адреса в попытке выполнить переполнение буфера или другую атаку на веб-сервер. Значение по умолчанию — 10240, но вы можете увеличить или уменьшить это значение в зависимости от пользовательских требований вашего сайта. Значение Максимальная длина запроса (в байтах) позволяет установить максимальную длину части запроса URL-адреса. Часть запроса URL-адреса появляется после вопросительного знака (?) в URL-адресе запроса. Значение по умолчанию — 10240, но вы можете сделать его длиннее или короче в зависимости от ваших требований. Имейте в виду, что максимальная длина URL-адреса должна быть больше, чем максимальная длина запроса, поскольку запрос является частью URL-адреса.

Параметр «Проверить нормализацию» также включен во фрейм «Защита URL-адресов». Нормализация — это процесс декодирования так называемых «экранированных» символов. Веб-серверы могут получать запросы, закодированные с использованием экранированных символов. Одним из наиболее распространенных примеров является наличие пробела в URL-адресе, например, в URL-адресе http://msfirewall.org/Dir%20One/default%20file.htm. %20 — это «управляющий» символ, представляющий «пробел». Проблема в том, что плохие парни также могут кодировать символ «%» и выполнять так называемые «двойные кодированные» запросы. Двойное кодирование может использоваться для атаки на веб-серверы. Если выбран параметр «Проверить нормализацию», фильтр безопасности HTTP нормализует или декодирует запрос дважды. Если запрос первого и второго декодирования не совпадает, фильтр безопасности HTTP отбрасывает запрос. Это предотвращает атаки «двойного кодирования». Вам следует включить эту функцию, но имейте в виду, что плохо спроектированные веб-сайты и веб-приложения не всегда обеспечивают безопасность и могут фактически принимать и запрашивать запросы с двойным кодированием. Если это относится к сайтам, к которым вы хотите получить доступ в Интернете, или к сайтам, которые вы публикуете через брандмауэр ISA, вам необходимо отключить эту опцию.

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

Параметр Блокировать ответы, содержащие исполняемый контент Windows, позволяет запретить пользователям загружать файлы, которые являются исполняемыми файлами Windows (например, файлы.exe, но любое расширение файла может использоваться в исполняемом файле Windows). Фильтр безопасности HTTP может определить, является ли файл исполняемым файлом Windows, поскольку ответ будет начинаться с MZ. Это может быть очень полезно, когда вам нужно запретить вашим пользователям загружать исполняемые файлы через брандмауэр ISA.

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

Вкладка «Методы»

Вы можете контролировать, какие методы HTTP используются с помощью правила доступа или правила веб-публикации, используя настройки на вкладке «Методы». У вас есть три варианта:

  • Разрешить все методы
  • Разрешить только указанные методы
  • Заблокировать указанные методы (разрешить все остальные)

Изображение 24076
фигура 2

HTTP-методы — это HTTP-команды, которые хосты могут отправлять на веб-сервер для выполнения определенных действий; например, GET, PUT и POST. Есть и другие, с которыми вы, как администратор сети и брандмауэра, возможно, не знакомы, например, HEAD, SEARCH и CHECKOUT. Существуют и другие проприетарные методы, используемые определенными веб-приложениями, такими как Outlook Web Access. Опция Разрешить все методы позволяет вам разрешить HTTP-методы, используемые в HTTP-коммуникациях через брандмауэр ISA.

Другие методы HTTP, с которыми вы столкнетесь при предоставлении доступа к приложениям Microsoft, включают RPC_IN_DATA и RPC_OUT_DATA, которые используются для безопасной публикации RPC через HTTP (Outlook Anywhere) для клиентов Outlook. Однако помните, что фильтр блокирует только соединения, установленные в фильтре политики HTTP, поэтому будьте осторожны, чтобы не заблокировать методы, которые могут вам понадобиться, даже если вы не совсем уверены, какие именно методы вам могут понадобиться. Мы рекомендуем вам тщательно протестировать настройки фильтра и обсудить с администраторами и разработчиками веб-приложений, какие методы требуются.

Опция Разрешить только указанные методы позволяет вам указать точные методы, которые вы хотите разрешить через брандмауэр ISA. Если вы можете определить, какие методы требуются вашему веб-сайту и веб-приложению, вы можете разрешить только их и заблокировать любой другой метод. Другие методы могут быть использованы для компрометации вашего веб-сайта, поэтому, если они не нужны, заблокируйте их.

Параметр Блокировать указанные методы (разрешить все остальные) позволяет разрешить все методы, кроме тех, которые вы хотите разрешить. Этот вариант дает вам немного больше свободы в том, что даже если вы не знаете всех методов, которые могут потребоваться вашему сайту, вы можете знать некоторые, которые определенно не требуются. Одним из примеров может быть метод POST. Если вы не разрешаете пользователям публиковать контент на вашем веб-сайте, то нет причин разрешать метод POST, и вы можете явно заблокировать его.

Когда вы выбираете параметр «Разрешить только указанные методы» или «Блокировать указанные методы (разрешить все остальные)», вам нужно нажать кнопку «Добавить», чтобы добавить метод, который вы хотите разрешить или заблокировать. Диалоговое окно «Метод» появляется после нажатия кнопки «Добавить».

В диалоговом окне «Добавить» вы вводите метод в текстовое поле «Метод». Вы также можете добавить описание этого метода в текстовое поле «Описание». Это поможет вам вспомнить, что делает этот метод, и поможет следующему человеку, которому, возможно, понадобится управлять вашим брандмауэром ISA и который не знает о внутренностях набора команд протокола HTTP.

Изображение 24077
Рисунок 3

Вкладка «Расширения»

На вкладке «Расширения» доступны следующие параметры:

  • Разрешить все расширения
  • Разрешить только указанные расширения
  • Заблокировать указанные расширения (разрешить все остальные)
  • Блокировать запросы, содержащие неоднозначные расширения

Изображение 24078
Рисунок 4

Вы можете контролировать, какие расширения файлов разрешено запрашивать через брандмауэр ISA. Это чрезвычайно полезно, когда вы хотите запретить пользователям запрашивать определенные типы файлов через брандмауэр ISA. Например, вы можете запретить пользователям доступ к файлам.exe,.com,.zip и любым другим расширениям через брандмауэр ISA.

Параметр Разрешить все расширения позволяет вам настроить правило доступа или правило веб-публикации, чтобы разрешить пользователям доступ к любому типу файлов на основе расширения файла через брандмауэр ISA. Параметр Разрешить только указанные расширения позволяет вам указать точные расширения файлов, к которым пользователи могут получить доступ через брандмауэр ISA. Параметр Блокировать указанные расширения (разрешить все остальные) позволяет заблокировать указанные расширения файлов, которые вы считаете опасными.

Если вы выбрали вариант «Разрешить только указанные расширения» или «Блокировать указанные расширения (разрешить все остальные)», вам нужно нажать кнопку «Добавить » и добавить расширения, которые вы хотите разрешить или заблокировать.

Диалоговое окно «Расширение» появляется после нажатия кнопки «Добавить». Введите имя расширения в текстовое поле Расширение. Например, если вы хотите заблокировать доступ к файлам.exe, введите .exe. Введите описание, если хотите, в текстовое поле Описание (необязательно). Нажмите OK, чтобы сохранить новое расширение.

Изображение 24079
Рисунок 5

Вкладка «Заголовки»

На вкладке Заголовки доступны следующие параметры:

  • Разрешить все заголовки, кроме следующих
  • Заголовок сервера
  • Через заголовок

Изображение 24080
Рисунок 6

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

Примеры распространенных заголовков HTTP включают:

  • Длина содержимого
  • Прагма
  • Пользовательский агент
  • Принять кодировку

Вы можете принимать все заголовки HTTP или блокировать определенные заголовки HTTP. Существуют определенные заголовки HTTP, которые вы всегда можете заблокировать, например заголовок P2P-Agent, который используется многими одноранговыми приложениями. Если вы хотите заблокировать определенный заголовок HTTP, нажмите кнопку «Добавить».

В диалоговом окне «Заголовок» выберите параметр «Заголовки запроса» или «Заголовки ответа» в раскрывающемся списке «Искать в». В текстовом поле заголовка HTTP введите заголовок HTTP, который вы хотите заблокировать. Нажмите ОК.

Изображение 24081
Рисунок 7

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

  • Отправить исходный заголовок
  • Удалить заголовок из ответа
  • Изменить заголовок в ответ

Параметр Отправить исходный заголовок позволяет не изменять заголовок, отправленный веб-сервером. Опция Strip header from response позволяет брандмауэру ISA удалить заголовок сервера, а Modify header в ответе позволяет вам изменить заголовок. Вы должны изменить заголовок, чтобы запутать злоумышленника. Поскольку этот заголовок не требуется для веб-клиентов, вы можете изменить его на что-то вроде Private или CompanyName или что-то еще, что вам нравится.

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

Изображение 24082
Рисунок 8

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

У вас есть два варианта:

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

Параметр «Отправить заголовок по умолчанию» оставляет заголовок Via без изменений. Опция Modify header in request and response позволяет вам изменить имя, включенное в заголовок Via, вставленный вашим брандмауэром ISA. Мы рекомендуем вам изменить это, чтобы скрыть фактическое имя вашего брандмауэра ISA, чтобы злоумышленники не узнали фактическое имя вашего компьютера с брандмауэром ISA.

Введите альтернативный заголовок перехода в текстовое поле «Изменить на».

Изображение 24083
Рисунок 9

Вкладка «Подписи»

Вкладка Signatures позволяет вам контролировать доступ через брандмауэр ISA на основе созданных вами HTTP-подписей. Эти подписи основаны на строках, содержащихся в следующих компонентах связи HTTP:

  • URL-адрес запроса
  • Заголовки запроса
  • Тело запроса
  • Заголовки ответа
  • Текст ответа

Вы получаете доступ к диалоговому окну Подпись, нажав кнопку Добавить.

Изображение 24084
Рисунок 10

В диалоговом окне Подпись введите имя подписи в текстовом поле Имя и описание подписи в текстовом поле Описание. Это особенно полезно, так как вы знаете цель и обоснование этой подписи.

В раскрывающемся списке Искать в выберите, где вы хотите, чтобы брандмауэр ISA искал указанную строку. У вас есть следующие варианты:

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

Запросить заголовки Когда вы выбираете эту опцию, вы вводите конкретный заголовок HTTP, который брандмауэр ISA должен проверять, в текстовом поле заголовка HTTP, а затем вводите строку в заголовке, который брандмауэр ISA должен блокировать, в текстовом поле Подпись. Например, если вы хотите заблокировать приложения eDonkey P2P, вы можете выбрать этот параметр, а затем User-Agent в текстовом поле заголовка HTTP. В текстовом поле Подпись введите ed2k. Обратите внимание, что этот параметр дает вам более детальный контроль, чем если бы вы просто блокировали заголовки на вкладке «Заголовки». Если вы заблокируете определенный заголовок на вкладке «Заголовки», вы в конечном итоге заблокируете все HTTP-соединения, использующие этот конкретный заголовок. Создав подпись, включающую определенный заголовок, вы можете разрешить использование этого заголовка HTTP для всех сообщений, которые не включают значение заголовка, введенное вами для подписи.

Тело запроса Вы можете заблокировать HTTP-связь на основе тела веб-запроса, не содержащегося в командах и заголовках HTTP. Хотя это очень мощная функция, она может потреблять много ресурсов компьютера с брандмауэром ISA. По этой причине вам нужно настроить диапазон байтов, который вы хотите, чтобы брандмауэр ISA проверял, в текстовых полях Byte range From и To. У нас нет явных рекомендаций по конкретным записям, которые вы, возможно, захотите включить в этот раздел, но когда они появятся, мы предоставим обновления на www.isaserver.org.

Заголовки ответов При выборе этого параметра вы вводите конкретный заголовок HTTP, который хотите заблокировать на основе ответа HTTP, возвращаемого веб-сервером. Вы вводите конкретный заголовок HTTP в текстовое поле заголовка HTTP и значение заголовка HTTP в текстовое поле Подпись.

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

Изображение 24085
Рисунок 11

Другая подпись, которую вы, возможно, захотите создать, блокирует строку <iframe src=”?”/> в теле ответа. Эта строка потенциально может привязать процессор на машине-жертве и привести к зависанию операционной системы.

Ведение журнала фильтра безопасности HTTP

Как узнать, работают ли ваши фильтры безопасности? Один из способов определить эффективность записей, сделанных вами в фильтре безопасности HTTP, — использовать встроенную программу просмотра журнала брандмауэра ISA. Выполните следующие шаги, чтобы настроить встроенный просмотрщик журналов брандмауэра ISA для просмотра действий фильтра безопасности HTTP:

  1. В консоли управления Microsoft Internet Security and Acceleration Server 2006 разверните имя сервера и щелкните узел Мониторинг на левой панели консоли.
  2. В узле Мониторинг щелкните вкладку Ведение журнала. На вкладке «Задачи» области задач щелкните ссылку «Начать запрос».
  3. Щелкните правой кнопкой мыши один из заголовков столбцов и выберите команду «Добавить/удалить столбцы».
  4. В диалоговом окне «Добавить/удалить столбцы» щелкните запись «Информация о фильтре» в списке «Доступные столбцы» и нажмите «Добавить». Запись Информация о фильтре теперь появляется в списке отображаемых столбцов. Нажмите ОК.
  5. Отправьте запрос от клиента за брандмауэром ISA, который будет заблокирован вашими настройками фильтра безопасности HTTP. показывает пример подключения, которое было заблокировано, поскольку URL-адрес содержал строку, запрещенную фильтром безопасности HTTP.

Изображение 24086
Рисунок 12

Резюме

Брандмауэр ISA исторически считался моделью брандмауэра проверки прикладного уровня. В то время как другие брандмауэры подхватили эстафету и значительно улучшили свои возможности проверки на уровне приложений, брандмауэр ISA остается лидером в проверке на уровне приложений не только из-за встроенных функций проверки на уровне приложений, но и из-за его способности поддерживать множество Сторонний уровень приложений фильтрует через свой набор расширяемых функций. Фильтр безопасности HTTP — это один из встроенных фильтров проверки прикладного уровня, который позволяет брандмауэру ISA блокировать нежелательный трафик протокола HTTP, что позволяет вам блокировать как известные эксплойты, так и в определенной степени эксплойты нулевого дня.

подпишитесь на рассылку обновлений статей ISAServer.org в режиме реального времени