Support-Portal

Sophos UTM / Sophos XG: Nutzung von Regular Expressions um URL-Muster zu definieren

Dieser Artikel beschreibt, wie sie Perl-kompatible Regular Expressions innerhalb des Web Protection Features der Sophos UTM und XG Firewall nutzen können. Mit dieser Methode können sie Gruppen von Websiten spezifizieren, die sie anhand ihrer URL explizit verbieten oder erlauben möchten.

Regular Expressions können an folgenden Stellen des jeweiligen Webadmins verwendet werden:

Sophos UTM

  • Web Protection -> Webfilter -> HTTPs -> URL-Filterung
  • Web Protection -> Filteroptionen -> Ausnahmen
  • Web Protection -> Webfilter-Profile -> Filteraktionen

Sophos XG Firewall

  • Web -> Ausnahmen

Welche Elemente können in Regular Expressions genutzt werden?

Wichtig: Regular Expressions beachten Groß- und Kleinschreibung.

Einfache Suche nach einem String

Wenn sie ein Muster für die Webfilterung definieren möchten, geben sie den String auf den sie prüfen möchten ein. Wichtig ist, das sie keinen Asterisken (*) hinzufügen.

Ausdruck Beschreibung Beispiel
Inter Findet sämtliche Vorkommnisse des Strings Inter (case-sensitive). Mit dieser Suche können sie sämtliche URLs blocken, die den entsprechenden String enthalten. Beachten sie das dadurch auch Inhalte geblockt werden können, die den String in einem anderen Kontext verwenden. Blockieren sie also „auto“ werden Webseiten die „automatik“ enthalten auch blockiert, aber nicht Webseiten die „Auto“ enthalten.

Hinweis: Metazeichen müssen in dieser Suche maskiert werden (siehe nachfolgend)

Die String-Suche funktioniert nicht mit non-ASCII-Zeichen. Domainnamen die non-ASCII-Zeichen verwenden müssen mit Hilfe ihres internationalisierten Domainnames (IDN) eingegeben werden. Bei der IDN handelt es sich um einen ASCII-String mit Punycode-Transkription mit xn-- vorangesetzt, dem sogenannten ACE-Prefix. Sie können den IDN einer Webseite herausfinden indem sie im Webfilter-LiveLog nachsehen oder in dem sie einen Punycode-Konverter benutzen. Einige Browser zeigen auch den IDN direkt an, statt den tatsächlich eingegebenen String. Non-ASCII-Zeichen sind alle Zeichen die nicht das lateinische Alphabet nutzen, sowie solche Zeichen, die auf lateinischen Zeichen basieren, wie zum Beispiel Umlaute oder Buchstaben mit Akzenten. Beispiel: Die Domain „bücher.com“ wird wie folgt übersetzt: xn--bcher-kva.com

Suche nach Meta-Zeichen

Meta-Zeichen, also Zeichen mit einer speziellen Bedeutung innerhalb von Regular Expressions, müssen maskiert werden, wenn Sie danach suchen möchten.

Zeichen Beschreibung Beispiel
\ Mit vorangestelltem Backslash verlieren Meta-Zeichen ihre besondere Bedeutung. Meta-Zeichen sind .()\?*|+{}^$[] astaro\.com findet astaro.com

Platzhalter für einzelne Zeichen

Anstelle eines festgelegten Zeichens können sie Platzhalter verwenden, um beliebige Zeichen oder vordefinierte Gruppen von Zeichen zu ersetzen

Ausdruck Beschreibung Beispiel
. Platzhalter für ein einzelnes Zeichen filer.1 findet e.g. filerA1 und filer/1 aber nicht filerA2
\w Platzhalter für ein Word-Zeichen (Ziffer, ASCII-Zeichen, Unterstrich) filer\w findet e.g. filer1 und filerA aber nicht filer- or filer?
\W Platzhalter für Nicht-Word-Zeichen filer\W findet e.g. filer? und filer- aber nicht filerA or filer1
\d Platzhalter für eine Ziffer filer\d findet e.g. filer1 und filer2 aber nicht filerA
\D Platzhalter für eine Nicht-Ziffer filer\D findet e.g. filerA und filer? aber nicht filer1
[aAbBc] Platzhalter für ein Zeichen innerhalb der Klammern filer[12] findet e.g. filer1 und filer2 aber nicht filer3
[^aAbBc] Platzhalter für alle Zeichen ausser denen in Klammern [^?] findet alle Zeichen ausser ?.
[0-9] Platzhalter für eine Ziffer wie oben
[a-z] Plathalter für ein Zeichen von a-z (case-sensitive) filer[a-z] findet e.g. filera und filerx aber nicht filer3 oder filerA
[A-Z] Platzhalter für ein Zeichen von A-Z (case-sensitive) filer[A-Z] findet e.g. filerA und filerX aber nicht filer3 oder filera
[0-9a-z_] Platzhalter für ein Zeichen innerhalb der Klammer [0-9a-zA-Z_] agiert wie \w, siehe oben

Modifier

Ein Modifier beeinflusst die gesamte Suchanfrage

Ausdruck Beschreibung Beispiel
(?i) Die folgende Suchanfrage wird ohne Groß- und Kleinschreibung zu beachten durchgeführt. (?i)http findet http, HTTP, Http, etc.

Grouping

Ausdruck Beschreibung Beispiel
(expression) Runde Klammern werden zur Gruppierung genutzt. Dies beeinflusst beispielsweise nachfolgende Quantifikatoren siehe unten

Alternation

Mithilfe des Pipe-Symbols (|) können sie alternierende Elemente spezifizieren.

Ausdruck Beschreibung Beispiel
(red|blue|green) Findet eines der durch Pipe (|) separierten Elemente. Beachten sie das ein Element wiederum aus komplexen Suchanfragen bestehen kann (com|org) findet beide URLs, sowohl com als auch org.

Quantifier

Quantifier helfen Ihnen beim Auffinden von Strings, die eine bestimmte Anzahl festgelegter Zeichen enthalten. Beachten sie das unter den folgenden Ausdrücken „n“ jeweils auch ein komplexer Suchausdruck sein kann.

Ausdruck Beschreibung Beispiel
n+ Findet alle Elemente in denen „n“ ein oder mehrmals hintereinander vorkommt .+? findet ? mit einem beliebigen String davor
n* Findet alle Elemente mit keinem oder mehreren „n“ in Folge .*? findet ein ? mit nichts oder einer zufälligen Zeichenkette davor
n? Passt auf jede Zeichenkette, die null oder ein Vorkommen von n in einer Zeile enthält https?: findet http: sowie https:
n{X} Passt auf jede Zeichenkette, die eine Folge von X n’s enthält \.\d{3}\. findet zwei Punkte mit drei Ziffern dazwischen
n{X,Y} Passt auf jede Zeichenkette, die eine Folge von X bis Y n’s enthält \.\d{1,3}\. findet zwei Punkte mit ein bis drei Ziffern dazwischen
n{X,} Passt auf jede Zeichenkette, die eine Folge von mindestens X n’s enthält \.\d{4,}\. findet alle Vorkommen von mindestens vier Ziffern zwischen zwei Punkten

Anchors

Mit Anchors können sie Stellen spezifizieren an denen ein Muster auftaucht. Beachten Sie, dass in der folgenden Tabelle „n“ auch für komplexe Suchanfragen stehen kann.

Expression Description Example
\bn Findet „n“, aber nur wenn es am Anfang eines Wortes steht. \bexample\.com findet www.example.com und my-example.com aber nicht thisexample.com
n\b Findet „n“, aber nur wenn es am Ende eines Wortes steht. example\b findet www.example.com und example-2.com aber nicht example2.com
\Bn Findet „n“, aber nur wenn es nicht am Anfang eines Wortes steht. \Bexample\.com findet www.thisexample.com und that_example.com aber nicht www.example.com
n\B Findet „n“, aber nur wenn es nicht am Ende eines Wortes steht. example\B findet www.example2.com aber nicht example.com
^n Findet „n“, solange es am Anfang einer Zeile steht. ^https: findet alle URLs die mit https beginnen.
n$ Findet „n“, solange es am Ende einer Zeile steht. \.zip$ findet alle URLs die mit .zip enden. (Hinweis: Die URL, die im Browserfenster angezeigt wird, muss nicht zwangsläufig mit der tatsächlichen URL übereinstimmen.)

 Beispiele

URLs, die aus IPv4-Adressen bestehen

Suchanfrage: ^https?://\d+(\.\d+){3}/

Erklärung: Sucht nach einem String, der mit http beginnt, gefolgt von keinem oder einem ’s‘, einem Doppelpunkt und zwei Schrägstrichen, dann gefolgt von einer oder mehreren Ziffern, dann gefolgt von drei Zeichenketten, die jeweils aus einem Punkt und einer oder mehreren Ziffern bestehen, zum Schluss ein Schrägstrich. Der URL-String kann fortgeführt werden.

URL der Firma company.com

Suchanfrage: ^https?://[A-Za-z0-9.-]+\.company\.com

Erklärung:

Sucht nach einem String, der mit http beginnt, gefolgt von keinem oder einem ’s‘, einem Doppelpunkt und zwei Schrägstrichen, dann folgen ein oder mehrere Buchstaben, Zahlen, Punkte oder Bindestriche und schließlich die Zeichenkette ‚.company.de‘. Die URL-Zeichenkette kann fortgesetzt werden. Wenn Sie einen zusätzlichen Ausdruck definieren möchten, der die Zeichenfolge ‚company‘ direkt nach den beiden Schrägstrichen definiert, verwenden Sie ^https?://company.com.

Eine URL erlauben, alles andere blocken, und vor fehlerhafte Variablen schützen

Suchanfrage: ^[^?]*\.allowed-site\.com

Erklärung:

Dies bedeutet, von links nach rechts gelesen, „vom Anfang des Strings, stimme nicht mit „?“ überein, dann stimme mit .allowed-site.com überein“. Der URL-String kann fortgesetzt werden. Die Nichtübereinstimmung mit einem ? schützt vor der Übergabe einer fehlerhaften Variable in der URL, damit die URL mit den erlaubten Elementen übereinstimmt und sie geladen wird, wie beispielsweise www.blocked-site.com/?www.allowed-site.com.

URL mit spezifischer Endung

Suchanfrage: .*\.com.*

Erklärung: Sucht nach .com, mit einer beliebigen Anzahl von Zeichen davor und danach.

URL mit Muster nach dem ersten Schrägstrich

Suchanfrage: ^https?://[^/]*/Expression

Erklärung: Findet eine URL, beginnend mit http:// oder https:// gefolgt vn keinem oder mehr willkürlichen Zeichen (ausgenommen Schrägstrich), gefolgt von einem Schrägstrich, gefolgt von „Expression“.

Standard-Ausnahmen auf Sophos UTM und XG Firewall

UTM

Die Sophos UTM und Sophos XG Firewall enthalten standradmäßig vordefinierte Webfilterausnahmen unter erlaubten Seiten. Alle Einträge in diesen  erlaubten Seiten können von bestimmten Web Protection-Diensten ausgeschlossen werden. Die erlaubten Seiten enthalten standardmäßig einige Einträge mit Perl Regular Expressions. Hier eine kurze Erläuterung dieser:

 

Ausnahme Erklärung
^https?://([A-Za-z0-9.-]*\.)?adobe\.com/ Diese Suchanfrage findet URLs beginnend mit http:// oder https:// gefolgt von
  • adobe.com/
  • ein String bestehend aus Buchstaben, Zahlen, Punkten oder Schrägstrichen, gefolgt von einem Punkt gefolgt von adobe.com/

Der URL-String kann sich weiter fortsetzen.

^https?://([A-Za-z0-9.-]*\.)?apple\.com/

^https?://([A-Za-z0-9.-]*\.)?windowsupdate\.com/

^https?://([A-Za-z0-9.-]*\.)?microsoft\.com/

Wie im Beispiel oben
^http://[A-Za-z0-9.]+\.youtube\.com/videoplayback

^http://[A-Za-z0-9.]+\.googlevideo\.com/videoplayback

Diese Suchanfrage findet URLs beginnend mit  http:// gefolgt von einem String bestehend aus einem oder mehreren Buchstaben, Zahlen oder Punkten gefolgt von .youtube.com/videoplayback oder .googlevideo.com/videoplayback. Der URL-String kann sich weiter fortsetzen.
^https?://[A-Za-z0-9.-]*\.ovi\.com Diese Suchanfrage findet URLs beginnend mit http:// oder https:// gefolgt von einem String bestehend aus keinem oder mehr Buchstaben, Zahlen, Punkten und Schrägstrichen, gefolgt von .ovi.com. Der URL-String kann sich weiter fortsetzen.
^https?://[A-Za-z0-9.-]*nds[0-9]\.nokia\.com Diese Suchanfrage findet URLs beginnend mit http:// oder https:// gefolgt von einem String bestehend aus keinem oder mehr Buchstaben, Zahlen, Punkten und Schrägstrichen, gefolgt von nds, gefolgt von einer Ziffer, gefolgt von .nokia.com. Der URL-String kann sich weiter fortsetzen.
^https?://beta\.nokia\.com Diese Suchanfrage findet URLs beginnend mit http://beta.nokia.com oder https://beta.nokia.com. Der URL-String kann sich weiter fortsetzen.
^https?://mcs[0-9]*-[A-Za-z0-9]{4}\.broker\.sophos\.com

^https?://mcs[0-9]*-[A-Za-z0-9]{4}-d\.broker\.sophos\.com

Die erste Suchanfrage findet URLs beginnend mit http://mcs oder https://mcs gefolgt von keiner oder mehreren Ziffern gefolgt von – sowie einem Set von vier Zahlen oder Buchstaben, endend mit .broker.sophos.com. Der URL-String kann sich weiter fortsetzen. Die zweite Suchanfrage endet mit -d.broker.sophos.com.
^http://[A-Za-z0-9.]+\.activeupdate\.trendmicro\.com/activeupdate/[A-Z-a-z0-9._-]*\.zip$ Die erste Suchanfrage findet URLs beginnend mit http:// gefolgt von einem String aus einer oder mehreren Buchstaben, Ziffern, oder Punkten gefolgt von .activeupdate.trendmicro.com/activeupdate/ gefolgt von einem String bestehend aus keinem oder mehr Buchstaben, Zahlen, Punkten und Unterstrichen oder Schrägstrichen, gefolgt von .zip.  zip muss am Ende des Strings stehen.

XG Firewall

Ausnahme Erklärung
^([A-Za-z0-9.-]*\.)?apple\.com\.?/ Diese Suchanfrage findet URLs mit einem String bestehend aus Buchstaben, Ziffern, Punkte und Schrägstrich gefolgt von apple.com/ oder apple.com./, oder direkt apple.com/.

Der URL-String kann sich weiter fortsetzen.

^([A-Za-z0-9.-]*\.)?microsoft\.com/ Diese Suchanfrage findet URLs mit einem String bestehend aus Buchstaben, Ziffern, Punkte und Schrägstrich, gefolgt von einem Punkt, gefolgt von microsoft.com/, oder direkt microsoft.com/.

Der URL-String kann sich weiter fortsetzen.

^([A-Za-z0-9.-]*\.)?windowsupdate\.com/ Selbes Prinzip wie oben.
^[A-Za-z0-9.-]*-wdx-[A-Za-z0-9.-]*\.broker\.sophos\.com/ Diese Suchanfrage findet URLs mit einem String bestehend aus Buchstaben, Ziffern, Punkte und Schrägstrich, gefolgt von -wdx- dann ein weiterer String bestehend aus Buchstaben, Ziffern, Punkte und Schrägstrich, und auf .broker.sophos.com/ endend.
^[A-Za-z0-9.-]*\.cwg\.sophos\.com/ Diese Suchanfrage findet URLs mit einem String bestehend aus Buchstaben, Ziffern, Punkte und Schrägstrich, und auf .cwg.sophos.com endend.
^[A-Za-z0-9.-]*\.hydra\.sophos\.com/

^[A-Za-z0-9.-]*\.mojave\.net/

^[A-Za-z0-9.-]*\.upe\.p\.hmr\.sophos\.com/

^[A-Za-z0-9.-]*\.sophosupd\.com/

^[A-Za-z0-9.-]*\.sophosupd\.net/

^[A-Za-z0-9.-]*\.sophosxl\.net/

Selbes Prinzip wie oben.
^mcs[0-9]*-[A-Za-z0-9]{4}\.broker\.sophos\.com/

^mcs[0-9]*-[A-Za-z0-9]{4}-d\.broker\.sophos\.com/

Die erste Suchanfrage findet URLs die mit mcs starten, gefolgt von keiner oder mehreren Ziffern gefolgt von – sowie einem Set von vier Zahlen oder Buchstaben, endend mit .broker.sophos.com. .broker.sophos.com/. Der URL-String kann sich weiter fortsetzen.

Die zweite Suchanfrage endet auf –d.broker.sophos.com/.

^([A-Za-z0-9.-]*\.)?teamviewer\.com/? Diese Suchanfrage findet URLs mit einem String bestehend aus Buchstaben, Ziffern, Punkte und Schrägstrich, gefolgt von einem Punkt, gefolgt von teamviewer.com/ oder teamviewer.com, oder direkt teamviewer.com/.

Der URL-String kann sich weiter fortsetzen.

Tags: Sophos UTM, sophos, Sophos Firewall XG, Regular Expressions, Web Filter, Webfilter, Web Protection, Perl, URL, erlaubte Webseiten, erlaubte Websites, allowed Websites