UTM/APP/Regex: Unterschied zwischen den Versionen

Aus Securepoint Wiki
Wechseln zu:Navigation, Suche
(allgemeiner Regex - fortgeschritten)
K
(23 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{v11}}
+
{{DISPLAYTITLE:Reguläre Ausdrücke}}
  
[[Kategorie:UTMv11]]
+
== Informationen ==
 
+
Letzte Anpassung zur Version: '''11.7'''
= Einleitung =
+
<br>
Bei der Konfiguration der UTM stößt man an gleich mehreren Stellen auf die Verwendung von regulären Ausdrücken (Regex). Ein Regex wird dazu verwendet, eine Zeichenkette auf eine bestimmte Zusammensetzung zu prüfen. Im Folgenden wird die Zusammensetzung und die Anwendung von Regexen innerhalb der Securepoint UTMv11 erklärt.
+
Bemerkung: Artikelanpassung
 +
<br>
 +
Vorherige Versionen: -
 +
<br>
 +
== Einleitung ==
 +
Bei der Konfiguration der UTM werden für mehrere Anwendungen '''reguläre Ausdrücke (kurz Regex)''' benötigt. Ein Regex wird dazu verwendet, um eine Zeichenkette auf eine bestimmte Zusammensetzung zu prüfen. Im Folgenden wird die Zusammensetzung und die Anwendung von Regexen innerhalb der Securepoint UTM erklärt.
  
 
== Zusammensetzung ==
 
== Zusammensetzung ==
Grundlage dieses Wikis ist der Regex '''//'''. Der erste Slash steht für den Beginn des Regex und der zweite für das Ende des Regex. Innerhalb des Regex werden folgende Zeichen verwendet.<br><br>
+
Innerhalb des Regex werden folgende Zeichen verwendet.<br><br>
 
'''.''' steht für ein beliebiges Zeichen<br>
 
'''.''' steht für ein beliebiges Zeichen<br>
 
'''[abc]''' matcht auf alle Buchstaben in den Klammern: a, b oder c<br>
 
'''[abc]''' matcht auf alle Buchstaben in den Klammern: a, b oder c<br>
Zeile 27: Zeile 32:
  
 
== Beispiele ==
 
== Beispiele ==
=== allgemeiner Regex - einfach ===
+
=== Beispiel 1 ===
Im einfachen Beispiel soll der eingegebene Wert eines Textfeldes geprüft werden. In dem Textfeld soll die Hausnummer eingetragen werden. Durch die vorher definierte Stadt bleiben nur Hausnummern von 1 bis 9 und Adresszusätze von a bis f. <br>
+
Im Beispiel wird der eingegebene Wert eines Textfeldes geprüft. In dem Textfeld soll die Hausnummer eingetragen werden. Durch die vorher definierte Stadt bleiben nur Hausnummern von 1 bis 9 und Adresszusätze von a bis f. <br>
 
Der Regex für diesen Fall würde so aussehen:<br>
 
Der Regex für diesen Fall würde so aussehen:<br>
'''[1-9][a-f]'''<br>
+
'''[1-9][a-f]'''<br><br>
 
Wird der Adresszusatz, also a-f groß geschrieben, würde dieser Regex nicht matchen. Damit groß geschriebene Buchstaben erfasst werden, müsste der Regex so aussehen:<br>
 
Wird der Adresszusatz, also a-f groß geschrieben, würde dieser Regex nicht matchen. Damit groß geschriebene Buchstaben erfasst werden, müsste der Regex so aussehen:<br>
'''[1-9][A-F]'''<br>
+
'''[1-9][A-F]'''<br><br>
 
Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:<br>
 
Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:<br>
'''[1-9][a-fA-F]'''<br>
+
'''[1-9][a-fA-F]'''<br><br>
  
=== allgemeiner Regex - fortgeschritten ===
+
=== Beispiel 2 ===
Im fortgeschrittenen Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf '''point''' enden.<br>
+
Im Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf '''point''' enden.<br>
 
