Операция МПП
Платформа фильтрации Windows (МПП) выполняет свои задачи, интегрируя следующие основные сущности: слои, фильтры, шимс и выноски.
Слои
Слой — это контейнер, управляемый подсистемой фильтров, функция которой состоит в организации фильтров в наборы. Слой не является модулем в сетевом стеке. Каждый слой имеет схему, которая определяет тип фильтров, которые можно добавить в него. Дополнительные сведения см. в условиях фильтрации, доступных на каждом уровне фильтрации.
Слои могут содержать вложенные слои для управления конфликтующими требованиями фильтра, такими как "Блокировать TCP-порты выше 1024" и "Открыть порт 1080". Правила управления конфликтами фильтрации определяются арбитража фильтров.
МПП содержит набор встроенных подуровневых. Каждый слой наследует все встроенные вложенные слои. Пользователи также могут добавлять собственные вложенные слои.
Список уровней обработчика фильтров представлен в разделе справочника идентификаторов слоев фильтрации.
Фильтры
Фильтр — это правило, соответствующее входящим или исходящим пакетам. Правило сообщает обработчику фильтрации, что делать с пакетом, включая вызов модуля выноски для глубокой проверки пакетов или потоков. Например, фильтр может указать "Блокировать трафик с TCP-портом больше 1024" или "Вызов идентификаторов для всего трафика, который не защищен".
Фильтр времени загрузки — это фильтр, который применяется во время загрузки сразу после запуска драйвера стека TCP/IP (tcpip.sys). Фильтр времени загрузки отключен при запуске BFE. Фильтр помечается как время загрузки, задав флаг FWPM_FILTER_FLAG_BOOTTIME при вызове FwpmFilterAdd0.
Фильтр во время выполнения — это фильтр, который применяется после запуска BFE. Фильтр времени выполнения может быть статическим, динамическим или постоянным в зависимости от способа его создания. Дополнительные сведения о различных типах фильтров времени выполнения и их времени существования см. в управления объектами.
Оболочек совместимости
— это компонент режима ядра, который принимает решения по фильтрации путем классификации по слоям обработчика фильтров. Каждый схим классифицируется по одному или нескольким слоям. Например, схема модуля транспортного слоя классифицируется по уровню входящего транспорта, уровню исходящего транспорта и уровню ALE Connect и Receive-Accept слоям для первого пакета потока.
Как пакеты, потоки и события проходят по сетевому стеку, шима анализирует их для извлечения классификируемых условий и значений, а затем вызовите подсистему фильтров, чтобы оценить их по фильтрам в заданном слое. Обработчик фильтров может вызывать один или несколько выносок в рамках классификации. Шимы выполняют фактическое удаление пакетов, потоков и событий на основе результата классификации, выполняемой обработчиком фильтров.
Выноски
выноски — это набор функций, предоставляемых драйвером и используемый для специализированной фильтрации. Они используются для анализа и обработки пакетов, таких как сканирование вирусов, родительский контроль проверяет неуместное содержимое, анализ данных пакетов для средств мониторинга. Некоторые выноски, такие как драйвер преобразования сетевых адресов (NAT), встроены в операционную систему. Другие, такие как выноска по протоколу HTTP Родительский контроль или выноска системы обнаружения вторжений (IDS), могут предоставляться независимыми поставщиками программного обеспечения (ISV). Функции выноски вызываются обработчиком фильтров, когда соответствующий фильтр выноски соответствует заданному уровню.
Выноски можно зарегистрировать на любом из уровней МПП в режиме ядра. Выноски могут возвращать действие ("Блокировать", "Разрешить" и, когда выполняется проверка потока, "Отложить", "Требуется больше данных", "Удалить подключение") и может изменять и защищать входящий и исходящий сетевой трафик.
После регистрации выноски в обработчике фильтров он может получать сетевой трафик для обработки. Трафик может быть пакетами, потоками или событиями в зависимости от уровня. Агент приложения или брандмауэра приводит к передаче трафика в выноску путем добавления фильтра, действие которого — "Выноска" и идентификатор выноски которого является идентификатором выноски. Выноски могут указать обработчику фильтров вернуть "Блокировать" или "Разрешить" в схим. Выноски также могут возвращать "Продолжить", чтобы разрешить другим фильтрам обрабатывать пакет.
Несколько выносок могут предоставляться одним драйвером выноски.
До его использования необходимо добавить выноску (с FwpmCalloutAdd0) и зарегистрирован (с FwpsCalloutRegister). Вызов FwpmCalloutAdd0 требуется перед созданием фильтров, ссылающихся на выноску. Вызов FwpsCalloutRegister требуется, прежде чем МПП может вызвать выноску при сопоставлении фильтров выноски. По умолчанию фильтры, которые ссылаются на добавленные выноски, но еще не зарегистрированы в обработчике фильтров, обрабатываются как фильтры "Блокировать". Порядок вызова FwpmCalloutAdd0 и FwpsCalloutRegister не имеет значения. Постоянный выноску необходимо добавить только один раз и должен быть зарегистрирован каждый раз, когда драйвер, реализующий выноску (например, после перезагрузки).
Классификация
Классификация — это процесс применения фильтров к сетевому трафику (пакет, поток или событие), чтобы определить результат "Разрешить" или "Блокировать" для этого трафика. Для одного пакета, потока или события для каждого слоя существует один вызов классификации.
Во время классификации свойства (например, исходный адрес) пакета, потока или события сравниваются с условиями фильтра, заданными на фильтрах на уровне, где вызывается классификация. При обнаружении совпадений алгоритм фильтрации используется для определения результата процесса классификации.
Запрос классификации активируется с помощью схима.
Действия классификации могут быть следующими:
- Разрешать
- Блок
- Выноски
- Разрешать
- Блок
- Продолжать
- Уступать
- Требуется больше данных
- Удаление подключения
Операция МПП
После запуска драйвера стека TCP/IP (tcpip.sys) подсистема фильтрации в режиме ядра применяет политику безопасности системы с помощью фильтров времени загрузки.
После запуска подсистемы базовой фильтрации (BFE) в пользовательском режиме постоянные фильтры добавляются на платформу, фильтры во время загрузки отключены, а уведомления отправляются этим драйверам выноски, которые подписаны с помощью FwpmBfeStateSubscribeChanges0. Уведомления отправляются сразу после завершения инициализации BFE. Платформа теперь готова к регистрации выносок и добавлению объектов во время выполнения.
Переход от времени загрузки к постоянным фильтрам может занять несколько секунд или даже дольше на медленном компьютере. Это атомарная, поэтому если поставщик имеет как время загрузки, так и постоянный фильтр, никогда не будет окна, когда ни один из этих действий не действует.
После запуска BFE фильтры во время выполнения можно добавлять агентами брандмауэра или пользовательскими решениями брандмауэра. BFE обрабатывает эти фильтры и отправляет их на соответствующий уровень обработчика фильтров для принудительного применения. BFE также принимает параметры проверки подлинности и отправляет эти параметры в модули ключей IPsec (IKE/AuthIP). Дополнительные сведения см. в конфигурации IPsec.
В любое время фильтры и параметры проверки подлинности можно добавлять, удалять или изменять в системе через интерфейс RPC, предоставляемый BFE. Вложенные слои и модули выноски также могут быть добавлены или удалены.
Поток данных:
- Пакет входит в сетевой стек.
- Сетевой стек находит и вызывает схим.
- Схим вызывает процесс классификации на определенном слое.
- Во время классификации фильтры сопоставляются, а результативное действие выполняется. (См. арбитраж фильтра.)
- Если во время процесса классификации сопоставляются какие-либо фильтры выносок, вызываются соответствующие выноски.
- Схим действует на окончательное решение фильтрации (например, удалить пакет).
Исходящий поток данных следует аналогичному шаблону.
В следующих разделах подробно описывается деятельность МПП.
Связанные разделы