Comprender la red Windows_WFP
Categories:
- Comprender la red Windows_WFP
Comprender la red Windows
- Comprender la red Windows
WFP
Explicación de términos
https://learn.microsoft.com/en-us/windows/win32/fwp/object-model https://learn.microsoft.com/en-us/windows/win32/fwp/basic-operation https://learn.microsoft.com/en-us/windows-hardware/drivers/network
callout: Un callout proporciona funcionalidades que extienden las capacidades de la Plataforma de Filtrado de Windows. Un callout consiste en un conjunto de funciones de callout y una clave GUID que identifica de forma única el callout. callout driver: Un controlador de callout es un controlador que registra callouts con la Plataforma de Filtrado de Windows. Un controlador de callout es un tipo de controlador de filtro. callout function: Una función de callout es una función que es llamada por la Plataforma de Filtrado de Windows para realizar una tarea específica. Una función de callout está asociada con un callout. filter: Un filtro es un conjunto de funciones que son llamadas por la Plataforma de Filtrado de Windows para realizar operaciones de filtrado. Un filtro consiste en un conjunto de funciones de filtro y una clave GUID que identifica de forma única el filtro. filter engine: El motor de filtro es el componente de la Plataforma de Filtrado de Windows que realiza operaciones de filtrado. El motor de filtro es responsable de llamar a las funciones de filtro que están registradas con la Plataforma de Filtrado de Windows. filter layer: Una capa de filtro es un conjunto de funciones que son llamadas por la Plataforma de Filtrado de Windows para realizar operaciones de filtrado. Una capa de filtro consiste en un conjunto de funciones de capa de filtro y una clave GUID que identifica de forma única la capa de filtro.
La cola del despachador activa las devoluciones de llamada de forma inmediata, no necesita esperar a que la cola esté llena, por lo que puede satisfacer la necesidad de tiempo real. Cuando las devoluciones de llamada del usuario son lentas, los paquetes bloqueados se insertan lo antes posible en la siguiente cola, con un límite de cola de 256. Los paquetes bloqueados adicionales son almacenados por el sistema, y aproximadamente la capacidad de almacenamiento es de 16500, la capacidad de almacenamiento del sistema puede variar según el rendimiento y la configuración de la máquina. Cuando el usuario procesa los paquetes en las devoluciones de llamada, existen dos entidades de paquetes: Paquetes del kernel, que se liberan después de que la devolución de llamada procese la cola. Por lo tanto, cuando la devolución de llamada es lenta, una ejecución de devolución de llamada puede bloquear hasta 256 paquetes del sistema. Copia en la devolución de llamada, que se libera inmediatamente después de procesar un solo paquete.
En FwppNetEvent1Callback, se realiza la copia y ensamblaje de paquetes sin manipular el paquete original, sin afectar al negocio.
La suscripción puede usar filtros de plantilla para reducir la cantidad de paquetes que se deben procesar:
filterCondition
Una matriz de estructuras FWPM_FILTER_CONDITION0 que contienen condiciones de filtro distintas (las condiciones de filtro duplicadas generarán un error). Todas las condiciones deben ser verdaderas para que se realice la acción. En otras palabras, las condiciones están unidas por un AND. Si no se especifican condiciones, la acción siempre se realiza.
No se puede usar el mismo filtro Las relaciones entre todos los filtros son “y”, deben cumplirse todas La documentación de Microsoft muestra que existen ocho tipos de filtros compatibles, en realidad hay más tipos de filtros compatibles.
FWPM_CONDITION_IP_PROTOCOL
El número de protocolo IP, según lo especificado en RFC 1700. FWPM_CONDITION_IP_LOCAL_ADDRESS
La dirección IP local. FWPM_CONDITION_IP_REMOTE_ADDRESS
La dirección IP remota. FWPM_CONDITION_IP_LOCAL_PORT
El número de puerto de protocolo de transporte local. Para ICMP, el tipo de mensaje. FWPM_CONDITION_IP_REMOTE_PORT
El número de puerto de protocolo de transporte remoto. Para ICMP, el código de mensaje. FWPM_CONDITION_SCOPE_ID
El identificador de alcance IPv6 de la interfaz. Reservado para uso interno. FWPM_CONDITION_ALE_APP_ID
La ruta completa de la aplicación. FWPM_CONDITION_ALE_USER_ID
La identificación del usuario local. Al enumerar las suscripciones registradas en el sistema, se descubrió que ya existen dos suscripciones, y al examinar su GUID de sessionKey no se pudo confirmar quién las registró. Tras analizarlas, se descubrió que cada suscripción implementa las siguientes funciones:
Suscribió todos los paquetes de datos FWPM_NET_EVENT_TYPE_CLASSIFY_DROP, contabilizando todos los paquetes descartados. Suscribió todos los paquetes de datos FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW, que pueden usarse para estadísticas de tráfico. Ambas suscripciones utilizan el filtro de condición FWPM_CONDITION_NET_EVENT_TYPE (206e9996-490e-40cf-b831-b38641eb6fcb), lo que indica que hay más filtros que pueden implementar filtrado aparte de los ocho mencionados en la documentación de Microsoft.
Más investigaciones revelan que la interfaz de llamada del modo de usuario solo puede capturar eventos de caída, los eventos no-caída deben obtenerse en modo kernel, por lo tanto la micro-segmentación no puede usar FWPM_CONDITION_NET_EVENT_TYPE para obtener eventos.