Платформа фильтрации windows что это

Обновлено: 07.07.2024

Начиная с Server 2008 и Vista в винду был встроен механизм WFP,
представляющий собой набор API и системных сервисов. С помощью него стало можно
запрещать и разрешать соединения, управлять отдельными пакетами. Эти
нововведения были предназначены для упрощения жизни разработчиков различных
защит. Внесенные в сетевую архитектуру изменения затронули как kernel-mode, так
и user-mode части системы. В первом случае необходимые функции экспортируются
fwpkclnt.sys, во втором — fwpuclnt.dll (буквы "k" и "u" в названиях библиотек
означают kernel и user соответственно). В этой статье мы расскажем о применении
WFP для перехвата и фильтрации трафика, а после ознакомления с основными
определениями и возможностями WFP мы напишем свой простой фильтр.

Основные понятия

Перед началом кодинга нам совершенно необходимо ознакомиться с терминологией
Microsoft — и для понимания статьи будет полезно, и дополнительную литературу
читать будет проще :). Итак, поехали.

Классификация — процесс определения того, что нужно делать с пакетом.
Из возможных действий: разрешить, блокировать или вызвать callout.

Callouts — это набор функций в драйвере, которые проводят инспекцию
пакетов. Они имеют специальную функцию, выполняющую классификацию пакетов. Эта
функция может принять следующее решение:

  • разрешить (FWP_ACTION_PERMIT);
  • блокировать (FWP_ACTION_BLOCK);
  • продолжить обработку;
  • запросить больше данных;
  • прервать соединение.

Фильтры (Filters) — правила, указывающие, в каких случаях вызывается
тот или иной callout. Один драйвер может иметь несколько callout’ов, а
разработкой драйвера с callout’ом мы и займемся в этой статье. Кстати, колауты
есть и встроенные, например, NAT-callout.

Layer — это признак, по которому объединяются различные фильтры (или,
как говорят в MSDN, "контейнер").

По правде говоря, документация от Microsoft, выглядит достаточно мутно, пока
не заглянешь в примеры в WDK. Поэтому, если вдруг надумаешь разрабатывать что-то
серьезное, нужно непременно с ними ознакомиться. Ну что ж, теперь плавно
перейдем к практике. Для успешной компиляции и тестов тебе потребуется WDK (Windows
Driver Kit), VmWare, виртуальная машина с установленной Вистой и отладчик WinDbg.
Что касается WDK, то у меня лично установлена версия 7600.16385.0 — там есть все
необходимые либы (поскольку мы будем разрабатывать драйвер, нам нужны только
fwpkclnt.lib и ntoskrnl.lib) и примеры использования WFP. Ссылки на весь
инструментарий уже неоднократно приводились, поэтому повторяться не будем.

Coding

Для инициализации callout’а я написал функцию BlInitialize. Общий алгоритм
создания callout и добавления фильтра таков:

  1. FWPMENGINEOPEN0 осуществляет открытие сеанса;
  2. FWPMTRANSACTIONBEGIN0 — начало операции с WFP;
  3. FWPSCALLOUTREGISTER0 — создание нового callout;
  4. FWPMCALLOUTADD0 — добавление объекта callout’а в систему;
  5. FWPMFILTERADD0 — добавление нового фильтра(ов);
  6. FWPMTRANSACTIONCOMMIT0 — сохранение изменений (добавленных
    фильтров).

Обрати внимание, что функции оканчиваются на 0. В Windows 7 некоторые из этих
функций были изменены, например, появилась FwpsCalloutRegister1 (при
сохраненной FwpsCalloutRegister0). Отличаются они аргументами и, как следствие,
прототипами классифицирующих функций, но для нас это сейчас неважно — 0-функции
универсальны.

FwpmEngineOpen0 и FwpmTransactionBegin0 не особо нам интересны — это
подготовительный этап. Самое интересное начинается с функции
FwpsCalloutRegister0:

Прототип FwpsCalloutRegister0

NTSTATUS NTAPI FwpsCalloutRegister0
(
__inout void *deviceObject,
__in const FWPS_CALLOUT0 *callout,
__out_opt UINT32 *calloutId
);

Я уже говорил, что callout — это набор функций, теперь пришло время
рассказать об этом подробнее. Структура FWPS_CALLOUT0 содержит указатели на три
функции — классифицирующую (classifyFn) и две уведомляющие (о
добавлении/удалении фильтра (notifyFn) и закрытии обрабатываемого потока (flowDeleteFn)).
Первые две функции являются обязательными, последняя нужна только в случае, если
ты хочешь мониторить сами пакеты, а не только соединения. Также в структуре
содержится уникальный идентификатор, GUID колаута (calloutKey).

