|
Erweiterte Regeln sind die mächtigsten und flexibelsten Regeln. Sie ermöglichen Ihnen komplexe Filter basierend auf Bool'scher Logik zu implementieren. Um diese zu nutzen brauchen Sie grundlegende Kenntnisse in Mathematik und Logik. Die Regelsyntax ist aber leichtverständlich.

übersicht
Um eine neue Regel hinzuzufügen müssen Sie einen beliebigen Namen im Eingabefeld Name eingeben, wählen Sie dann die Aktion Pakete erfassen/ignorieren. Geben Sie eine Formel nach der weiter unten erklärten Syntax ein und klicken anschließend auf [Hinzufügen/Editieren]. Die neue Regel wird hinzugefügt und ist augenblicklich aktiv. Es können beliebig viele Regeln hinzugefügt werden. Es sind jedoch nur die Regeln aktiv, die eine aktivierte Checkbox neben ihrem Namen haben. Die Regeln können über die entsprechenden Checkboxen aktiviert/deaktiviert werden. Zum endgültigen Löschen von Regeln verwenden Sie den Button Löschen. Wenn mehrere Regeln aktiv sind, können Sie das Ergebnis abschätzen, indem Sie Evaluieren anklicken. Mehrere aktive Regeln werden über den logischen ODER-Operator gekoppelt, wenn Sie also drei aktive Regeln haben, nennen wir sie REGEL1, REGEL2, REGEL3, ist das Ergebnis gültig, sobald mindestens eine der drei Regeln zutrifft.
Sie können die Erweiterten Regeln zusammen mit den Basisregeln verwenden (siehe vorheriges Kapitel). Wenn Sie sich mit Bool'scher Logik auskennen, sollten Sie nur die Erweiterten Regeln verwenden, da diese mehr Flexibilität bieten. Die Grundregeln werden über einen logischen UND-Operator mit den Erweiterten Regeln verknüpft.
Syntax Beschreibung
dir – Paketrichtung. Mögliche Werte sind in (inbound), out (outbound), und pass (pass-through). Dieses Schlüsselwort dient der Kompatibilität mit der (non-wireless) Standardedition von CommView. In CommView for WiFi gibt es keine inbound oder outbound Pakete, da Ihr Adapter nicht am Datenaustausch teilnimmt und nur passiv die durchgehenden Pakete überwacht.
etherproto – Ethernet Protokol, das 13. und 14. Byte des Paketes. Erlaubte Werte sind Zahlen (wie etherproto!=0x0800 für IP) oder allgemeine Kennnamen (wie etherproto=ARP was gleichwertig zu 0x0806 ist).
ipproto – IP Protokoll. Erlaubt sind Zahlen (wie ipproto=0x06 für TCP) oder allgemeine Kennnamen (wie ipproto=UDP, was gleichwertig zu 0x11 ist).
smac – Source MAC Adresse. Erlaubt sind hier MAC-Adressen in Hexnotation (wie smac=00:00:21:0A:13:0F) oder benutzerdefinierte Kennnamen.
dmac – Destination MAC address (Ziel-MAC-Adresse).
sip – Quell-IP- oder IPv6-Adresse. Erlaubt sind IP-Adressen in Punktnotation (wie sip=192.168.0.1), IP-Adressen mit Wildcards (wie sip!=*.*.*.255), ausgenommen für IP6-Adressen, Netzwerkadressen mit Subnet-Masken (wie sip=192.168.0.4/255.255.255.240 oder sip=192.168.0.5/28), IP-Bereiche (wie sip von 192.168.0.15 bis 192.168.0.18 oder sip in 192.168.0.15 .. 192.168.0.18 ) oder benutzerdefinierte Kennnamen. Die Benutzung von IPv6-Adressen erfordert Windows XP oder höher und die IPv6-Stapelung muss installiert sein.
dip – Destination IP address (Ziel-IP-Adresse).
sport – Quell-Port für TCP- und UDP-Pakete. Erlaubt sind Zahlen (wie sport=80 für HTTP), Bereiche (wie sport from 20 to 50 oder sport in 20..50 für alle Portnummer zwischen 20 und 50) oder die vom Betriebssystem definierten Kennnamen (wie sport=ftp, was gleichwertig zu 21 ist). Um die Liste aller Betriebssystemkennnamen zu erhalten klicken Sie bitte auf Ansicht => Portreferenz.
dport – Ziel-Port für TCP- und UDP-Pakete.
flag – TCP-Flag. Erlaubt sind Zahlen (wie 0x18 für PSH ACK) oder ein bzw. mehrere der folgenden Zeichen: F (FIN), S (SYN), R (RST), P (PSH), A (ACK), und U (URG) oder das Schlüsselwort has . Dies bedeutet, dass das Flag einen bestimmten Wert enthält. Beispiele: flag=0x18, flag=SA, flag has F.
size – Paketgröße. Erlaubt sind Zahlen (wie size=1514) oder Bereiche (wie size from 64 to 84 oder size in 64..84 für jede Größe zwischen 64 und 84).
str – Paketinhalt. Wählen Sie dieses Argument, wenn das Paket einen bestimmten String enthalten muß. Es gibt drei Argumente: string, position und case sensitivity (Groß-/Kleinschreibung beachten). Das erste Argument ist ein String, wie 'GET'. Das zweite Argument ist eine Zahl, welche die Stringposition (Offset) im Paket festlegt. Das Offset ist nullbasierend, d. h. wenn Sie das erste Byte des Paketes suchen, muss der Offsetwert 0 sein. Wenn das Offset ohne Bedeutung ist, wählen sie –1. Das dritte Argument legt die Bedeutung der Groß-/Kleinschreibung fest. Es ist entweder false (case-insensitive) oder true (case-sensitive). Das zweite und dritte Argument sind optional. Wenn hier nichts eingetragen wird ist der Standardwert –1 und die case-sensitivity Einstellung ist false. Beispiele: str('GET',-1,false), str('GET',-1), str ('GET').
hex – Paketinhalt. Verwenden Sie diese Funktion, wenn das Paket bestimmte Hexadezimalwerte enthalten muß. Diese Funktion hat zwei Argumente: Hexmuster und Position. Das erste Argument ist ein Hexwert, wie 0x4500. Das zweite Argument ist eine Zahl, welche die Musterposition (Offset) im Paket definiert. Das Offset ist nullbasierend, d. h. wenn Sie das erste Byte des Paketes suchen, muss der Offsetwert 0 sein. Wenn das Offset ohne Bedeutung ist, wählen sie –1. Das zweite Argument ist optional, wenn es weggelassen wird, ist die Standardeinstellung –1. Beispiele: hex(0x04500, 14) , hex(0x4500, 0x0E), hex (0x010101).
bit - Paketinhalt. Mit dieser Funktion ermitteln Sie, ob ein bestimmtes Bit eines definierten Offsets auf 1 gesetzt ist, so dass die Funktion true ausgegeben wird. Sollte das definierte Bit 0 sein oder außerhalb der Paketgrenzen liegen, so ergibt die Funktion false. Diese Funktion hat zwei Argumente: Bit-Index und Byte-Position. Das erste Argument ist der Bit-Index im Byte. Die erlaubten Werte sind hier im Bereich 0-7. Der Index ist nullbasierend, d. h. wenn Sie das 8. Bit suchen ist der Indexwert 7. Das zweite Argument ist die Zahl, die die Byte-Position (Offset) im Paket definiert. Auch diese ist nullbasierend, d.h. das 1. Bit hat den Wert 0. Beide Argumente sind zwingend notwendig. Beispiele: bit(0, 14) , bit(5, 1).
ToDS, FromDS, MoreFrag, Retry, Power, MoreData, WEP, Order, Ftype, FsubType, Duration, FragNum, SeqNum - zur Verwendung der 802.11-Paket-Header-Felder innerhalb der Erweiterten Regeln. Die Operatorennamen passen zu den in den 802.11-Standards festgelegten Paket-Header-Feldern. Die erlaubten Werte für ToDS, FromDS, MoreFrag, Retry, Power, MoreData, WEP und Order sind 0 oder 1. Für Ftype, FsubType, Duration, FragNum und SeqNum Operatoren sind auch andere numerische Werte gültig.
In den 802.11-Standards finden Sie detaillierte Informationen zu den 802.11-Paket-Header-Feldern und den von ihnen akzeptierten Werten.
Die oben genannten Schlüsselwörter können mit den folgenden Operatoren verwendet werden:
and - Bool'sche Verknüpfung.
or - Bool'sche Unterscheidung.
not - Bool'sche Verneinung.
= - gleich.
!= - ungleich.
<> - ungleich.
> - größer als.
< - kleiner als.
( ) – Runde Klammer, Operatorenvorrangsregel.
Zahlen entweder in Dezimal- oder Hexadezimalschreibweise. In der Hexnotation muß 0x vor jeder Zahl stehen, z. B. 15 oder 0x0F.
Beispiele
Folgende Beispiele zeigen die Regelsyntax. Jede Regel besitzt einen Kommentar zur Regelerklärung. Die Kommentare folgen nach zwei Schrägstrichen.
| • | (smac=00:00:21:0A:13:0E or smac=00:00:21:0A:13:0F) and etherproto=arp // Empfängt die ARP-Pakte, die von den zwei Computern 00:00:21:0A:13:0E und 00:00:21:0A:13:0F gesendet werden. |
| • | ipproto=udp and dpodert=137 // Empfängt die UDP-/IP-Pakete die an Port 137 gesendet werden. |
| • | dpodert=25 and str('RCPT TO:', -1, true) // Empfängt die TCP/IP- oder UDP/IP-Pakete, welche "'RCPT TO:" enthalten und die den Zielport 25 haben. |
| • | not (spodert>110) // Empfängt alle Pakete, außer denen, deren Quellport größer als 110 ist. |
| • | (sip=192.168.0.3 and dip=192.168.0.15) or (sip=192.168.0.15 and dip=192.168.0.3) // Empfängt nur die IP-Pakete, die zwischen den Maschinen 192.168.0.3 und 192.168.0.15 ausgetauscht werden. Alle anderen Pakete werden ignoriert. |
| • | ((sip from 192.168.0.3 to 192.168.0.7) and (dip = 192.168.1.0/28)) and (flag=PA) and (size in 200..600) // Empfängt die TCP-Pakete, deren Größe zwischen 200 und 600 Bytes ist und die aus dem IP-Bereich 192.168.0.3 - 192.168.0.7 kommen, deren IP-Zieladresse im Bereich 192.168.1.0/255.255.255.240 liegt und deren TCP-Flag PSH ACK ist. |
| • | Hex(0x0203, 89) and (dir<>in) // Empfängt die Pakete, die 0x0203 im Offset 89 enthalten und deren Paketrichtung nicht inbound ist. |
| • | not(ftype=0 and fsubtype=8) // Ignoriert Managementpakete des Beacon-Typs. |
| • | ftype=2 and wep=1 // Empfängt unverschlüsselte Pakete. |
MoreFrag=0 and FragNum=0 // Empfängt unfragmentierte Pakete.
|