Stichwort | Wert | Nutzung |
---|---|---|
srcaddr/dstaddr | <ipaddress>; | Die Quell-/Ziel-IP-Adresse |
srcport/dstport | <Number>; | Der Quell-/Ziel-Port |
content | „<content string>;“ Eine Zeichenfolge in doppelten Anführungszeichen. |
In einer Regel können mehrere Inhalte stehen. Der Wert kann aus Text und Binärdaten bestehen. Binärdaten stehen im Allgemeinen zwischen senkrechten Strichen (|). |
nocase Kann nur mit dem Stichwort „content“ verwendet werden |
NULL | Groß-/Kleinschreibung im content-Wert wird ignoriert |
rawbytes Kann nur mit dem Stichwort „content“ verwendet werden |
NULL | Dekodierung wird ignoriert. Sucht in den Raw-Paketdaten |
depth Kann nur mit dem Stichwort „content“ verwendet werden |
<number>; zum Beispiel depth:5; |
Sucht nach Inhalten innerhalb der angegebenen Anzahl der Bytes der Nutzlast. Wenn der Wert des depth-Stichworts kleiner ist als die Länge des Werts des content-Stichworts, wird die Signatur nicht gefunden. |
offset Kann nur mit dem Stichwort „content“ verwendet werden |
<number>; zum Beispiel content:cgi-bin/phf;offset:4;depth:20; |
Sucht nach Inhalten nach der angegebenen Anzahl der Bytes der Nutzlast. Dieser Tag ist ein absoluter Wert in der Nutzlast. Dem offset-Tag kann ein depth-Tag folgen, um so die Suche nach einem Match zu beenden, sobald der im depth-Tag aufgeführte Wert erreicht wurde. Ist kein Wert für „depth“ angegeben, wird bis zum Ende der Nutzlast weiter nach einem Match gesucht. |
distance Kann nur mit dem Stichwort „content“ verwendet werden |
<number>; zum Beispiel content:„ABC“;content:„DEF“; distance:1; |
Sucht nach dem Inhalt der angegebenen Anzahl der Bytes relativ zum Ende der vorherigen gefundenen Inhalte. Nach dem distance-Tag kann ein within-Tag folgen. Wenn kein Wert für den within-Tag angegeben ist, wird bis zum Ende der Nutzlast nach einem Match gesucht. |
within Kann nur mit dem Stichwort „content“ verwendet werden |
<number>; Zum Beispiel content: „ABC“; content: „DEF“; within:10; |
Sucht nach Inhalten innerhalb der angegebenen Anzahl der Bytes der Nutzlast. Gemeinsam mit dem distance-Tag verwenden. |
uricontent | uricontent:<content string>; zum Beispiel, uricontent:„%3F“; |
Es wird nach dem normalisierten Request-URI-Feld gesucht. Binärdaten können als URI-Wert definiert werden. |
isdataat | <value> [,relative]; zum Beispiel content: „PASS“; isdataat: 50, relative; |
Prüft, ob die Nutzlast an einer bestimmten Stelle über Daten verfügt. Optional wird nach Daten ab dem Ende des vorherigen Inhalt-Match gesucht. |
pcre | pcre:[!]„(/<regex>/|m/<regex>/)[ismxAEGRUB]“; zum Beispiel pcre:„/BLAH/i“; |
Das pcre Stichwort lässt es zu, dass Regeln mit perl-kompatiblen regulären Ausdrücken geschrieben werden. i – schreibungsunabhängig s – Newlines im dot Metazeichen einschließen m – Standardmäßig wird die Zeichenkette als eine große Zeile mit Zeichen behandelt; ^ und $ entsprechen dem Beginn und Ende der Zeichenkette. Wenn m gesetzt ist, entsprechen ^ und $ sofort nach oder vor jeder Newline im Buffer, ebenso wie am Anfang und am Ende des Buffers. x – Leerzeichen-Datenzeichen im Pattern werden ignoriert, außer wenn es ein Maskierungszeichen ist oder innerhalb einer Zeichenklasse. A – Das Pattern muss nur dem Beginn des Buffers entsprechen (das gleiche wie ^) E – $ kennzeichnet das Ende der Zeichenkette. Ohne E entspricht $ auch direkt vor dem letzten Zeichen, wenn es eine Newline ist (aber nicht vor anderen Newlines) G – Kehrt die „Gier“ der Gewichtungen um, sodass sie nicht standardmäßig gierig sind, sondern erst wenn ein „?“ folgt. R – Sucht nach Übereinstimmungen am Ende des letzten übereinstimmenden Patterns (ähnlich wie distance:0;) U – Sucht nach dekodierten URI-Puffern (ähnlich wie uri) B – Dekodierte Puffer werden nicht verwendet (ähnlich wie raw keyword). |
byte_test | <bytes to convert>, [!]<operator>, <value>, <offset> [,relative] [,<endian>] [,<number type>, string]; oct,dec,hex nur mit Zeichenfolge verwendet zum Beispiel msg: „AMD procedure 7 plog overflow“; content:„|00 04 93 F3|“; content:„|00 00 00 07|“; distance: 4.within:4; byte_test:4,>,1000,20,relative; |
Prüft ein Byte-Feld auf einen bestimmten Wert (mit Operator). Fähig, binäre Werte zu testen und repräsentative Byte-Strings in ihr binäres Gegenüber zu konvertieren und zu testen. bytes_to_convert – Die Anzahl an Bytes, die aus dem Paket aufgenommen werden – Mit dieser Operation wird der Wert (<,>,=,!,&) geprüft value – Der Wert, mit welchem der konvertierte Wert verglichen wird offset – Die Anzahl der Bytes, nach welcher die Nutzlast die Verarbeitung startet relative – Verwendung eines offset ab dem letzten Pattern-Match big – Verarbeitung der Daten als Big Endian (Standard) little – Verarbeitung der Daten als Little Endian string – Die Daten im Paket werden im String-Format gespeichert hex – Die konvertierten String-Daten werden hexadezimal dargestellt dec – Die konvertierten String-Daten werden dezimal dargestellt oct – Die konvertierten String-Daten werden oktal dargestellt |
byte_jump | <bytes_to_convert>, <offset> [,relative] [,multiplier <multiplier value>] [,big] [,little][,string] [,hex] [,dec] [,oct] [,align] [,from_beginning]; oct,dec,hex wird nur mit String verwendet zum Beispiel, content:„|00 00 00 01|“; distance: 4; within: 4; byte_jump: 4,12,relative,align |
bytes_to_convert – Die Anzahl an Bytes, die aus dem Paket aufgenommen werden multiplier value – Multipliziert die Anzahl der errechneten Bytes mit dem Wert und springt die Anzahl an Bytes vor operator – Mit dieser Operation wird der Wert (<,>,=,!,&) geprüft value – Der Wert, mit welchem der konvertierte Wert verglichen wird offset – Die Anzahl der Bytes, nach welcher die Nutzlast die Verarbeitung startet relative – Verwendung eines offset ab dem letzten Pattern-Match big – Verarbeitung der Daten als Big Endian (Standard) little – Verarbeitung der Daten als Little Endian string – Die Daten im Paket werden im String-Format gespeichert hex – Die konvertierten String-Daten werden hexadezimal dargestellt dec – Die konvertierten String-Daten werden dezimal dargestellt oct – Die konvertierten String-Daten werden oktal dargestellt align – Die konvertierten Bytes werden auf das nächste 32-Bit Format aufgerundet from_beginning – Vorwärts überspringen vom Anfang der Paket-Payload, anstatt von der aktuellen Position im Paket |
ttl | <number>;><number>;<<number>; | Vergleicht den Wert von IP Time-to-Live mit dem angegebenen Wert |
tos | <number>; | Vergleicht das Feld IP TOS mit dem angegebenen Wert |
id | <number>; | Vergleicht das Feld IP ID mit dem angegebenen Wert |
ipopts | {rr | eol | nop | ts | sec | lsrr |ssrr | satid | any} |
rr – Prüft, ob die Option IP RR (record route) vorhanden ist eol – Prüft, ob die Option IP EOL (end of list) vorhanden ist nop – Prüft, ob die Option IP NOP (no op) vorhanden ist ts – Prüft, ob die Option IP TS (time stamp) vorhanden ist sec – Prüft, ob die Option IP SEC (IP security) vorhanden ist lsrr – Prüft, ob die Option IP LSRR (loose source routing) vorhanden ist ssrr – Prüft, ob die Option IP SSRR (strict source routing) vorhanden ist satid – Prüft, ob die Option IP SATID (stream identifier) vorhanden ist any – Prüft, ob die Option IP any vorhanden ist |
fragoffset | <number>; | Vergleicht das offset-Feld des IP-Fragments mit dem Dezimalwert |
fragbits | [+*!]<[MDR]>; | Überprüft, ob IP-Fragmentierung und reservierte Bits im IP-Header vorhanden sind. M – Das More-Fragments-Bit D – Das „Don't-Fragment“-Bit R – Das Reserved-Bit + – Die angegebenen Bits suchen, plus jegliche weiteren * – Match, wenn eines der angegebenen Bits gefunden wird ! – Match, wenn die angegebenen Bits nicht gesetzt sind |
dsize | [<|>]<number>[<>number]; zum Beispiel dsize:300<>400; |
Testet die Nutzlast des Pakets. Wenn data_size festgelegt ist, wird das Zusammenfügen des Pakets automatisch abgeschaltet, sodass eine Signatur mit Werten für data_size und only_stream als falsch betrachtet wird. dsize scheitert an neu gebauten Datenpaketen, unabhängig von der Größe der Nutzlast |
flags | [!|*|+]<FSRPAU120>[,<FSRPAU120>]; zum Beispiel, Flags:SF,12 |
TCP-Flags, mit welchen ein Paket abgeglichen werden soll. S – Sucht nach dem SYN-Flag A – Sucht nach dem ACK-Flag F – Sucht nach dem FIN-Flag R – Sucht nach dem RST-Flag U – Sucht nach dem URG-Flag P – Sucht nach dem PSH-Flag 1 – Sucht nach dem reservierten Bit 1 2 – Sucht nach dem reservierten Bit 2 0 – Sucht nach Bits ohne TCP-Flags + – Sucht nach den angegebenen Bits, plus weiteren * – Match, wenn eines der angegebenen Bits gefunden wird ! – Match, wenn die angegebenen Bits nicht gesetzt sind |
flow | to_client|to_server|from_client| from_server ];established;bi_direction;[no_stream|only_stream]; | Nur TCP: Der Wert für to_server entspricht dem Wert für from_client. Der Wert für to_client entspricht dem Wert für from_server. Das Tag bi_direction führt die Suche nach passenden Signaturen in beiden Richtungen durch. Wenn zum Beispiel eine Signatur mit „--dst_port 80“ vorliegt und bi_direction ist gesetzt, prüft die Signatur den Datenverkehr von und an Port 80. |
seq | <number>; | Auf die festgelegte TCP-Sequenznummer prüfen |
ack | <number>; | Auf die festgelegte TCP-Achknowledge-Nummer prüfen |
window | <number>; | Auf die festgelegte TCP-Fenstergröße prüfen |
itype | [<|>]<number>[<>number]; | Gibt den ICMP-Typ für die Suche an |
icode | [<|>]<number>[<>number]; | Gibt den ICMP-Code für die Suche an |
icmp_id | <number>; | Sucht nach dem angegebenen ICMP-ID-Wert |
icmp_seq | <number>; | Sucht nach dem angegebenen ICMP-Sequenzwert |
rpc | <application number>,[<version number>|*],[<procedure number>|*>; | Sucht nach den RPC-Anwendungs-, Versions- und Prozessnummern in SUNRPCCALL-Anfragen. Der Platzhalter * kann für Versions- und Prozessnummern verwendet werden. |
ip_proto | <number>;[!]<number>;><number>;<<number>; | Sucht nach der IP-Protokollkopfzeile |
samip | NULL | Die Quelle und das Ziel haben dieselbe IP-Adresse |