Compartir a través de


Operación DE PMA

La Plataforma de filtrado de Windows (PMA) realiza sus tareas mediante la integración de las siguientes entidades básicas: Capas, filtros de , shimsy llamadas.

Capas

Una capa es un contenedor administrado por el motor de filtros cuya función es organizar los filtros en conjuntos. Una capa no es un módulo de la pila de red. Cada capa tiene un esquema que define el tipo de filtros que se pueden agregar a él. Consulte condiciones de filtrado disponibles en Cada capa de filtrado para obtener más información.

Las capas pueden contener subcapas para administrar los requisitos de filtro en conflicto, como "Bloquear puertos TCP por encima de 1024" y "Abrir puerto 1080". Las reglas para administrar conflictos de filtrado se determinan mediante arbitraje de filtro.

EL PMA contiene un conjunto de subcapas integradas. Cada capa hereda todas las subcapas integradas. Los usuarios también pueden agregar sus propias subcapas.

La lista de capas del motor de filtro se proporciona en el tema de la sección de referencia Identificadores de capa de filtrado.

Filtros

Un filtro es una regla que coincide con los paquetes entrantes o salientes. La regla indica al motor de filtrado qué hacer con el paquete, incluido llamar a un módulo de llamada para la inspección profunda de paquetes o flujos. Por ejemplo, un filtro puede especificar "Bloquear el tráfico con un puerto TCP mayor que 1024" o "Llamar a IDS para todo el tráfico que no está protegido".

Un filtro en tiempo de arranque es un filtro que se aplica en tiempo de arranque en cuanto se inicia el controlador de pila TCP/IP (tcpip.sys). Cuando se inicia BFE, se deshabilita un filtro en tiempo de arranque. Un filtro se marca como tiempo de arranque estableciendo la marca FWPM_FILTER_FLAG_BOOTTIME cuando se invoca fwpmFilterAdd0.

Un filtro en tiempo de ejecución es un filtro que se aplica después de que se inicie BFE. Un filtro en tiempo de ejecución puede ser estático, dinámico o persistente en función de la forma en que se creó. Consulte de administración de objetos para obtener más información sobre los distintos tipos de filtros en tiempo de ejecución y su duración.

Cuñas

Un es un componente en modo kernel que toma decisiones de filtrado mediante la clasificación en las capas del motor de filtro. Cada corrección de compatibilidad clasifica en una o varias capas. Por ejemplo, la corrección de compatibilidad del módulo de capa de transporte clasifica en la capa transporte entrante, la capa de transporte saliente y las capas de conexión de ALE y Receive-Accept para el primer paquete de un flujo.

A medida que los paquetes, los flujos y los eventos atraviesan la pila de red, las correcciones de compatibilidad los analizan para extraer las condiciones y valores clasificables y, a continuación, llaman al motor de filtros para evaluarlos con los filtros de una capa determinada. El motor de filtro puede invocar una o varias llamadas como parte de la clasificación. Las correcciones de compatibilidad hacen la eliminación real de paquetes, secuencias y eventos en función del resultado de la clasificación realizada por el motor de filtro.

Llamadas

Un de llamada es un conjunto de funciones expuestas por un controlador y usadas para el filtrado especializado. Se usan para realizar análisis y manipulación de los paquetes, como el examen de virus, los controles parentales buscan contenido inapropiado, análisis de datos de paquetes para herramientas de supervisión. Algunas llamadas, como el controlador de traducción de direcciones de red (NAT), están integradas en el sistema operativo. Otros, como una llamada de control parental HTTP o la llamada sistema de detección de intrusiones (IDS), se pueden proporcionar mediante proveedores de software independientes (ISV). El motor de filtros invoca las funciones de llamada cuando un filtro de llamada correspondiente coincide con una capa determinada.

Las llamadas se pueden registrar en cualquiera de las capas DE PMA en modo kernel. Las llamadas pueden devolver una acción ("Bloquear", "Permitir" y, al realizar la inspección de flujos, "Aplazar", "Necesitar más datos", "Quitar conexión") y pueden modificar y proteger el tráfico de red entrante y saliente.

Una vez registrada una llamada con el motor de filtro, puede recibir tráfico de red para procesar. El tráfico puede ser paquetes, secuencias o eventos en función de la capa. Un agente de firewall o aplicación hace que el tráfico se pase a una llamada agregando un filtro cuya acción es "Llamada" y cuyo identificador de llamada es el identificador de la llamada. Las llamadas pueden indicar al motor de filtro que devuelva "Bloquear" o "Permitir" a la corrección de compatibilidad. Las llamadas también pueden devolver "Continuar" para permitir que otros filtros procesen el paquete.

