Pakete mit der Berkeley-Paketfilter-Syntax filtern
Suchen Sie nach Paketen mit der Berkeley Packet Filter (BPF) -Syntax allein oder in Kombination mit den integrierten Filtern.
Berkeley-Paketfilter sind eine einfache Schnittstelle zu Datenverbindungsebenen und ein leistungsstarkes Tool für die Analyse der Erkennung von Eindringlingen. Die BPF-Syntax ermöglicht es Benutzern, Filter zu schreiben, die schnell nach bestimmten Paketen suchen, um die wichtigsten Informationen zu sehen.
Das ExtraHop-System erstellt einen synthetischen Paket-Header aus den Paketindexdaten und führt dann die BPF-Syntaxabfragen für den Paket-Header aus, um sicherzustellen, dass Abfragen viel schneller sind als das Scannen der gesamten Paketnutzlast. Beachten Sie, dass ExtraHop nur eine Teilmenge der BPF-Syntax unterstützt. siehe Unterstützte BPF-Syntax.
Die BPF-Syntax besteht aus einem oder mehreren Primitiven, denen ein oder mehrere Qualifikatoren vorangestellt sind. Primitive bestehen normalerweise aus einer ID (Name oder Nummer), der ein oder mehrere Qualifikatoren vorangestellt sind. Es gibt drei verschiedene Arten von Qualifikationsspielen:
- Art
- Qualifikatoren, die angeben, auf welchen Typ sich der ID-Name oder die ID-Nummer bezieht. Zum Beispiel host, net, port, und portrange. Wenn es kein Qualifikationsmerkmal gibt, host wird angenommen.
- dir
- Qualifier, die eine bestimmte Übertragungsrichtung zu und/oder von einer ID angeben. Mögliche Richtungen sind src, dst, src and dst, und src or dst. Zum Beispiel dst net 128.3.
- Proto
- Qualifikatoren, die die Übereinstimmung auf das jeweilige Protokoll beschränken. Mögliche Protokolle sind ether, ip, ip6, tcp, und udp.
Unterstützte BPF-Syntax
Das ExtraHop-System unterstützt die folgende Teilmenge der BPF-Syntax zum Filtern von Paketen.
Hinweis: |
|
Primitiv | Beispiele | Beschreibung |
---|---|---|
[src|dst] host <host ip> |
host 203.0.113.50
dst host 198.51.100.200 |
Entspricht einem Host als IP-Quelle, Ziel oder einer der beiden. Diese Host-Ausdrücke können in Verbindung mit anderen Protokollen wie ip, arp, rarp oder ip6 angegeben werden. |
ether [src|dst] host <MAC> |
ether host 00:00:5E:00:53:00
ether dst host 00:00:5E:00:53:00 |
Entspricht einem Host als Ethernet-Quelle, Ziel oder einer der beiden. |
vlan <ID> | vlan 100 | Entspricht einem VLAN. Gültige ID-Nummern sind 0-4095. Die
VLAN-Prioritätsbits sind Null. Wenn das ursprüngliche Paket mehr als ein VLAN-Tag hatte, hat das synthetische Paket, mit dem der BPF übereinstimmt, nur das innerste VLAN-Tag. |
[src|dst] portrange <p1>-<p2>
oder [tcp|udp] [src|dst] portrange <p1>-<p2> |
src portrange 80-88
tcp dst portrange 1501-1549 |
Ordnet Pakete zu oder von einem Port im angegebenen Bereich zu. Protokolle können auf einen Portbereich angewendet werden, um bestimmte Pakete innerhalb des Bereichs zu filtern. |
[ip|ip6][src|dst] proto <protocol> |
proto 1
src 10.4.9.40 and proto ICMP ip6 and src fe80::aebc:32ff:fe84:70b7 and proto 47 ip and src 10.4.9.40 and proto 0x0006 |
Entspricht anderen IPv4- oder IPv6-Protokollen als TCP und UDP. Das Protokoll kann eine Zahl oder ein Name sein. |
[ip|ip6][tcp|udp] [src|dst] port <port> |
udp and src port 2005
ip6 and tcp and src port 80 |
Entspricht IPv4- oder IPv6-Paketen an einem bestimmten Port. |
[src|dst] net <network> |
dst net 192.168.1.0
src net 10 net 192.168.1.0/24 |
Ordnet Pakete zu oder von einer Quelle oder einem Ziel oder beidem zu, die sich in einem
Netzwerk befinden. Eine IPv4-Netzwerknummer kann als einer der folgenden Werte angegeben werden:
|
[ip|ip6] tcp tcpflags & (tcp-[ack|fin|syn|rst|push|urg|) |
tcp[tcpflags] & (tcp-ack) !=0
tcp[13] & 16 !=0 ip6 and (ip6[40+13] & (tcp-syn) != 0) |
Entspricht allen Paketen mit dem angegebenen TCP-Flag |
Fragmentierte IPv4-Pakete (ip_offset! = 0) | ip[6:2] & 0x3fff != 0x0000 | Stimmt mit allen Paketen mit Fragmenten überein. |
Danke für deine Rückmeldung. Dürfen wir Sie kontaktieren, um weitere Fragen zu stellen?