Код регистрации callout

FWPS_CALLOUT sCallout = ;
sCallout.calloutKey = *calloutKey;
sCallout.classifyFn = BlClassify;
// классифицирующая функция
sCallout.notifyFn = (FWPS_CALLOUT_NOTIFY_FN0)BlNotify;
// функция, уведомляющая о добавлении/удалении фильтра
// создаем новый колаут
status = FwpsCalloutRegister(deviceObject, &sCallout, calloutId);

Далее нужно добавить объект-callout в систему и присоединить его к
определенному уровню (layer) с помощью функции FwpmCalloutAdd0:

DWORD WINAPI FwpmCalloutAdd0(
__in HANDLE engineHandle,
__in const FWPM_CALLOUT0 *callout,
__in_opt PSECURITY_DESCRIPTOR sd,
__out_opt UINT32 *id
);
typedef struct FWPM_CALLOUT0_ GUID calloutKey;
FWPM_DISPLAY_DATA0 displayData; // описание callout
UINT32 flags;
GUID *providerKey;
FWP_BYTE_BLOB providerData;
GUID applicableLayer;
UINT32 calloutId;
> FWPM_CALLOUT0;

В структуре FWPM_CALLOUT0 нам интересно поле applicableLayer — уникальный
идентификатор уровня, на который добавляется callout. В нашем случае это
FWPM_LAYER_ALE_AUTH_CONNECT_V4. "v4" в названии идентификатора означает версию
протокола Ipv4, есть также FWPM_LAYER_ALE_AUTH_CONNECT_V6 для Ipv6. Учитывая
малую распространенность Ipv6 на настоящий момент, работать мы будем только с
Ipv4. CONNECT в названии означает, что мы контролируем только установку
соединения, о входящих и исходящих на этот адрес пакетах речи не идет! Вообще
уровней, помимо использованного нами, много — они объявлены в заголовочном файле
fwpmk.h из WDK.

Добавление объекта-callout в систему

// название callout
displayData.name = L"Blocker Callout";
displayData.description = L"Blocker Callout";
mCallout.calloutKey = *calloutKey;
mCallout.displayData = displayData;
// описание callout
//FWPM_LAYER_ALE_AUTH_CONNECT_V4
mCallout.applicableLayer = *layerKey;
status = FwpmCalloutAdd(gEngineHandle, &mCallout, NULL, NULL);

Итак, после того, как callout успешно добавлен в систему, нужно создать
фильтр, то есть указать, в каких случаях будет вызываться наш callout, а именно
— его классифицирующая функция. Новый фильтр создается функцией FwpmFilterAdd0,
которой в качестве аргумента передается структура FWPM_FILTER0.

В FWPM_FILTER0 есть одна или несколько структур FWPM_FILTER_CONDITION0 (их
число определяется полем numFilterConditions). Поле layerKey заполняется GUID’ом
уровня (layer), к которому мы хотим присоединиться. В данном случае указываем
FWPM_LAYER_ALE_AUTH_CONNECT_V4.

Теперь подробнее рассмотрим заполнение FWPM_FILTER_CONDITION0. Во-первых, в
поле fieldKey нужно явно указать, что мы хотим контролировать — порт, адрес,
приложение или что-то еще. В данном случае WPM_CONDITION_IP_REMOTE_ADDRESS
указывает системе, что нас интересует IP-адрес. Значение fieldKey определяет,
значения какого типа будут в структуре FWP_CONDITION_VALUE, входящей в
FWPM_FILTER_CONDITION0. В данном случае в ней содержится ipv4-адрес. Идем
дальше. Поле matchType определяет, каким образом будет производиться сравнение
значения в FWP_CONDITION_VALUE с тем, что пришло по сети. Тут вариантов много:
можно указать FWP_MATCH_EQUAL, что будет означать полное соответствие условию, а
можно — FWP_MATCH_NOT_EQUAL, то есть, фактически, мы можем добавить таким
образом исключение фильтрации (адрес, соединение с которым не отслеживается).
Еще есть варианты FWP_MATCH_GREATER, FWP_MATCH_LESS и другие (см. энум
FWP_MATCH_TYPE). В данном случае у нас стоит FWP_MATCH_EQUAL.

