Mozilla Firefox ist der Webbrowser der Mozilla Foundation und kann durch viele von der Community entwickelte Add-ons und Anpassungen in der Konfiguration zu einem sicheren und privacy-freundlichen Browser aufgewertet werden. Er ist kostenfrei nutzbar und könnte von der Downloadseite für Windows und MacOS heruntergeladen werden.
Mozilla Firefox ESR (Extented Support Releases) gibt es offiziell auf dieser Downloadseite. Im Gegensatz zu den 4-wöchigen Updates des Firefox werden die ESR-Versionen ca. ein Jahr gepflegt. Es werden keine neuen Features eingebaut, was sich positiv auf die Stabilität auswirkt. Allerdings fehlen damit aktuelle Verbesserungen und neue Features.
Download Hinweis: der Download von Firefox von den offiziellen Downloadseiten ist einfach, aber dabei wird jeder Browser mit einer individuellen Kennung markiert. Diese Kennung wird dann bei der Installation und im Rahmen der Telemetrie verwendet, so dass Mozilla die Telemetriedaten eindeutig einem Download zuordnen kann. Außerdem wird die Download ID und damit die gesamte Telemetrie einer Google Analytics Tracking ID zugeordnet. Alternativ kann man das FTP Verzeichnis von Mozilla nutzen. Die dort heruntergeladenen Firefox Browser sind nicht markiert.
Die meisten Linux-Distributionen enthalten Mozilla Firefox in den Repositorys. Man kann den Browser mit der bevorzugten Paketverwaltung nachinstallieren, wenn es nötig sein sollte.
Vorteil: Downloads aus den Linux Repos werden nicht mit einer individuellen Kennung markiert und können auch nicht mit einer Google Analytics Tracking ID korelliert werden.
Ubuntu und abgeleitete Derivate installieren Firefox als Snap Package.
Die Aktualisierung des Snap Paketes ist nicht in den normalen Updateprozess des Systems integriert und muss extra angestoßen werden. Außerdem gibt es Probleme im Zusammenspiel mit KeepassXC und der Ressourcenbedarf ist viel größer.
Statt der Snap Package kann man Firefox (oder Firefox ESR) bei Ubuntu und Derivaten aus dem PPA Repository vom Mozilla Team verwenden, der als normales Paket installiert wird.
apparmor ist ein Sicherheitsframework für Linux, dass bei Ubuntu, Linux Mint und abgeleiteten Derivaten standardmäßig installiert und aktiviert wird. Als Mandatory Access Control System kontrolliert es einzelne Anwendungen und kann mit Profilen die Rechte granular einschränken. Sollte eine Anwendung kompromittiert werden, die unter Kontrolle von apparmor läuft, kann ein Angreifer nur wenig Schaden im System anrichten.
Um eine Anwendung wie z.B. Firefox unter die Kontrolle von apparmor zu stellen, braucht man ein passendes Profil, welches festlegt, was die Anwendung im Untergrund alles tun darf.
Für Firefox und Firefox ESR findet man apparmor Profile im Github Repository von gerrix1701. Nach dem Download sind die Profile nach /etc/apparmor.d/ zu kopieren wie in der Anleitung auf Github beschrieben. Danach kann man die definierten Restriktionen durchsetzen mit:
> sudo aa-enforce usr.bin.firefoxMit "sudo aa-status" kann man prüfen, ob Firefox im enforced mode unter Kontrolle von apparmor läuft, nachdem der Browser neu gestartet wurde.
Wenn Firefox mit diesen Profilen unter der Kontrolle von apparmor läuft, kann Firefox Dateien nur noch im Verzeichnis ~/Downloads speichern und aus dem Verzeichnis ~/Public lesen.
Wenn man aus Bequemlichkeit auch auf die Verzeichnisse ~/Dokumente/..., ~/Schreibtisch/... oder ~/Bilder/... lesend und schreiben zugreifen will, damit man sich das Kopieren der Dateien spart, könnte man im apparmor Profil die entsprechenden Freigaben hinzufügen:
...SELinux ist das bei Fedora und RedHat Linux standardmäßig eingesetzte Sicherheitsframework zur Einschränkung von Berechtigungen. Mit dem Tool "sandbox" kann Mozilla Firefox in ein geschlossenes Kompartment mit sehr restiktiven Rechten eingesperrt werden.
Es wird ein eigener X-Server für die Sandbox gestartet mit separater Zwischenablage. Das kopieren von Texten via Clipboard zwischen dem sandgeboxten Firefox und Programmen außerhalb der Sandbox ist nicht möglich.
Firefox kann die Ports 80 und 443 für den Internetzugriff nutzen (Faschist Firewall).
Firefox hat nur Zugriff auf das mit der Option -H angegeben Verzeichnis, welches als $HOME Verzeichnis innerhalb der Sandbox verwendet wird..
Die Fenstergröße der Sandbox, die gleichzeitig die Bildschrimgöße des neu gestarteten X-Servers ist, wird mit der Option -w angegeben. Diese Fenstergröße sollte etwas kleiner als der echte Bildschirm sein, damit man in andere Fenster wechseln kann, aber eine Größe von real existierenden Monitoren haben.
Um nicht jedesmal das Kommando zum Start im Terminal eingeben zu müssen, bieten die Linux Desktops (KDE, GNOME...) Möglichkeiten, einen Programmstarter zu erstellen.
Die generische Möglichkeit, die überall funktioniert, ist eine firefox_sandbox.desktop Datei, die man im Verzeichnis /usr/local/share/applications oder ohne root Rechte in dem Verzeichnis ~/.local/share/applications speichert mit folgendem Inhalt:
[Desktop Entry]Dann findet man im Startmenü in der Programmgruppe Internet einen Eintrag:
Die Konfiguration von Firefox könnte man anpassen, wenn der Browser unter Kontrolle von apparmor oder in einer SELinux Sandbox läuft. Da es nicht sinnvoll ist, heruntergeladene Dateien direkt in einer anderen Anwendung zu öffnen, die vom Browserprozess gestartet wird (weil es häufig Probleme gibt, da diese Anwendungen andere Rechte benötigt), kann man diese Optionen unter "about:config" mit folgendem Parameter im Downloaddialog ausblenden:
browser.download.forbid_open_with = trueDer Downloaddialog bietet dann nur die Möglichkeiten zum Speichern oder Abbrechen:
In den Weiten des Internet liest man öfters, dass Google Chrome (und abgeleitete Derivate) als Desktop Browser (Windows Linux MacOS) viel sicherer wären als Mozilla Firefox, weil Chrome über eine Sandbox für jeden einzelnen Prozess pro Browsertab verfügt, aus der ein Angreifer nach erfolgreicher Kompromittierung eines Kompartments nicht ausbrechen können sollte.
Das man aus der Chrome Sandbox nicht ausbrechen kann, wurde auf der Pwn2Own Competition im März 2024 gleich zweifach widerlegt. Google Chrome wurde in diesem Jahr 2x geknackt (siehe: Day 1 und Day 2). Die Exploits wurden mit $60.000 und $42.500 Preisgeld belohnt.
Die Sandbox soll bei Buffer Overflows und Memory Corruptions schützen. Das sind typische Bugs, die bei Programmierung mit C/C++ auftreten. Chrome ist zu 100% in C/C++ programmiert.
Die Entwickler von Firefox ignorieren das Problem nicht, aber sie gehen einen anderen Weg. Die kritischen Teile des Browser wie Rendering und Parser werden schrittweise in Rust statt in C/C++ programmiert. In Rust gibt es keine Memory Corruption oder Overflows wie in C/C++.
Das Ergebnis der schrittweisen Umstellung auf die Programmiersprache Rust ist, dass Firefox in den letzten Jahren deutlich weniger sicherheitskritische Fehler hatte als Google Chrome. (Siehe: Firefox CVE security vulnerabilities und Google Chrome CVE security vulnerabilities).
Schlussfolgerung: man kann nicht einfach ein Feature bei einem Browser herauspicken und ignorieren, dass andere Entwickler andere Wege gehen, um Sicherheitsprobleme zu reduzieren.
Es ist schwierig, die Sicherheit unterschiedlicher Konzepte absolut zu vergleichen (daher keine Wertung hier). Am Ende zählen in erster Linie die Zahlen, welches Produkt wie häufig erfolgreich kompromittiert wurde. Und dabei ist Firefox aktuell nicht wesentlich schlechter als Chrome.