|
|||||||||||
|
|
![]() |
Le regole avanzate sono le più efficiente e flessibili per la creazione di filtri complessi mediante l'utilizzo di operatori logici booleani. L'utilizzo di queste regole richiede una conoscenza di base di matematica e logica, tuttavia la sintassi delle regole è piuttosto semplice. ![]() Introduzione Per aggiungere una nuova regola, immettere un nome arbitrario nel campo Nome, selezionare l'azione (Acquisisci/Ignora), immettere una Formula utilizzando la sintassi seguente, quindi scegliere Aggiungi/Modifica. La nuova regola verrà aggiunta all'elenco e diventerà subito attiva. È possibile aggiungere tutte le regole desiderate, tuttavia solo le regole con un segno di spunta accanto al loro nome sono correntemente attive. Per attivare o disattivare le regole, selezionare o deselezionare le caselle corrispondenti oppure eliminare le regole selezionate mediante il pulsante Elimina. Se sono attive più regole, è possibile stimare la regola risultante selezionando Valuta. Si noti che per combinare più regole attive è necessario utilizzare l'operatore logico OR. Se ad esempio sono attive tre regole: REGOLA1, REGOLA2 e REGOLA3, la regola risultante sarà REGOLA1 OR REGOLA2 OR REGOLA3. È possibile utilizzare le regole avanzate insieme alle regole di base descritte nel capitolo precedente. Tuttavia, se si ha una certa dimestichezza con gli operatori logici Booleani, si consiglia di utilizzare solo le regole avanzate in quanto più flessibili. Per combinare le regole avanzate con quelle di base, è necessario utilizzare l'operatore logico AND. Descrizione della sintassi dir: direzione dei pacchetti. I valori possibili sono in (in entrata), out (in uscita) e pass (in entrata e in uscita "pass-through"). Questa parola chiave viene utilizzata solo per compatibilità con l'edizione standard non wireless di CommView. CommView for WiFi non include pacchetti in entrata o in uscita perché la scheda non partecipa allo scambio dei dati e monitora il passaggio dei pacchetti solo in modalità passiva. etherproto: protocollo Ethernet, il 13° e 14° byte del pacchetto. I valori accettabili sono numeri (ad esempio etherproto=0x0800 per il protocollo IP) o alias comuni (ad esempio etherproto=ARP, equivalente a 0x0806). ipproto: protocollo IP. I valori accettabili sono numeri (ad esempio ipproto!=0x06 per il protocollo TCP) o gli alias più spesso utilizzati (ad esempio ipproto=UDP, equivalente a 0x11). smac: indirizzo MAC di origine. I valori accettabili sono gli indirizzi MAC nel formato esadecimale (ad esempio smac=00:00:21:0A:13:0F) o gli alias definiti dall'utente. dmac: indirizzo MAC di destinazione. sip: indirizzo IP di destinazione. I valori accettabili sono gli indirizzi IP con punti (ad esempio sip=192.168.0.1), gli indirizzi IP con caratteri jolly (ad esempio sip!=*.*.*.255), indirizzi di rete con maschere di sottorete (ad esempio sip=192.168.0.4/255.255.255.240 o sip=192.168.0.5/28), gli intervalli IP (ad esempio sip from 192.168.0.15 to 192.168.0.18 or sip in 192.168.0.15 .. 192.168.0.18 ), oppure gli alias definiti dall'utente. dip: indirizzo IP di destinazione. sport: porta di origine per i pacchetti TCP e UDP. I valori accettabili sono numeri (ad esempio sport=80 per HTTP), intervalli (ad esempio sport from 20 to 50 or sport in 20..50 per tutti i numeri di porta compresi tra 20 e 50) o gli alias definiti dal sistema operativo in uso (ad esempio sport=ftp, equivalente a 21). Per l'elenco di indirizzi supportati dal sistema operativo in uso, scegliere Visualizza => Riferimento porta. dport: porta di destinazione per i pacchetti TCP e UDP. flag: flag TCP. I valori accettabili sono numeri (ad esempio 0x18 per PSH ACK) oppure o più dei caratteri seguenti: F (FIN), S (SYN), R (RST), P (PSH), A (ACK), e U (URG) oppure la parola chiave has, che indica che il flag contiene un determinato valore. Esempi di utilizzo: flag=0x18, flag=SA, flag has F. size: dimensioni dei pacchetti. I valori possibili sono numeri (ad esempio size=1514) oppure intervalli (ad esempio size from 64 to 84 or size in 64..84 per tutte le dimensioni comprese tra 64 e 84). str: contenuto dei pacchetti. Utilizzare questa funzione per indicare che il pacchetto deve contenere una determinata stringa. Questa funzione include tre argomenti: stringa, posizione, maiuscole/minuscole. Il primo argomento è una stringa, ad esempio 'GET'. Il secondo argomento è un numero che indica la posizione della stringa (offset) nel pacchetto. L'offset è basato su zero. Se ad esempio si sta cercando il primo valore nel pacchetto, il valore offset deve essere pari 0. Se il valore offset non è importante, utilizzare 1. Il terzo argomento indica la distinzione tra maiuscole e minuscole e può corrispondere a false (nessuna distinzione tra maiuscole e minuscole) o true (distinzione tra maiuscole e minuscole). Il secondo e il terzo argomento sono facoltativi. Se non specificati, i valori offset verranno impostati su 1 e il valore di maiuscole e minuscole sarà impostato su false. Esempi di utilizzo: str('GET',-1,false), str('GET',-1), str ('GET'). hex: contenuto dei pacchetti. Utilizzare questa funzione per indicare che il pacchetto deve contenere un determinato modello di byte esadecimali. Questa funzione include due argomenti: modello esadecimale e posizione. Il primo argomento corrisponde a un valore esadecimale, ad esempio 0x4500. Il secondo argomento è un numero che indica la posizione del modello (offset) nel pacchetto. L'offset è basato su zero. Ciò significa che se si cerca il primo byte nel pacchetto, il valore offset deve essere uguale a 0. Se il valore offset non è importante, utilizzare 1. Il secondo argomento è facoltativo. Se non specificato, i valori offset verranno impostati su 1. Esempi di utilizzo: hex(0x04500, 14) , hex(0x4500, 0x0E), hex (0x010101). bit: contenuto dei pacchetti. Utilizzare questa funzione per stabilire se il bit specificato per l'offset immesso è impostato su 1. In caso affermativo, la funzione restituisce true. Se il bit specificato è impostato su 0 oppure il byte specificato supera il limite del pacchetto, la funzione restituisce false. Il primo argomento corrisponde all'indice di bit nel byte. I valori possibile sono 0-7. Il valore 0x01 indica che l'indice di bit 0 è impostato su 1, tutti gli altri bit vengono impostati su 0. Il secondo argomento è un numero che indica la posizione del byte (offset) nel pacchetto. L'offset è basato su zero, quindi se si cerca il primo byte nel pacchetto, il valore offset deve essere pari a 0. Entrambi gli argomenti sono obbligatori. Esempi di utilizzo: bit(0, 14) , bit(0, 0x0E). ToDS, FromDS, MoreFrag, Retry, Power, MoreData, WEP, Order, Ftype, FsubType, Duration, FragNum, SeqNum: consente di utilizzare campi di intestazione del pacchetto 802.11 nelle regole avanzate. I nomi degli operatori corrispondono completamente ai campi di intestazione del pacchetto come descritto nella specifica standard 802.11. I valori possibili per ToDS, FromDS, MoreFrag, Retry, Power, MoreData, WEP e Order sono 0 o 1. Per gli operatori Ftype, FsubType, Duration, FragNum e SeqNum sono accettabili altri valori numerici. Per informazioni dettagliate sui campi delle intestazioni del pacchetto 802.11 e i valori possibili, vedere la specifica standard 802.1. È possibile utilizzare le parole chiave descritte sopra con gli operatori seguenti: and: operatore Booleano di congiunzione. or: operatore Booleano di separazione. not: operatore Booleano di negazione. = : valore aritmetico di uguaglianza. !=: valore aritmetico di disuguaglianza. <>: come sopra. >: valore aritmetico di maggioranza. < : valore aritmetico di minoranza. ( ): parentesi, controllano le regole di precedenza degli operatori. Tutti i numeri possono essere nel formato decimale o esadecimale. Per utilizzare il formato esadecimale, è necessario aggiungere 0x prima del numero, ovvero è possibile utilizzare 15 o 0x0F. Esempi Di seguito sono riportati alcuni esempi che illustrano la sintassi delle regole. Ciascuna regola è seguita dalla relativa descrizione. Le regole sono visualizzate in rosso. Per separare i commenti dalle regole, vengono utilizzati due slash.
|