Я не стал сильно заморачиваться и просто написал условие на блокирование
одного выбранного IP-адреса. В случае, когда какое-то приложение попытается
установить соединение с выбранным адресом, будет вызвана классифицирующая
функция нашего callout’а. Код, обобщающий сказанное, ты можешь посмотреть на
врезке "Добавление фильтра в систему".

Добавление фильтра в систему

filter.flags = FWPM_FILTER_FLAG_NONE;
filter.layerKey = *layerKey;
filter.displayData.name = L"Blocker Callout";
filter.displayData.description = L"Blocker Callout";
filter.action.type = FWP_ACTION_CALLOUT_UNKNOWN;
filter.action.calloutKey = *calloutKey;
filter.filterCondition = filterConditions;
// одно условие фильтрации
filter.numFilterConditions = 1;
//filter.subLayerKey = FWPM_SUBLAYER_UNIVERSAL;
filter.weight.type = FWP_EMPTY; // auto-weight.
// добавляем фильтр на удаленный адрес
filterConditions[0].fieldKey = FWPM_CONDITION_IP_REMOTE_ADDRESS;
filterConditions[0].matchType = FWP_MATCH_EQUAL;
filterConditions[0].conditionValue.type = FWP_UINT32;
filterConditions[0].conditionValue.uint32 = ntohl(BLOCKED_IP_ADDRESS);
// добавляем фильтр
status = FwpmFilterAdd(gEngineHandle, &filter, NULL, NULL);

Вообще, конечно, фильтрующих условий может быть много. Например, можно
указать блокирование соединений с определенным удаленным или локальным портом (FWPM_CONDITION_IP_REMOTE_PORT
и FWPM_CONDITION_IP_LOCAL_PORT соответственно). Можно вылавливать все пакеты
определенного протокола или определенного приложения. И это еще не все! Можно,
например, заблокировать трафик определенного пользователя. В общем, есть где
разгуляться.

Впрочем, вернемся к фильтру. Классифицирующая функция в нашем случае просто
блокирует соединение с указанным адресом (BLOCKED_IP_ADDRESS), возвращая
FWP_ACTION_BLOCK:

Код нашей classify-функции

void BlClassify(
const FWPS_INCOMING_VALUES* inFixedValues,
const FWPS_INCOMING_METADATA_VALUES* inMetaValues,
VOID* packet,IN const FWPS_FILTER* filter,
UINT64 flowContext,FWPS_CLASSIFY_OUT* classifyOut)
// заполняем структуру FWPS_CLASSIFY_OUT0
if(classifyOut) < // блокируем пакет
classifyOut->actionType =
FWP_ACTION_BLOCK;
// при блокировании пакета нужно
сбрасывать FWPS_RIGHT_ACTION_WRITE
classifyOut->rights&=

На практике функция классификации также может установить FWP_ACTION_PERMIT,
FWP_ACTION_CONTINUE и др.

И в заключение при выгрузке драйвера нужно удалить все установленные
callout’ы (угадай, что будет, если система попытается вызвать callout
выгруженного драйвера? Правильно, BSOD). Для этого существует функция
FwpsCalloutUnregisterById. В качестве параметра ей передается 32-битный
идентификатор callout’а, возвращенный функцией FwpsCalloutRegister.

Завершение работы callout’а

NTSTATUS BlUninitialize() NTSTATUS ns;
if(gEngineHandle) FwpmEngineClose(gEngineHandle);

>
if(gBlCalloutIdV4) ns =FwpsCalloutUnregisterById(gBlCalloutIdV4);
>
return ns;
>

Как видишь, программирование WFP-фильтра — не такая сложная задача, поскольку
MS предоставили нам весьма удобный API. Кстати, в нашем случае мы устанавливали
фильтр в драйвере, но это можно делать и из юзермода! Например, семпл из wdk
msnmntr (монитор трафика MSN Messenger-а) так и поступает — это позволяет не
перегружать kernel-mode часть фильтра.

Свой GUID

Для регистрации callout ему нужен уникальный идентификатор. Для того, чтобы
получить свой GUID (Globally Unique Identifier), используй guidgen.exe, входящий
в Visual Studio. Лежит тулза в (VS_Path)\Common7\Tools. Вероятность коллизии
очень мала, поскольку длина GUID составляет 128 бит, и всего доступно 2^128
идентификаторов.

Отладка фильтра

