Rund 35 Jahre ist es her, dass die erste Website online ging. Seitdem entwickelten sich Websites von statischen Seiten zu interaktiven Anwendungen. Sicherheit blieb dabei lange ein Nachgedanke. Um die zu verbessern, nutzen Web-Entwickler:innen heute Security Header, die Browsern gezielte Sicherheitsanweisungen geben. Eine systematische Untersuchung von CISPA-Forscher Jannis Rautenstrauch und Kollegen zeigt nun: Moderne Browser setzen diese Anweisungen deutlich konsistenter um als früher. Um verbleibende Abweichungen sichtbar zu machen, entwickelten die Forschenden ein Open-Source-Testing-Tool.
Web-Sicherheit ist kein Zustand, sondern in vielerlei Hinsicht ein Aushandlungsprozess zwischen Server und Browser. Browser rufen eine Website von einem oder verschiedenen Servern ab und puzzeln deren verschiedenen Bausteine wie Bilder, Schriftarten oder JavaScript-Dateien für uns zur gewohnten Webansicht zusammen. „In diesem Prozess treffen sie unentwegt Sicherheitsentscheidungen“, erklärt Rautenstrauch.
Was geben Security Header vor?
Website-Betreiber:innen können mit Security Headern bestimmte Sicherheitsanweisungen an den Browser mitliefern. So sagt die Website dem Browser zum Beispiel: ‚Führe nur Code aus, der von mir selbst stammt‘‚Erlaube nicht, dass meine Seite in andere Seiten eingebunden wird‘ oder ‚Lade Bilder nur aus diesen Quellen…‘. Damit können weit verbreitete Web-Angriffe wie Clickjacking und Cross-Site-Scripting unterbunden oder erschwert werden. „Im Laufe der Jahre kamen immer neue Security Header hinzu und jeder hat eine eigene Syntax und gibt spezifische Regeln vor. Deshalb ist ihre korrekte Implementierung sowohl für Browser- als auch für Website-Entwickler:innen noch immer eine komplexe Aufgabe“, so Rautenstrauch. In der Praxis kommt es immer wieder zu kleinen Tippfehlern, zusätzlichem Weißraum oder anderen Abweichungen in den Anweisungen, mit denen die Browser irgendwie umgehen müssen.
Wie setzen Browser Sicherheitsanweisungen um und was haben die Forschenden getestet?
Ein zentraler Teil des Browsers ist der Parser. Das ist ein Programm, das Security Header, HTML-, CSS- oder auch JavaScript-Code in eine Datenstruktur umwandelt, die der Browser versteht. „Browser sehen zwar unterschiedlich aus, teilen sich aber häufig denselben technischen Kern, zu dem auch der Parser gehört. 97 Prozent der gängigen Browser liegen nur drei verschiedene Engines zugrunde: Blink zum Beispiel bei Chrome, Edge und Opera, Gecko bei Firefox und Tor und WebKit bei Safari“, sagt Rautenstrauch. So haben die Forschenden über die meistgenutzten Browser hinweg systematisch 177.146 Tests durchgeführt. „Wir haben dabei die 16 sicherheitsrelevantesten Header in verschiedenen Browserkonfigurationen getestet. In 5606 Tests, also 3,16 Prozent der Fälle, haben sich verschiedene Browser dabei inkonsistent verhalten“, erklärt Rautenstrauch. „Das ist keine Katastrophe, aber wir haben dafür verschiedene und teils bisher unbekannte Ursachen entdeckt und Bug-Reports an die Browserhersteller und die Spezifikationsgremien für Security Header geschickt. Das hat auch schon zu Fixes geführt und verbessert so die Sicherheit für Website-Besucher:innen.“
Regelmäßiges Testen führt zu besseren Ergebnissen
Ihre Ergebnisse zeigen auch, dass Unterschiede zwischen Browsern und Browserversionen innerhalb derselben Browser-Engine selten sind, während Abweichungen zwischen den drei zentralen Browser-Engines Blink, Gecko und WebKit häufiger auftreten. „Security Header werden also noch nicht immer konsistent geparst und durchgesetzt, aber immer öfter.“ Häufige Abweichungen im Browserverhalten hingegen haben die Forschenden bei einem bestimmten Security Header gefunden: HSTS, das steht kurz für HTTP Strict Transport Security. „HSTS weist Browser an, eine Website ausschließlich über die sichere HTTPS-Verbindung zu laden und unsichere HTTP-Verbindungen zu blockieren. Der Grund für die vielen Abweichungen ist offensichtlich: Im Gegensatz zu anderen Headern, gibt es für diesen Header keine systematischen Tests über verschiedene Browser hinweg. Das sollte sich ändern.“
Testing-Tool deckt Ausnahmefälle auf
Rautenstrauch und seine Forschungskollegen stellen ihr Testing-Tool open source zur Verfügung, damit Browser-Anbieter es nutzen können. „Leider scheuen viele Browseranbieter sich, unser Testing-Tool dauerhaft in ihre Entwicklungskette einzubauen, weil die Entwickler:innen bei abweichendem Verhalten noch manuell prüfen müssen, ob ein Bug gefixt werden muss und wie er entsteht. Dabei zeigt unsere Arbeit, das regelmäßige Tests sinnvoll sind.“
Jannis Rautenstrauch jannis.rautenstrauch@cispa.de
https://doi.org/10.60882/cispa.30251392
https://zenodo.org/records/17129544 Hier gibt es die Open Source Software zum Testen der Implementierung von Security Headern
Criteria of this press release:
Journalists, Scientists and scholars
Information technology
transregional, national
Research results
German

You can combine search terms with and, or and/or not, e.g. Philo not logy.
You can use brackets to separate combinations from each other, e.g. (Philo not logy) or (Psycho and logy).
Coherent groups of words will be located as complete phrases if you put them into quotation marks, e.g. “Federal Republic of Germany”.
You can also use the advanced search without entering search terms. It will then follow the criteria you have selected (e.g. country or subject area).
If you have not selected any criteria in a given category, the entire category will be searched (e.g. all subject areas or all countries).