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 einem content-Stichwort verwendet werden | NULL | Groß-/Kleinschreibung im content-Wert wird ignoriert |
rawbytes kann nur mit einem content-Stichwort verwendet werden | NULL | Dekodierung wird ignoriert. Siehe Raw-Paketdaten |
depth kann nur mit einem content-Stichwort verwendet werden | <number>; z. B. depth:5; | Sucht nach Inhalten innerhalb der angegebenen Anzahl der Bytes der Payload. Wenn der Wert des depth-Stichworts kleiner ist als die Länge des Werts des content-Stichworts, wird die Signatur nie übereinstimmen |
offset kann nur mit einem content-Stichwort verwendet werden | <number>; z. B. 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 einem content-Stichwort 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 einem content-Stichwort 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 String 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 – Springt zum Anfang des Pakets anstelle von der aktuellen Position aus. |
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 keine Bits angegeben sind |
dsize | [<|>] <number>[ <> number]; zum Beispiel Größe: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 keine Bits angegeben 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 |