Для отладки дров удобно использовать связку Windbg+VmWare. Для этого нужно
настроить как гостевую систему (в виде которой выступает Vista), так и отладчик
WinDbg. Если у WinXP для удаленной отладки нужно было редактировать boot.ini, то
для Vista+ есть консольная утилита bcdedit. Как обычно, нужно включить отладку:

BCDedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200 BCDedit /debug
ON (или BCDedit /set debug ON)

Далее нужно настроить последовательный порт удаленной системы (см.
соответствующую иллюстрацию).


Теперь все готово! Запускаем батник с нижеприведенным текстом:

start windbg -b -k com:pipe,port=\\.\pipe\com_1,resets=0

и лицезреем отладочный вывод в окне windbg (см. картинку).


Заключение

Как видишь, область применения WFP довольно широка. Тебе решать, как
применить эти знания — во зло или во благо 🙂

Windows Платформа фильтрации (WFP) — это набор API-интерфейсов и системных служб, которые предоставляют платформу для создания приложений фильтрации по сети. API WFP позволяет разработчикам писать код, взаимодействующий с пакетной обработкой, которая выполняется на нескольких уровнях в сетевом стеке операционной системы. Сетевые данные можно фильтровать, а также изменять до достижения места назначения.

Предоставляя более простую платформу разработки, WFP предназначена для замены предыдущих технологий фильтрации пакетов, таких как фильтры TDI (TDI), фильтров интерфейсов сетевого драйвера (NDIS) и Winsock Layer Service Provider (LSP). начиная с Windows Server 2008 и Windows Vista, обработчик брандмауэра и драйверы обработчика фильтров недоступны. приложения, использующие эти драйверы, должны использовать WFP.

С помощью API платформы WFP разработчики могут реализовывать брандмауэры, системы обнаружения вторжений, антивирусные программы, средства мониторинга сети и родительские элементы управления. WFP интегрируется с и обеспечивает поддержку функций брандмауэра, таких как проверка подлинности связи и динамическая настройка брандмауэра, на основе использования приложениями API сокетов (политика на основе приложений). WFP также предоставляет инфраструктуру для управления политиками IPsec, уведомлений об изменениях, диагностики сети и фильтрации с отслеживанием состояния.

Windows Платформа фильтрации — это платформа разработки, а не брандмауэр. приложение брандмауэра, встроенное в Windows Vista, Windows Server 2008 и более поздние операционные системы Windows брандмауэр с повышенной безопасностью (WFAS), реализовано с помощью WFP. Поэтому приложения, разработанные с помощью API WFP или API WFAS , используют общую логику арбитража фильтрации, встроенную в WFP.

API WFP состоит из API пользовательского режима и API режима ядра. В этом разделе приводится обзор всей платформы WFP и подробно описывается только часть интерфейса API WFP в пользовательском режиме. подробное описание API WFP в режиме ядра см. в интерактивной справке по Windows Driver Kit .

Аудитория разработчиков

API платформы фильтрации Windows разработан для программистов, использующих программное обеспечение для разработки на C/C++. Программисты должны быть знакомы с основными понятиями и структурой работы с сетью, использующими компоненты пользовательского режима и режима ядра.

Требования к среде выполнения

платформа фильтрации Windows поддерживается на клиентах под управлением Windows Vista и более поздних версий, а также на серверах под управлением Windows Server 2008 и более поздних версий. Сведения о требованиях среды выполнения для определенного программного элемента см. в разделе требования на странице справки для этого элемента.

В этом разделе

Раздел Описание
новые возможности платформы фильтрации Windows
сведения о новых функциях и интерфейсах api в Windows платформы фильтрации.
сведения о платформе фильтрации Windows
обзор платформы фильтрации Windows.
использование платформы фильтрации Windows
пример кода с использованием API платформы фильтрации Windows.
Windows Справочник по API платформы фильтрации
документация по Windows функциям, структурам и константам платформы фильтрации.

Дополнительные ресурсы

чтобы задать вопросы и обсудить использование API WFP, посетите форум по платформе фильтрации Windows.

Windows платформа фильтрации (WFP) — это платформа обработки сетевого трафика, предназначенная для замены интерфейсов фильтрации сетевого трафика Windows XP и Windows Server 2003. WFP состоит из набора обработчиков в сетевом стеке и механизма фильтрации, который координирует взаимодействие сетевого стека.

Компоненты платформы WFP

Обработчик фильтров

