Browser-Sicherheit von JavaScript und Erweiterungen
JavaScript wurde 1995 entwickelt um Webseiten dynamischer zu gestalten. Heutzutage kommen Browser ohne JavaScript nicht mehr aus.
Es dient zur Verarbeitung von Inhalten, der Plausibilitätsprüfung von Eingaben vor dem Absenden, Berechnungen am Browser und als wichtigste Eigenschaft, es ermöglicht eine dynamische, multimediale Benutzeroberfläche. Des Weiteren können Daten über JavaScript im Hintergrund vom Webserver nachgeladen werden. Es soll Webserver unterstützen, aber nicht selbst verwendet werden, um Daten zu persistieren oder etwa Anmeldungen zu validieren, denn der gesamte Quellcode einer JavaScript Anwendung liegt im Browser und ist für jeden einsehbar.
Grundsätzlich läuft JavaScript in einer so genannten Sandbox. Das heißt, dass JavaScript nur auf Objekte des Browsers, aber nicht auf die des Betriebssystems Zugriff hat. Des Weiteren wird „Cross Site Scripting“ verhindert, indem jede Website (Laut Duden die Gesamtheit der hinter einer Adresse stehenden Seiten im World Wide Web. Mit Adresse ist meistens eine „Domain“ verbunden.) innerhalb des Browsers isoliert behandelt und jeglicher Datenaustausch zwischen zwei Sites unterbunden wird. „Cross Origin Resource Sharing“, in welchem auf Inhalte anderer Webseiten zugegriffen werden kann, ist unter JavaScript ebenfalls nicht möglich („Same Origin Policy“ - SOP). Das heißt, das von einer Webseite nur Ressourcen geladen werden können, die sich in der gleichen Domäne befinden.
Plug-Ins und Erweiterungen vergrößern nicht nur die Funktionalitäten eines Browsers, sondern auch die Angriffsfläche für Hacker. Zum Einem unterliegen viele nicht den strengen Kriterien einer „Content Security Policy (CSP)“ oder sind von vornherein Schadsoftware. Um dem entgegen zu wirken, verlangen Browserhersteller wie Google die Einhaltung von genauen Richtlinien für Entwickler von Erweiterungen unter Google-Chrome. Auch für den Browser „Firefox“ unterliegen neue Erweiterungen einem Signierungsprozess. Im Zweifelsfall blocken Browser unsichere Plug-Ins oder warnen die Benutzer vor deren Verwendung. Trotz vieler Maßnahmen bleibt ein Rest Unsicherheit, sind doch viele Browsererweiterungen wiederum aus Standard-Web-Technologien wie HTML, XML, CSS und JavaScript entwickelt (Erklärung von Erweiterungen). Und in Erweiterungen werden die strengen Regeln um die JavaScript Sandbox gelockert. Unter „addons.mozilla.org“ sieht man für jede Erweiterung, welche Aktionen genehmigt werden. So ist es dem Add-On „ScrapBookQ“, mit dem man Webseiten speichern kann und welches auch JavaScript Code enthält, erlaubt auf alle Websites zuzugreifen, die am Browser offen sind, Daten zu speichern und auf Elemente des Browsers zuzugreifen (Abbildung 1).
Abbildung 1 Erlaubte Aktionen von Add-On „ScrapBookQ“ Bild "Abbildung 1 Erlaubte Aktionen von Add-On „ScrapBookQ“" vergrößern (PNG)
Das Add-On „Greasemonkey“ erlaubt zum Beispiel das Ausführen von benutzerdefiniertem JavaScript, um Webseiten nach den eigenen Wünschen anzuzeigen. Das Add-On ist sehr handlich, wenn man weiß was man tut, Bei unüberlegter Nutzung von Scripts aus dem Internet könnte man damit schädlichen Code und damit ein Menge Schwierigkeiten bekommen.
Aber auch Plug-ins, die verwendet werden, um Dateiformate wie *.PDF, *.MP3, *.MP4, *.PPT, *.PPTX, *.DOC, *.DOCX, *.XLS, *.XLSX, usw. zu öffnen können missbraucht werden. Auch browsereigene Plug-Ins können durchaus unsicheren Code beinhalten. So konnte man mittels hacken des „Gecko Media Plugins“, mit welchem Videos am Browser abgespielt wurden, die Sandbox von Firefox (bis zur Version 35) umgehen. Daher ist es immer vorteilhaft diese Plug-Ins so im Browser zu konfigurieren, dass der Browser den Benutzer vor deren Verwendung um Erlaubnis fragt. Der Browser Firefox bietet diese Möglichkeit unter der Adresse „about:addons“ an (Abbildung 2).
Abbildung 2 Plug-In Einstellungen unter Firefox Bild "Abbildung 2 Plug-In Einstellungen unter Firefox" vergrößern (PNG)
Bei Google’s Chrome kann man diese Einstellungen global für alle Plug-Ins konfigurieren (Abbildung 3).
Abbildung 3 Plug-In Einstellungen unter Chrome Bild "Abbildung 3 Plug-In Einstellungen unter Chrome" vergrößern (PNG)
Neben Browsererweiterungen, die dem Anwender potenziell schaden können, existieren jedoch auch solche, die nützlich sind, die nicht nur Privatsphäre sondern auch vor Schadsoftware schützen können. Allen voran steht das Plug-In „AdBlock Plus“, das für werbefreie Webseiten sorgt, indem bekannte Werbe-URLs ausgefiltert und überhaupt nicht angezeigt werden. Mit der Erweiterung „Disconnect“ kann man wiederum URLs anzeigen und bei Bedarf blocken, die das Browsing-Verhalten des Benutzers mitschneiden. Das Firefox Werkzeug „NoScript“ wendet sich an versiertere Anwender. Mit diesem Add-On erlaubt man die Ausführung von Javascript nur von vertrauenswürdigen Seiten. Das Gegenstück für den Browser Chrome nennt sich „ScriptSafe“. Vor gefährlichen Webseiten können Sie sich auch mit dem „Web of Trust“ (WOT) schützen. Mit dieser Erweiterung sieht der Anwender bei jedem Link eine Ampelbewertung der Reputation einer Website.
Wenn man durch das World Wide Web surft, dann stellt sich nun die Frage nach der Sicherheit der Browser, deren Sandbox und Erweiterungen. Was kann man als Anwender tun? Meine Empfehlungen sind:
- mit dem Sicherheits-Bewusstsein surfen
- auf Aktualität des Browsers achten
- vertrauenswürdige und aktuelle Erweiterungen verwenden
- aufrufen von Plug-Ins nicht immer vertrauen
Autor:
- DI(FH) Mathias Knoll, MSc, FH JOANNEUM
Für den Inhalt verantwortlich: FH JOANNEUM