Una llamada puede exponer varias llamadas mediante un controlador de llamada.

Es necesario agregar una llamada (con FwpmCalloutAdd0) y registrarse (con FwpsCalloutRegister) antes de poder usarlo. Se requiere una llamada a fwpmCalloutAdd0 antes de crear filtros que hagan referencia a la llamada. Se requiere una llamada a FwpsCalloutRegister antes de que EL PMA pueda invocar la llamada cuando coincidan los filtros de llamada. De forma predeterminada, los filtros que hacen referencia a las llamadas que se han agregado pero que aún no se han registrado con el motor de filtros se tratan como filtros "Bloquear". El orden de llamada a FwpmCalloutAdd0 y FwpsCalloutRegister no importa. Es necesario agregar una llamada persistente una sola vez y debe registrarse cada vez que se inicia el controlador que implementa la llamada (por ejemplo, después de un reinicio).

Clasificación

La clasificación es el proceso de aplicar filtros al tráfico de red (paquete, secuencia o evento) para determinar un resultado de "Permitir" o "Bloquear" para ese tráfico. Para un paquete, secuencia o evento hay una llamada de clasificación por capa.

Durante la clasificación, las propiedades (por ejemplo, la dirección de origen) del paquete, la secuencia o el evento se comparan con las condiciones de filtro establecidas en los filtros en la capa donde se invoca la clasificación. Cuando se encuentran coincidencias, el algoritmo de arbitraje de filtro se usa para determinar el resultado del proceso de clasificación.

Una solicitud de clasificación se desencadena mediante una corrección de compatibilidad ( shim).

Las acciones de clasificación pueden ser:

  • Permitir
  • Bloquear
  • Llamada
    • Permitir
    • Bloquear
    • Continuar
    • Aplazar
    • Necesidad de más datos
    • Quitar conexión

Operación DE PMA

En tiempo de arranque, en cuanto se inicia el controlador de pila TCP/IP (tcpip.sys), el motor de filtro en modo kernel aplica la directiva de seguridad del sistema a través de filtros en tiempo de arranque.

Una vez que el motor de filtrado base (BFE) se inicia en modo de usuario, se agregan filtros persistentes a la plataforma, se deshabilitan los filtros en tiempo de arranque y se envían notificaciones a los controladores de llamada que se suscriben mediante FwpmBfeStateSubscribeChanges0. Las notificaciones se envían inmediatamente después de que se complete la inicialización BFE. La plataforma ya está lista para que las llamadas se registren y para que se agreguen objetos en tiempo de ejecución.

La transición del tiempo de arranque a los filtros persistentes puede ser de varios segundos o incluso más en una máquina lenta. Es atómica, por lo que si un proveedor tiene un tiempo de arranque y un filtro persistente, nunca habrá una ventana cuando ninguno esté en vigor.

Después de iniciar BFE, los agentes de firewall pueden agregar filtros en tiempo de ejecución o mediante soluciones de firewall personalizadas. BFE procesa estos filtros y los envía a la capa del motor de filtro adecuada para su cumplimiento. BFE también acepta la configuración de autenticación y envía esta configuración a los módulos de clave IPsec (IKE/AuthIP). Consulte de configuración de IPsec para obtener más información.

En cualquier momento, los filtros y la configuración de autenticación se pueden agregar, quitar o cambiar en el sistema a través de la interfaz RPC expuesta por el BFE. También se pueden agregar o quitar subcapas y módulos de llamada.

Flujo de datos:

  1. Un paquete entra en la pila de red.
  2. La pila de red busca y llama a una corrección de compatibilidad.
  3. La corrección de compatibilidad invoca el proceso de clasificación en una capa determinada.
  4. Durante la clasificación, los filtros se coinciden y se realiza la acción resultante. (Consulte de arbitraje de filtro).
  5. Si se coincide con algún filtro de llamada durante el proceso de clasificación, se invocan las llamadas correspondientes.
  6. La corrección de compatibilidad actúa sobre la decisión de filtrado final (por ejemplo, quitar el paquete).

El flujo de datos saliente sigue un patrón similar.

En los temas siguientes se describe aún más el funcionamiento del PMA.

modelo de objetos de

de administración de objetos