основная инфраструктура многоуровневого фильтрации, размещенная как в режиме ядра, так и в пользовательском режиме, которая заменяет несколько модулей фильтрации в сетевой подсистеме Windows XP и Windows Server 2003.

  • Фильтрует сетевой трафик на любом уровне системы в любом поле данных, которое может предоставить оболочка совместимости.
  • Реализует фильтры "выноску" путем вызова выносок во время классификации.
  • Возвращает действия "разрешить" или "блокировать" в оболочке совместимости, которая ее вызвала для принудительного применения.
  • Предоставляет арбитраж между разными источниками политики. Например, определяет приоритет, если приложение настроено для защиты любого сетевого трафика, связанного с ним, но локальный брандмауэр настроен для предотвращения трафика, защищенного приложением.

Модуль базовой фильтрации (BFE)

служба, управляющая работой платформы фильтрации Windows. Она выполняет следующие задачи.

  • Принимает фильтры и другие параметры конфигурации для платформы.
  • Сообщает о текущем состоянии системы, включая статистику.
  • Применяет модель безопасности для приема конфигурации на платформе. Например, локальный администратор может добавлять фильтры, но другие пользователи могут только просматривать их.
  • Позволяет подключить параметры конфигурации к другим модулям в системе. Например, политики согласования IPsec переходят к модулям ключей IKE/AuthIP, фильтры попадают в обработчик фильтров.

Оболочек совместимости

Компоненты режима ядра, расположенные между сетевым стеком и обработчиком фильтров. Оболочки делают принятие решений по фильтрации, классифицируются по механизму фильтрации. Ниже приведен список доступных оболочек совместимости.

  • Оболочка совместимости прикладного уровня (ALE).
  • Оболочка модуля транспортного уровня.
  • Оболочка модуля сетевого уровня.
  • Оболочка ошибок протокола ICMP.
  • Удалить оболочку совместимости.
  • Оболочка потока.

Выноски

Набор функций, предоставляемых драйвером и используемый для специальной фильтрации. Помимо основных действий "разрешить" и "блокировать", выноски могут изменять и защищать входящий и исходящий сетевой трафик. дополнительные сведения о выносках см. в разделе " драйверы вызываемой платформы Windows фильтрации " в документации по набору драйверов Windows (WDK). WFP предоставляет встроенные выноски, которые выполняют следующие задачи.

  • Выполните обработку IPsec.
  • Настройте поведение фильтрации с отслеживанием состояния.
  • Выполняет фильтрацию в скрытом режиме (без уведомления о пакетах, которые не были запрошены).
  • Управление разгрузкой TCP Chimney.
  • Взаимодействие со службой Teredo.


Механизм фильтрации позволяет внешним вызовам регистрироваться на каждом из уровней ядра.

Прикладной программный интерфейс

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

WFP - это универсальная технология фильтрации сети, охватывающая все основные
уровни, от транспортного (TCP/UDP) до канального (Ethernet), и дающая разработчикам
массу интересных возможностей.

Почему WFP ?

До WFP разработчики фаерволов, спам-фильтров, родконтролей и других программ
такого плана были вынуждены использовать сложные, разрозненные, а часто просто
недокументированные способы, которые во многих отношениях не давали нужного
эффекта или требовали высокой квалификации и учета многочисленных деталей, с
которыми то и дело возникали проблемы при переносе на другие версии Windows.
Пример таких технологий - TDI, LSP, NDIS, а также старые Filter-Hook Drivers и
Firewall-Hook Drivers. В WFP многие типовые проблемы этих технологий были учтены,
некоторые решения вообще не имеют аналогов, либо тяжелореализуемы в TDI/LSP/NDIS.
Сама технология имеет достаточно простую и понятную объектную модель, хорошо
документирована и при желании ее может освоить человек весьма средней квалификации.

Добавлю, что WFP - единственная на сегодняшний день технология, позволяющая
полноценно фильтровать трафик от modern-приложений на Windows 8 и выше.
И не только. Например, TDI и LSP в настоящее время уже не справляются даже с
Internet Explorer 11 на Windows 7. Поэтому при выборе технологии для нового проекта
следует в первую очередь рассматривать WFP, и только потом (если есть причины,
например совместимость с XP или отсутствие каких-то важных функций WFP на
целевых версиях Windows) другие.

Краткая история.

Появилась в Windows Vista, с тех пор постепенно развивается и дополняется.
В Windows 7 появилась возможность фильтрации на уровне Ethernet, возможность
делать редиректы соединений (как исходящих, так и входящих), а также разные
вспомогательные функции, например для своевременной очистки ресурсов.
В Windows 8 появилось то, чего так долго ждали некоторые разработчики -
возможность многократно перекидывать соединение с одного прокси на другой.
Раньше из-за отсутствия этой возможности было почти нереальным иметь в системе,
к примеру, параллельно работающий фаервол и какой-нибудь спам-фильтр от
разных производителей. Есть и другие изменения, все они описаны в MSDN.