checkpoint<br>
 
checkpoint<br>
 
mountpoint<br>
 
mountpoint<br>
securepoint<br>
+
securepoint<br><br>
Ein Regex der auf alle genannten Wörter matcht würde dann theoretisch so aussehen:<br>
+
Ein Regex der auf alle genannten Wörter matcht sieht so aussehen:<br>
 
'''.*point'''<br><br>
 
'''.*point'''<br><br>
 
Praktisch würde auch folgendes vom Regex erfasst werden:<br>
 
Praktisch würde auch folgendes vom Regex erfasst werden:<br>
Zeile 48: Zeile 53:
 
'''[a-zA-Z]*point'''
 
'''[a-zA-Z]*point'''
  
=== URL-Regex ===
+
=== Beispiel 3 - URL-Regex ===
Im einfachen URL-Beispiel soll auf www.securepoint.de gematcht werden.<br>
+
Im URL-Beispiel soll auf www.securepoint.de gematcht werden.<br>
 
Folgender Regex wäre korrekt:<br>
 
Folgender Regex wäre korrekt:<br>
'''www\.securepoint\.de'''<br>
+
'''www\.securepoint\.de'''<br><br>
Warum muss der Regex so aussehen?<br>
+
Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash '''\''' die Regex-Funktion des folgenden Zeichen auf. So kann auch auf den Punkt gematcht werden. In einem solchen Fall wird vom "escapen" eines Zeichens gesprochen.<br>
Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash '''\''' die Regex-Funktion des folgenden Zeichen auf. So kann auch auf den Punkt gematcht werden. Man spricht in so einem Fall vom "escapen" eines Zeichens.<br>
 
  
 
== Anwendungsbereiche von Regexen ==
 
== Anwendungsbereiche von Regexen ==
=== Virenscanner ===
+
=== HTTP-Proxy: Virenscanner ===
In der aktuellen UTMv11 gibt es in gleich mehreren Anwendungen die Möglichkeit mit Regexen zu arbeiten. Möchten Sie beispielsweise die URL '''http://www.securepoint.de/produkte/utm-firewalls.html''' in die Whitelist des Virenscanners aufnehmen, ist es sehr wichtig, dass letztendlich genau diese URL in die Whitelist aufgenommen wird.<br>
+
Soll beispielsweise die URL '''<nowiki>http://download.windowsupdate.com</nowiki>''' in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich '''genau diese''' URL in die Whitelist aufgenommen wird.<br><br>
 
'''Der passende Regex lautet also:'''<br>
 
'''Der passende Regex lautet also:'''<br>
'''http://www\.securepoint\.de/produkte/utm-firewalls\.html'''
+
'''<nowiki>http://download\.windowsupdate\.com/</nowiki>'''
 +
<br>
 +
Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:<br>
 +
'''Beispiel: <nowiki>^[^:]*://download\.windowsupdate\.com/</nowiki>'''
 +
 
 
<br>
 
<br>
Alternativ kann man auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:<br>
+
Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in [[UTM/APP/HTTP_Proxy-Virenscanner|diesem Beitrag]] zu finden.
'''Beispiel: ^[^:]*://download\.windowsupdate\.com/'''
 
  
=== Authentifizierungsausnahmen im Proxy ===
+
=== HTTP-Proxy: Authentifizierungsausnahmen ===
 
In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:<br>
 
In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:<br>
 
'''Beispiel: www\.securepoint\.de'''
 
'''Beispiel: www\.securepoint\.de'''
  
=== SSL-Interception ===
+
=== HTTP-Proxy: SSL-Interception ===
 
Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben.<br>
 
Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben.<br>
 
'''Beispiel: www\.securepoint\.de''' oder '''.*\.securepoint\.de'''
 
'''Beispiel: www\.securepoint\.de''' oder '''.*\.securepoint\.de'''

