Regelsyntax

Eine IPS-Regel muss mit der folgenden Struktur dargestellt werden:

  • Die Aktion teilt cognitix Threat Defender mit, welche Operation bei einem Regeltreffer durchgeführt werden soll.

  • Der Header definiert das Protokoll, den IP-Netzwerkbereich, die Portbereiche und die Richtung, auf die die Regel zutrifft.

  • Die Regeldefinition beinhaltet alle Informationen, die die Regel spezifizieren.

Zum Beispiel:

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:“Example rule“; pcre:“/Pattern to match/i“; reference:url,example.org/rule-example; classtype:misc-activity; sid:9000000; rev:1;)

Aktion

Aktuell wird nur die Aktion alert unterstützt. Wenn eine Regel mit dieser Aktion trifft, wird eine Logmeldung an die Benachrichtigungskanäle gesendet, in denen das Logging von IPS-Regeltreffern aktiviert ist.

Um eine Aktion auf Datenströme anzuwenden, die einem bestimmten Typ von IPS-Regeln entsprechen, geben Sie Tags als IPS-Bedingung in einer Regel an.

Protokoll

Der Protokoll-String weist die IPS-Engine von cognitix Threat Defender an, nur auf Datenströme zu treffen, die ein bestimmtes Protokoll verwenden, wie:

  • tcp

  • udp

  • tls (einschließlich ssl)

  • http

  • smtp

  • ssh

  • dns

  • ip (trifft alle obigen Protokolle)

Quell- und Zieladresse

Die Quell- und Zieldefinition gibt an, auf welche IP-Adressen oder Netzwerke die Regel angewendet werden muss.

Operator

Beschreibung

../..

IP-Bereiche (CIDR-Notation)

!

Negation

[.., ..]

Satz IP-Adressen

Sie können das interne und externe IP-Netzwerk auch mit den Variablen $HOME_NET und $EXTERNAL_NET referenzieren. Interne IP-Adressen können auch definiert werden, indem sie einem als intern gekennzeichneten Netzwerkobjekt hinzugefügt werden.

Quell- und Zielports

Ein Port ist ein Kommunikationsendpunkt, der als 16-Bit-Ganzzahl ohne Vorzeichen dargestellt wird, die eine Portnummer identifiziert. Diese Portnummern werden in TCP- und UDP-basiertem Datenverkehr verwendet. Die IANA (Internet Assigned Number Authority) vergibt und verwaltet Portnummern für bekannte Dienste. Das IANA-Register für Portnummern finden Sie unter https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

Operator

Beschreibung

:

Portbereiche

!

Negation

[.., ..]

Satz Ports

Richtung

Die Richtung legt fest, wie die Signatur übereinstimmen muss. Aktuell können nur Signaturen mit Pfeil nach rechts -> verwendet werden:

Quelle -> Ziel

Regeloptionen

Wenn der Header der Regel verarbeitet wurde, wird der Rest der Regel als Optionen betrachtet. Die Regeloptionen stehen in runden Klammern und werden durch Semikolons getrennt. Einige Optionen haben die Syntax Keyword: Wert (z. B. sid: 12345), während andere Flags sind (nocase):

<Keyword>: <Wert>;
<Keyword>;

Bemerkung

Einige Keywords akzeptieren mehrere Werte. In diesem Fall sind alle Werte kommasepariert. Zum Beispiel:

byte_test: 1, -1, relative, big;

Siehe die Dokumentation des jeweiligen Keywords, falls Sie weitere Informationen benötigen.

Bemerkung

Die Zeichen ; und " sind Teil der Syntax der Regeloptionen. Wenn Sie Muster abgleichen möchten, die diese Zeichen enthalten, müssen sie durch Backslash \ maskiert werden. Zum Beispiel:

content:"3rxtc\"\;Date";

Dementsprechend muss auch ein Backslash durch einen weiteren maskiert werden:

content:"HKLM\\\\Software\\\\Microsoft\\\\Internet Explorer\\\\Main\\\\Start Page";

Modifikator-Keywords

Einige Keywords fungieren als Modifikatoren. Es gibt zwei Arten von Modifikatoren:

  • Inhaltsmodifikatoren untersuchen die Regel rückwärts, z. B.:

    alert http any any -> any any (content:"index.html"; nocase; sid:1;)
    

    Im obigen Beispiel wird im Muster index.html die Groß- und Kleinschreibung ignoriert.

  • Sticky Buffer werden vor das Keyword gesetzt. Diese Modifikatoren werden auf alle nachfolgenden Keywords angewendet, zum Beispiel:

    alert http any any -> any any (http.uri; content:"index.html"; sid:1;)
    

    Im obigen Beispiel wird das Muster index.html gegen den HTTP URI geprüft, weil es auf das Keyword http.uri folgt.

  • Beide Typen können auch gleichzeitig verwendet werden. Zum Beispiel:

    alert http any any -> any any (content:"index.html"; nocase; sid:1;)alert http any any -> any any (http.uri; content:"index.html"; nocase; sid:1;)