Filtro con stato ALE

I filtri installati nei livelli Application Layer Enforcement (ALE) di Windows Filtering Platform (WFP) eseguono filtri di rete con stato. Un flusso ALE viene usato come base per il filtro con stato ALE.

Un flusso ALE è un modo per classificare il traffico di rete raggruppandolo in base a un indirizzo IP di origine, un indirizzo IP di destinazione, una porta di origine, una porta di destinazione e un protocollo. Un flusso ALE può essere generico, ovvero uno o più descrittori potrebbero corrispondere a tutti gli elementi (o carattere jolly *). Ad esempio, un flusso ALE UDP generico verrebbe descritto come Indirizzo IP di origine = *, Indirizzo IP di destinazione = *, Porta di origine = *, Porta di destinazione = *e Protocollo = UDP.

Una volta autorizzata una connessione (le connessioni in ingresso sono autorizzate al livello FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} e le connessioni in uscita al livello FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} ), viene creato un flusso ALE in modo che, barando una modifica dei criteri, tutti i pacchetti, in ingresso e in uscita, che appartengono allo stesso flusso ALE sono consentiti automaticamente. Poiché una modifica dei criteri potrebbe richiedere il blocco delle connessioni consentite in precedenza, i flussi ALE devono essere nuovamente autorizzati quando si verifica una modifica dei criteri.

Il filtro con stato ALE riduce drasticamente il numero di classificazioni necessarie classificando solo il primo pacchetto appartenente a un flusso ALE. Per confronto, il filtro senza stato richiede la classificazione di ogni pacchetto che attraversa la rete.

Un flusso ALE ha una direzione associata, ovvero la direzione del primo pacchetto del flusso. Ciò consente criteri più flessibili, consentendo alle connessioni avviate in ingresso di avere criteri diversi dalle connessioni avviate in uscita.

Flusso ALE TCP

Un flusso ALE per il traffico TCP viene identificato dalla tupla a cinque di TCP/IP (indirizzo IP di origine, indirizzo IP di destinazione, porta di origine, porta di destinazione e protocollo).

Un flusso TCP ALE ha la stessa durata di un socket TCP connesso. Un socket TCP connesso può essere un socket creato usando connect() o un socket creato in seguito a una chiamata accept().

ALE gestisce una relazione uno-a-uno tra un flusso TCP ALE e un blocco di controllo TCP (TCB).

Flusso ALE UDP

Nota

I protocolli che non sono TCP o ICMP vengono trattati come UDP.

 

Un flusso ALE per il traffico UDP viene identificato dalla tupla a cinque di TCP/IP (indirizzo IP di origine, indirizzo IP di destinazione, porta di origine, porta di destinazione e protocollo).

Viene creato un flusso ALE UDP basato su un socket UDP e rappresenta il peer remoto con cui l'applicazione sta comunicando. Un peer remoto è identificato da una tupla (indirizzo IP di destinazione e porta di destinazione).

Esiste una relazione uno-a-molti tra un socket UDP e i peer remoti a cui comunica.

Quando il socket UDP locale viene chiuso, verranno eliminati tutti i flussi ALE associati.

In assenza di chiusura del socket, i flussi ALE unicast UDP hanno un timeout di inattività configurabile che per impostazione predefinita è 60 secondi. Se non vengono inviati o ricevuti pacchetti all'interno di questa finestra, il flusso ALE verrà eliminato. Questo timeout predefinito viene ridotto progressivamente quando il numero di flussi ALE a livello di sistema raggiunge una determinata soglia.

Flusso ALE ICMP

Un flusso ALE per il traffico ICMP viene identificato dalla tupla a sei (indirizzo IP di origine, indirizzo IP di destinazione, tipo ICMP, codice ICMP, protocollo e ID ICMP). L'ID ICMP fa parte del flusso ALE solo per il traffico echo/reply ICMP.

In assenza di chiusura del socket, i flussi ALE unicast ICMP hanno un timeout di inattività configurabile che per impostazione predefinita è 60 secondi. Se non vengono inviati o ricevuti pacchetti all'interno di questa finestra, il flusso ALE verrà eliminato. Questo timeout predefinito viene ridotto progressivamente quando il numero di flussi ALE a livello di sistema raggiunge una determinata soglia.

Solo i messaggi ICMP non di errore sono indicati ai livelli ALE. I messaggi di errore ICMP possono essere controllati a livelli ICMP_ERROR.

Applicazione livello applicazione (ALE)

Livelli ALE

Traffico multicast/broadcast ALE

Riautorizzazione ALE

Personalizzazione del flusso ALE

Flussi di pacchetti TCP

Flussi di pacchetti UDP

Funzioni Winsock