Mit eigenen Signaturen können Sie Ihr Netzwerk vor Schwachstellen in Zusammenhang mit Netzwerkobjekten, wie Server, Protokollen und Anwendungen, schützen. Sie können eigene Signaturen erstellen und sie später zu IPS-Richtlinienregeln hinzufügen.
Stichwort |
Wert |
Nutzung |
---|---|---|
srcaddr/dstaddr |
<IP-Adresse>; |
Die Quell-/Ziel-IP-Adresse. |
srcport/dstport |
<Zahl>; |
Der Quell-/Zielport. |
content |
Eine Zeichenfolge in doppelten Anführungszeichen. |
Sie können mehrere Inhalte in einer Regel angeben. Der Wert kann aus Text und Binärdaten bestehen. Die Binärdaten stehen im Allgemeinen zwischen senkrechten Strichen (|). |
nocase Kann nur mit dem content-Stichwort verwendet werden. |
NULL |
Groß-/Kleinschreibung im content-Wert wird ignoriert. |
rawbytes Kann nur mit dem content-Stichwort verwendet werden. |
NULL |
Jegliche Dekodierung ignorieren. In den Paketrohdaten (raw) suchen. |
depth Kann nur mit dem content-Stichwort verwendet werden. |
<Zahl>; Beispiel: depth:5; |
Nach Inhalten innerhalb der angegebenen Anzahl der Bytes der Nutzlast suchen. Wenn der Wert des depth-Stichworts kleiner ist als die Länge des Werts des content-Stichworts, wird niemals eine Übereinstimmung mit der Signatur gefunden. |
offset Kann nur mit dem content-Stichwort verwendet werden |
<Zahl>; Beispiel: content:cgi-bin/phf;offset:4;depth:20; |
Die Suche nach den Inhalten nach der angegebenen Anzahl Bytes der Nutzlast beginnen. Dieses Zeichen ist ein absoluter Wert in der Nutzlast. Dem offset-Zeichen ein depth-Zeichen folgen lassen, um die Suche nach einer Übereinstimmung zu beenden, sobald der im depth-Zeichen aufgeführte Wert erreicht ist. Ist kein depth-Wert angegeben, bis zum Ende der Nutzlast weiter nach einer Übereinstimmung suchen. |
distance Kann nur mit dem content-Stichwort verwendet werden |
<Zahl>; Beispiel: content:"ABC"; content:"DEF"; distance:1; |
Die Inhalte nach der angegebenen Anzahl an Bytes durchsuchen relativ zum Ende der zuvor gefundenen Inhalte. Dem distance-Zeichen kann das within-Zeichen folgen. Ist kein Wert für das within-Zeichen angegeben, bis zum Ende der Nutzlast nach einer Übereinstimmung weitersuchen. |
within Kann nur mit dem content-Stichwort verwendet werden |
<Zahl>; Beispiel: content: „ABC"; content: "DEF"; within:10; |
Nach Inhalten innerhalb der angegebenen Anzahl der Bytes der Nutzlast suchen. Mit dem distance-Zeichen verwenden. |
uricontent |
uricontent:<Inhalt-Zeichenfolge>; Beispiel: uricontent:"%3F"; |
Nach dem normalisierten Anfrage-URI-Feld suchen. Binärdaten können als URI-Wert definiert werden. |
isdataat |
<Wert> [,relative]; Beispiel: content: "PASS"; isdataat: 50, relative; |
Überprüfen, dass die Nutzlast an einer angegebenen Stelle über Daten verfügt. Optional nach Daten relativ zum Ende der vorherigen Inhaltsübereinstimmung suchen. |
pcre |
pcre:[!]
Beispiel: pcre:"/BLAH/i"; |
Das pcre-Stichwort erlaubt es Ihnen, Regeln als Perl-kompatible reguläre Ausdrücke zu schreiben. i: Groß-/Kleinschreibung ignorieren. s: Zeilenumbrüche im dot-Metazeichen miteinschließen. m: Standardmäßig wird die Zeichenkette als eine einzige große Zeile mit Zeichen behandelt (^ und $ entsprechen dem Beginn und Ende der Zeichenkette). Wenn m gesetzt ist, entsprechen ^ und $ dem Anfang oder dem Ende einer neuen Zeile im Puffer, als auch dem Anfang und Ende des Puffers selbst. x: Leerzeichen-Datenzeichen im Muster werden ignoriert, außer wenn es ein Maskierungszeichen ist oder innerhalb einer Zeichenklasse. A: Das Muster muss nur dem Beginn des Puffers entsprechen (das gleiche wie ^). E: Setzt $ so, dass nur am Ende der Zeichenkette nach einer Übereinstimmung gesucht wird. Ohne E trifft $ auch direkt vor dem letzten Zeichen zu, wenn es eine neue Zeile ist (aber nicht vor anderen neuen Zeilen). G: Kehrt die R: Liefert eine Übereinstimmung relativ zum Ende der letzten Musterübereinstimmung (ähnlich distance:0;). U: Liefert eine Übereinstimmung in den dekodierten URI-Puffern (ähnlich dem uri-Stichwort). B: Dekodierte Puffer nicht verwenden (ähnlich wie raw-Stichwort). |
byte_test |
<zu konvertierende Bytes>, [!]<Operator>, <Wert>, <Offset> [,relative] [,<endian>] [,<Zahlentyp>, string]; oct,dec,hex wird nur mit Zeichenkette verwendet 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; |
Ein Byte-Feld auf einen bestimmten Wert (mit Operator) überprüfen. Kann binäre Werte testen oder repräsentative Byte-Zeichenfolgen in ihr binäres Äquivalent konvertieren und testen. bytes_to_convert: Die Anzahl der Bytes, die vom Paketoperator aufgenommen werden sollen, der auszuführende Vorgang zum Testen des Werts (<,>,=,!,&). value: Der Wert, mit dem der konvertierte Wert getestet wird. offset: Die Anzahl der Bytes in der Nutzlast, um die Verarbeitung zu starten. relative: Verwendung eines Offsets (Versatzes) relativ zur letzten Musterübereinstimmung. big: Die Daten als „big“ verarbeiten. endian (default) little: Die Daten als Little Endian verarbeiten. 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_zu_konvertieren>, <Offset> [,relative] [,multiplier <Multiplikator-Wert>] [,big] [,little][,string] [,hex] [,dec] [,oct] [,align] [,from_beginning]; oct,dec,hex wird nur mit String verwendet. Beispiel: content:"|00 00 00 01|"; distance: 4; within: 4; byte_jump: 4,12,relative,align |
bytes_to_convert: Die Anzahl der Bytes, die aus dem Paket aufgenommen werden sollen. Multiplikatorwert: Die Anzahl der berechneten Bytes mit dem Wert multiplizieren und diese Anzahl von Bytes überspringen. operator: Die auszuführende Operation mit welcher der Wert (<,>,=,!,&) getestet werden soll. value: Der Wert, mit dem der konvertierte Wert verglichen werden soll. offset: Die Anzahl der Bytes in der Nutzlast, um die Verarbeitung zu starten. relative: Einen Offset (Versatz) verwenden relativ zur letzten Musterübereinstimmung. big: Die Daten als „big“ verarbeiten. endian (default) little: Die Daten als Little Endian verarbeiten. 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 Zahl der konvertierten Bytes bis zur nächsten 32-Bit-Grenze aufrunden. from_beginning: Am Anfang der Paket-Nutzlast mit dem Überspringen beginnen, anstatt an der aktuellen Position im Paket. |
ttl |
<Zahl>;><Zahl>;<<Zahl>; |
Den Wert von IP Time-to-Live mit dem angegebenen Wert vergleichen. |
tos |
<Zahl>; |
Das Feld IP TOS mit dem angegebenen Wert vergleichen. |
id |
<Zahl>; |
Das Feld IP ID mit dem angegebenen Wert vergleichen. |
ipopts |
{rr | eol | nop | ts | sec | lsrr |ssrr | satid | any} |
rr: Prüfen, ob die Option IP RR (record route) vorhanden ist. eol: Prüfen, ob die Option IP EOL (end of list) vorhanden ist. nop: Prüfen, ob die Option IP NOP (no op) vorhanden ist. ts: Prüfen, ob die Option IP TS (time stamp) vorhanden ist. sec: Prüfen, ob die Option IP SEC (IP security) vorhanden ist. Lsrr: Prüfen, ob die Option IP LSRR (loose source routing) vorhanden ist. ssrr: Prüfen, ob die Option IP SSRR (strict source routing) vorhanden ist. satid: Prüfen, ob die Option IP SATID (stream identifier) vorhanden ist. any: Prüfen, ob die Option „IP any“ vorhanden ist. |
fragoffset |
<Zahl>; |
Ermöglicht den Vergleich des IP-Fragment-Offset-Felds 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 R: Das Reserviert-Bit. +: Liefert eine Übereinstimmung mit den angegebenen Bits, plus weiteren. *: Liefert eine Übereinstimmung, wenn eines der angegebenen Bits gesetzt ist. !: Liefert eine Übereinstimmung, wenn die angegebenen Bits nicht gesetzt sind. |
dsize |
[<|>] <Zahl>[ <> Zahl]; Beispiel: dsize:300<>400; |
Die Nutzlast des Pakets testen. Wenn data_size angegeben ist, wird die Wiederzusammensetzung des Pakets automatisch deaktiviert, sodass eine Signatur mit den Werten data_size und only_stream falsch ist. dsize schlägt bei wieder zusammengesetzten Streampaketen fehl, unabhängig von der Größe der Nutzlast. |
flags |
[!|*|+]<FSRPAU120>[,<FSRPAU120>]; Beispiel: flags:SF,12 |
Geben Sie die TCP-Flags an, mit denen ein Paket abgeglichen werden soll. S: Liefert eine Übereinstimmung mit dem SYN-Flag. A: Liefert eine Übereinstimmung mit dem ACK-Flag. F: Liefert eine Übereinstimmung mit dem FIN-Flag. R: Liefert eine Übereinstimmung mit dem RST-Flag. U: Liefert eine Übereinstimmung mit dem URG-Flag. P: Liefert eine Übereinstimmung mit dem PSH-Flag. 1: Liefert eine Übereinstimmung mit dem Reserviert-Bit. 1 2: Liefert eine Übereinstimmung mit dem Reserviert-Bit 2 0: Liefert eine Übereinstimmung, wenn das Flag „No TCP“ gesetzt ist. +: Liefert eine Übereinstimmung mit den angegebenen Bits, plus weiteren. *: Liefert eine Übereinstimmung, wenn eines der angegebenen Bits gesetzt ist. !: Liefert eine Übereinstimmung, 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 |
seq |
<Zahl>; |
Auf die angegebene TCP-Sequenzzahl überprüfen. |
ack |
<Zahl>; |
Auf die angegebene TCP-Acknowledge-Zahl überprüfen. |
window |
<Zahl>; |
Auf die angegebene TCP-Fenstergröße überprüfen. |
itype |
[<|>]<Zahl>[<>Zahl]; |
Geben Sie den ICMP-Typ an, für den eine Übereinstimmung gesucht werden soll. |
icode |
[<|>]<Zahl>[<>Zahl]; |
Geben Sie den ICMP-Code an, für den eine Übereinstimmung gesucht werden soll. |
icmp_id |
<Zahl>; |
Nach dem angegebenen ICMP-ID-Wert suchen. |
icmp_seq |
<Zahl>; |
Nach dem angegebenen ICMP-Sequenzwert suchen. |
rpc |
<Anwendungsnummer>,[<Versionsnummer>|*],[<Prozedurnummer>|*>; |
Nach den RPC-Anwendungs-, Versions- und Prozedurnummern in SUNRPCCALL-Anfragen suchen. Sie können den Platzhalter * für die Version und die Prozedurnummer verwenden. |
ip_proto |
<Zahl>;[!]<Zahl>;><Zahl>;<<Zahl>; |
Den IP-Protokoll-Header überprüfen. |
samip |
NULL |
Die Quelle und das Ziel haben dieselben IP-Adressen. |