Version vom 8. Juli 2019, 16:36 Uhr


Informationen

Letzte Anpassung zur Version: 11.7
Bemerkung: Artikelanpassung
Vorherige Versionen: -

Einleitung

Bei der Konfiguration der UTM werden für mehrere Anwendungen reguläre Ausdrücke (kurz Regex) benötigt. Ein Regex wird dazu verwendet, um eine Zeichenkette auf eine bestimmte Zusammensetzung zu prüfen. Im Folgenden wird die Zusammensetzung und die Anwendung von Regexen innerhalb der Securepoint UTM erklärt.

Zusammensetzung

Innerhalb des Regex werden folgende Zeichen verwendet.

. steht für ein beliebiges Zeichen
[abc] matcht auf alle Buchstaben in den Klammern: a, b oder c
[^abc] matcht auf alle Buchstaben bis: a, b oder c
[a-z] matcht auf alle Buchstaben von: a bis z
[a-zA-Z] matcht auf alle Buchstaben von: a bis z oder A bis Z
^ steht für den Beginn einer Zeile
$ steht für das Ende einer Zeile
\s steht für ein Leerzeichen
\ hebt die Regex-Funktion des nächsten Zeichens auf und "sucht" somit nach dem folgenden Zeichen
\r\n ist eine Return oder eine Linefeed (Windows neue Zeile)
* wiederholt das vorherige Zeichen beliebig oft - auch 0 Mal
+ wiederholt das vorherige Zeichen beliebig oft - mindestens 1 Mal
{1} steht für das vorherige Zeichen, 1 Mal
{2,4} steht für das vorherige Zeichen, 2 bis 4 Mal nacheinander
{3,} steht für das vorherige Zeichen, mindestens 3 Mal
[^:] steht für alles außer einem Doppelpunkt

Beispiele

Beispiel 1

Im Beispiel wird der eingegebene Wert eines Textfeldes geprüft. In dem Textfeld soll die Hausnummer eingetragen werden. Durch die vorher definierte Stadt bleiben nur Hausnummern von 1 bis 9 und Adresszusätze von a bis f.
Der Regex für diesen Fall würde so aussehen:
[1-9][a-f]

Wird der Adresszusatz, also a-f groß geschrieben, würde dieser Regex nicht matchen. Damit groß geschriebene Buchstaben erfasst werden, müsste der Regex so aussehen:
[1-9][A-F]

Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:
[1-9][a-fA-F]

Beispiel 2

Im Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf point enden.
checkpoint
mountpoint
securepoint

Ein Regex der auf alle genannten Wörter matcht sieht so aussehen:
.*point

Praktisch würde auch folgendes vom Regex erfasst werden:
das ist kein point

Um das Verhalten zu unterbinden, müsste folgender Regex verwendet werden:
[a-zA-Z]*point

Beispiel 3 - URL-Regex

Im URL-Beispiel soll auf www.securepoint.de gematcht werden.
Folgender Regex wäre korrekt:
www\.securepoint\.de

Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash \ die Regex-Funktion des folgenden Zeichen auf. So kann auch auf den Punkt gematcht werden. In einem solchen Fall wird vom "escapen" eines Zeichens gesprochen.

Anwendungsbereiche von Regexen

HTTP-Proxy: Virenscanner

Soll beispielsweise die URL http://download.windowsupdate.com in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich genau diese URL in die Whitelist aufgenommen wird.

Der passende Regex lautet also:
http://download\.windowsupdate\.com/
Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:
Beispiel: ^[^:]*://download\.windowsupdate\.com/


Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in diesem Beitrag zu finden.

HTTP-Proxy: Authentifizierungsausnahmen

In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:
Beispiel: www\.securepoint\.de

HTTP-Proxy: SSL-Interception

Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben.
Beispiel: www\.securepoint\.de oder .*\.securepoint\.de