Ложка дегтя.

Лично для меня ложкой дегтя в WFP является то, что наиболее "вкусные" вещи в
ней появились только в Windows 7 - Windows 8 и для того, чтобы сделать
коммерческий продукт, реально совместимый со всей современной линейкой Windows,
не списывая со счетов XP и Vista, все равно приходится использовать TDI/LSP
вместе с WFP. Также я замечал, что документация местами недостаточно детальная, а
кое-где содержит ошибки. В итоге приходилось иногда закапываться надолго в
отладчик, чтобы узнать, в чем дело. И в WFP, как и в любой технологии, есть
недочеты и даже ошибки. Сам я с ними на практике не сталкивался, но не раз
слышал о проблемах с Teredo, например, в результате чего система выпадает в
синий экран (BSOD).

Документация и исходники.

Главный источник информации по WFP - конечно же, MSDN.
Обращаю внимание, что WFP имеет функции как в kernel mode, так и в user mode,
поэтому одну часть документации следует искать в разделе о программировании
драйверов, а вторую - в разделе "network programming" из WinAPI:

Аналогично, исходники примеров для WFP есть как в Windows SDK Samples (diagevents и
msnfilter) и в Windows Driver Kit Samples (ddproxy, inspect, msnmntr и stmedit).
Вероятно, на MSDN Gallery можно найти и другие исходники, а где-нибудь на codeproject,
sourceforge и других опенсорсных хостингах - исходники проектов с использованием WFP.

В следующей части: Архитектура WFP, объектная модель, принципы работы.

Платформа фильтрации Windows (WFP) представляет собой набор системные службы в Виндоус виста и более поздних версий, что позволяет программному обеспечению Windows обрабатывать и фильтровать сетевой трафик. Microsoft предназначила WFP для использования брандмауэры, программное обеспечение для защиты от вредоносных программ, и родительский контроль Программы. Кроме того, WFP используется для реализации NAT и для хранения конфигурации политики IPSec.

WPF полагается на Windows Vista Стек TCP / IP нового поколения. Он предоставляет такие функции, как интегрированная связь и логика обработки для каждого приложения. Начиная с Windows 8 и Windows Server 2012, WFP позволяет фильтровать на втором уровне Пакет TCP / IP.

Содержание

Составные части

Платформа фильтрации включает в себя следующие компоненты:

  • Прокладки, которые раскрывают внутреннюю структуру пакет как свойства. Существуют разные прокладки для протоколы в разных слои. WFP поставляется с набором регулировочных шайб; пользователи могут регистрировать прокладки для других протоколов с помощью API. В комплект шайб входят:
    • Прокладка Application Layer Enforcement (ALE) Прокладка модуля (TLM) Прокладка модуля (NLM) Прокладка времени выполнения (ICMP) прокладка
    • Прокладка потока
    • Фильтрующий двигатель, который охватывает оба режим ядра и пользовательский режим, предоставляя базовые возможности фильтрации. Он сопоставляет данные в пакете - как показано с помощью прокладок - с правилами фильтрации и либо блокирует, либо разрешает пакет. А вызывать (см. ниже) может выполнять любые другие действия по мере необходимости. Фильтры работают для каждого приложения. Для смягчения конфликтов между фильтрами им дается веса (приоритеты) и сгруппированы в подслои, у которых также есть веса. Фильтры и выноски могут быть связаны с провайдеры которым можно дать имя и описание, и они по существу связаны с конкретным приложением или службой.
    • Базовый модуль фильтрации, модуль, управляющий механизмом фильтрации. Он принимает правила фильтрации и обеспечивает соблюдение модели безопасности приложения. Он также ведет статистику по WFP и регистрирует его состояние.
    • Вызывать, а Перезвоните функция, предоставляемая драйвером фильтрации. Драйверы фильтрации предоставляют возможности фильтрации, отличные от значений по умолчанию block / allow. Администраторы указывают функцию выноски во время регистрации правила фильтрации. Когда фильтр совпадает, система вызывает выноску, которая обрабатывает указанное действие.

    Диагностика

    Начиная с Windows 7, то сетка команда может диагностировать внутреннее состояние WFP.

    Исправление

    Читайте также: