#!/coding/blatt
Sammelsurium mit Schwerpunkten Linux & IT-Sicherheit

Firefox: Wechsel (Migration) von uMatrix zu uBlock Origin

Das Firefox-Add-On uMatrix zählte jahrelang zu meinen "Must-Have"-Add-Ons. Leider wurde die Entwicklung vor einiger Zeit eingestellt. Generell funktioniert uMatrix natürlich auch weiterhin. Ich bevorzuge es aber Software einzusetzen, die weiterentwickelt wird. Außerdem möchte ich auf allen meinen Endgeräten Firefox mit der gleichen Add-On-Ausstattung und Konfiguration laufen haben. In der aktuellsten Firefox-Version für Android wird uMatrix mittlerweile nicht mehr offiziell unterstützt. Es musste also eine Alternative her.

Vor uMatrix hatte ich immer NoScript verwendet. Aus diversen Gründen wollte ich aber nicht wieder zurück zu NoScript. Nach kurzer Recherche viel mein Augenmerk dann auf uBlock Origin. Tatsächlich habe ich uBlock bis dato sogar schon immer parallel zu uMatrix installiert gehabt. Allerdings war mir nicht bewusst, dass uBlock über einen "Advanced"-Modus verfügt, der quasi - mit minimalen Abstrichen - die gleiche Funktionalität wie uMatrix bereitstellt. Die Wahl viel somit leicht: uBlock wurde vom gleichen Entwickler wie uMatrix entwickelt und ich hatte das Add-On sowieso bereits installiert.

Wie nun ein Umstieg von uMatrix zu uBlock Origin gelingt, zeige ich euch in diesem Beitrag.

Folgende Software wurde verwendet:
  • Mozilla Firefox 86.0 bzw. Fennec v86.1.1
  • uMatrix v1.4.0
  • uBlock Origin v1.34.0
  • Python v3.8.5

uBlocks "Advanced"-Modus aktivieren

Damit uBlock ähnlich wie uMatrix verwendet werden kann und nahezu die gleiche Funktionalität bereitstellt, muss der sogenannte "Advanced"-Modus aktiviert werden. Dazu öffnet die Einstellungen von uBlock. Im Tab Einstellungen aktiviert ihr die Checkbox Ich bin ein erfahrener Anwender.

uBlock: Advanced-Modus aktivieren

Von nun an werden neben neben den Static Filtern (siehe Tabs Filterlisten sowie Meine Filter) auch die sogenannten Dynamic Filter angewendet. Diese findet ihr unter dem Tab Meine Regeln. Des Weiteren findet ihr im uBlock-UI nun eine weitere Spalte:

uBlock: Advanced-Modus-UI

Dabei haben die Spalten folgende Bedeutung:

  1. Was wird gefiltert? Ressource(n) bzw. Hostnamen
  2. global anzuwendende dynamische Filter
  3. lokal anzuwendende dynamische Filter

Globale Filter werden auf allen Websites angewendet und lokale nur für die aktuelle Website.

Analog zu uMatrix könnt ihr per Klick auf eine Zelle gezielt einen Filter setzen bzw. entfernen.

Hinweis Static vs Dynamic Filter

Wichtig zu wissen ist, dass dynamische Regeln statische Regeln überschreiben. Wie genau die Abarbeitung erfolgt, ist in der uBlock-Doku anschaulich dargestellt:
Overview of uBlock's network filtering engine

Dynamic Filter: Standardregeln anpassen

Ich habe bei mir die Standardregeln so angepasst, dass global "1st-Party"- als auch "3rd-Party"-JavaScript blockiert wird (inkl. Inline-JavaScript). Dazu klickt einfach in der uBlock-Matrix auf die entsprechenden Zellen, so dass es so aussieht wie im folgenden Bild:

uBock: Standardregeln für Dynamic Filter festlegen

Dynamic Filter verwenden

An einem Beispiel - hier www.reddit.com - soll die Verwendung von dynamischen Filtern kurz dargestellt werden. Ruft ihr eine Website zum ersten mal auf, dann greifen die Standardregeln und jegliches JavaScript ist blockiert. In uMatrix hätte ich für diese Website nun folgende Filter gesetzt:

uBlock: Beispiel zum Umstieg von uMatrix auf uBlock

Analog würde ich dazu nun in uBlock folgende Filter setzen:

uBlock: Beispiel zum Umstieg von uMatrix auf uBlock

Ein Unterschied der auffällt: explizite Filter für Cookies oder Medien können nicht wie in uMatrix gessetzt werden. Weiterhin fällt auf, dass uBlock eine weitere Domain namens reddit.map.fastly.net in blauer Schrift anzeigt. uBlock hat den Vorteil, dass CNAME-Einträge aufgelöst und somit sichtbar gemacht werden.

Die so generierten dynamischen Filterregeln würden in den uBlock-Einstellungen im Tab Meine Regeln dann z.B. so ausschauen:

uBlock: Beispiel für dynamische Filterregeln

Wenn ihr euch fragt, warum in der uBlock-Matrix "freigegebene" Domains grau und nicht wie in uMatrix grün dargestellt werden: uBlock unterscheidet zwischen block, noop und allow. Letzteres kann für eine Regel nur explizit im Regel-Tab in den uBlock-Einstellungen vorgenommen werden, weil im Normalfall noop immer vorzuziehen ist. Die Angabe von allow hätte zur Folge, dass keine statische Filter mehr angewendet würden. In den meisten Fällen sollen Tracker und Werbung aber trotzdem gefiltert werden, weshalb noop zu empfehlen ist.

Migration von uMatrix-Regeln zu uOrigin-Regeln

Habt ihr im Laufe der Zeit sehr viele uMatrix-Regeln angesammelt, dann kann es sehr aufwendig sein, diese manuell in uBlock einzupflegen. Hierfür gibt es mit umatrix2ublock ein Python-Skript, dass euch die Arbeit erleichtern kann.

Hierzu müst ihr sowohl aus uMatrix als auch aus uBlock eure bestehenden Regeln exportieren. Für uMatrix öffnet die Einstellungen und im Tab Meine Regeln klickt auf In eine Datei exportieren.

uMatrix: Regeln für Migration exportieren

Das gleiche macht ihr dann noch einmal für uBlock:

uBlock: Regeln für Migration exportieren

Anschließend ruft das Python-Skript bei euch lokal auf und übergebt die beiden exportieren Dateien:

python3 umatrix2ublock.py umatrix-rules.txt ublock-rules.txt
Terminal / Konsole

Als Ergebnis erhaltet ihr im gleichen Verzeichnis eine Datei namens my-ublock-dynamic-rules.txt. Diese Datei könnt ihr anschließend in uBlock importieren. Ggf. müsst ihr für manche Websites trotzdem noch mal Hand anlegen. Mir scheint es, als ob uBlock im Gegensatz zu uMatrix zwischen Hauptdomain und "www"-Subdomain differenziert. Zudem, wie oben bereits geschrieben, hat uMatrix CNAME-Aliasse nicht aufgelöst, so dass diese manuell in uBlock noch ggf. freigegeben werden müssen.

Fazit

Auch wenn uMatrix eines meiner Lieblings-Add-Ons war, bin ich mit uBlock Origin als Alternative sehr zufrieden. Im Grunde bietet es nahezu die identische Funktioanlität, so dass ich im Endeffekt ein weiteres Plugin eingespart habe. Zudem habe ich nun wieder auf all meinen Endgeräten (Smartphone, Tablet und Notebooks) den gleichen Stand was verwendete Add-Ons angeht.