Camadas ALE
A ALE (Application Layer Enforcement) consiste em várias camadas de filtragem e muitas camadas de descarte correspondentes. Todas as camadas do mecanismo de filtragem da Plataforma de Filtragem do Windows (WFP), incluindo o ALE, são descritas em Filtrando identificadores de camada. Este tópico contém uma descrição mais detalhada das camadas de filtragem que fazem parte do ALE.
Um filtro na camada FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V{4|6} é correspondido para operações de associação de rede, explícitas ou implícitas.
Se um filtro nessa camada for correspondido para autorizar a criação de soquete bruto, o sinalizador FWP_CONDITION_FLAG_IS_RAW_ENDPOINT será definido.
Se um filtro nessa camada for correspondido para autorizar o recebimento do modo promíscuo, o campo FWP_CONDITION_ALE_PROMISCUOUS_MODE será definido como SIO_RCVALL. Para obter uma descrição de SIO_RCVALL, consulte WSAIoctl.
Observação
Essa é a única camada em que o modo promíscuo pode ser filtrado.
Se nenhuma porta for especificada durante bind(), ou seja, a porta será definida como 0 (zero), a pilha TCP/IP selecionará uma porta no intervalo de portas dinâmicas (19152–65535). A porta selecionada será classificada nessa camada junto com o sinalizador FWP_CONDITION_FLAG_IS_WILDCARD_BIND .
Se o endereço local não for especificado na chamada bind(), o campo de endereço local será definido como FWP_EMPTY.
Um filtro na camada FWPM_LAYER_ALE_AUTH_LISTEN_V{4|6} é correspondido para chamadas TCP listen().
Um filtro na camada FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} é correspondido para chamadas TCP accept(), para os primeiros pacotes UDP (unicast) de uma tupla de endereço/porta remota exclusiva e para as primeiras mensagens ICMP de entrada sem erro (unicast) com um tipo exclusivo de ICMP, código e ID.
Observação
Os protocolos que não são TCP ou ICMP são tratados como UDP.
Os pacotes TCP recebidos por soquetes brutos são tratados de forma semelhante ao tráfego UDP. Ou seja, somente o primeiro TCP send() e o primeiro recv() TCP em soquetes brutos serão filtrados.
Um filtro na camada FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} é correspondido para chamadas TCP connect(), para os primeiros pacotes UDP enviados a um endereço remoto exclusivo e tupla de porta e para as primeiras mensagens ICMP sem erro de saída com um tipo exclusivo de ICMP, código e ID.
Observação
Os protocolos que não são TCP ou ICMP são tratados como UDP.
Os pacotes TCP enviados por soquetes brutos são tratados de forma semelhante ao tráfego UDP. Ou seja, somente o primeiro TCP send() e o primeiro recv() TCP em soquetes brutos serão filtrados.
Um filtro na camada FWPM_LAYER_ALE_FLOW_ESTABLISHED_V{4|6} é correspondido depois que um handshake de três vias TCP for concluído com êxito. Para tráfego não TCP, o filtro é correspondido imediatamente após a correspondência de filtros de camadas de AUTH_RECV_ACCEPT ou AUTH_CONNECT .
Um filtro nessa camada não deve retornar Bloquear ou Permitir.
Essa camada é usada por drivers de texto explicativo para acompanhar o estado da conexão, descrito em detalhes na documentação do Kit de Driver do Windows .
Um filtro na camada FWPM_LAYER_ALE_RESOURCE_RELEASE_V{4|6} é correspondido depois que os recursos alocados por meio de RESOURCE_ASSIGNMENT foram liberados.
Um filtro na camada FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V{4|6} é correspondido quando um fluxo TCP conectado ou ponto de extremidade de soquetes UDP é fechado.
Um filtro na camada FWPM_LAYER_ALE_CONNECT_REDIRECT_V{4|6} permite a modificação de endereços e portas remotos. A conexão de saída será redirecionada durante essa conexão.
Um filtro na camada FWPM_LAYER_ALE_BIND_REDIRECT_V{4|6} permite a modificação do endereço e das portas locais do soquete subjacente. O soquete local será redirecionado para o tempo de vida do soquete
Para cada uma das camadas ALE descritas acima, o mecanismo de filtragem contém uma camada de descarte correspondente. As camadas de descarte do ALE são usadas por textos explicativos para fins de registro em log. Pacotes e indicações que foram descartados em uma das camadas de filtragem ALE são indicados para a camada de descarte ALE correspondente.